Skip to content

Commit 3a0d3c9

Browse files
chore: improve tests (#340)
1 parent 725e253 commit 3a0d3c9

20 files changed

+239
-46
lines changed

.github/workflows/ci.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
name: CI
22

33
on:
4+
push:
5+
branches:
6+
- main
7+
paths-ignore:
8+
- '.github/actions/release-please/**'
49
pull_request:
510
branches:
611
- main
@@ -19,10 +24,10 @@ jobs:
1924
run: |
2025
if [ "${{ github.event.pull_request.user.id }}" = "41898282" ]; then
2126
echo "run=false" >> $GITHUB_OUTPUT
22-
echo "::notice::Skipping CI checks - release-please PR"
27+
echo "::notice::Skipping CI checks - this a release-please bot's interaction"
2328
else
2429
echo "run=true" >> $GITHUB_OUTPUT
25-
echo "::notice::CI checks will execute - the PR author is not the release-please bot"
30+
echo "::notice::CI checks will execute - the actor is not the release-please bot"
2631
fi
2732
2833
tests:

ci/phpunit/config.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99
failOnRisky="true"
1010
failOnWarning="true"
1111
beStrictAboutOutputDuringTests="true"
12-
beStrictAboutTodoAnnotatedTests="true">
12+
displayDetailsOnTestsThatTriggerDeprecations="true"
13+
displayDetailsOnTestsThatTriggerErrors="true"
14+
displayDetailsOnTestsThatTriggerNotices="true"
15+
displayDetailsOnTestsThatTriggerWarnings="true"
16+
displayDetailsOnPhpunitDeprecations="true">
1317
<testsuites>
1418
<testsuite name="PostgreSQL-for-Doctrine Test Suite">
1519
<directory>../../tests</directory>

tests/MartinGeorgiev/Doctrine/DBAL/Types/BaseFloatArrayTestCase.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ abstract class BaseFloatArrayTestCase extends TestCase
1515
/**
1616
* @test
1717
*
18-
* @dataProvider provideInvalidTransformations
18+
* @dataProvider provideInvalidPHPValuesForDatabaseTransformation
1919
*/
2020
public function can_detect_invalid_for_transformation_php_value(mixed $phpValue): void
2121
{
@@ -25,7 +25,7 @@ public function can_detect_invalid_for_transformation_php_value(mixed $phpValue)
2525
/**
2626
* @return list<mixed>
2727
*/
28-
public static function provideInvalidTransformations(): array
28+
public static function provideInvalidPHPValuesForDatabaseTransformation(): array
2929
{
3030
return [
3131
[true],

tests/MartinGeorgiev/Doctrine/DBAL/Types/BaseIntegerArrayTestCase.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ abstract class BaseIntegerArrayTestCase extends TestCase
1515
/**
1616
* @test
1717
*
18-
* @dataProvider provideInvalidTransformations
18+
* @dataProvider provideInvalidPHPValuesForDatabaseTransformation
1919
*/
2020
public function can_detect_invalid_for_transformation_php_value(mixed $phpValue): void
2121
{
@@ -25,7 +25,7 @@ public function can_detect_invalid_for_transformation_php_value(mixed $phpValue)
2525
/**
2626
* @return list<mixed>
2727
*/
28-
public static function provideInvalidTransformations(): array
28+
public static function provideInvalidPHPValuesForDatabaseTransformation(): array
2929
{
3030
return [
3131
[true],
@@ -85,5 +85,5 @@ public function throws_domain_exception_when_value_exceeds_range(string $outOfRa
8585
/**
8686
* @return array<array{string}>
8787
*/
88-
abstract protected function provideOutOfRangeValues(): array;
88+
abstract public static function provideOutOfRangeValues(): array;
8989
}

tests/MartinGeorgiev/Doctrine/DBAL/Types/BigIntArrayTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ public function has_name(): void
2222
self::assertEquals('bigint[]', $this->fixture->getName());
2323
}
2424

25-
public static function provideInvalidTransformations(): array
25+
public static function provideInvalidPHPValuesForDatabaseTransformation(): array
2626
{
27-
return \array_merge(parent::provideInvalidTransformations(), [
27+
return \array_merge(parent::provideInvalidPHPValuesForDatabaseTransformation(), [
2828
['9223372036854775808'], // Greater than PHP_INT_MAX
2929
['-9223372036854775809'], // Less than PHP_INT_MIN
3030
['1.23e10'], // Scientific notation
@@ -81,7 +81,7 @@ public function throws_domain_exception_when_value_exceeds_range(string $outOfRa
8181
/**
8282
* @return array<array{string}>
8383
*/
84-
protected function provideOutOfRangeValues(): array
84+
public static function provideOutOfRangeValues(): array
8585
{
8686
return [
8787
['9223372036854775808'], // PHP_INT_MAX + 1

tests/MartinGeorgiev/Doctrine/DBAL/Types/BooleanArrayTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public function can_transform_from_php_value(?array $phpValue, ?string $postgres
5252
*
5353
* @dataProvider provideValidTransformations
5454
*/
55-
public function can_transform_to_php_value(?array $phpValue, ?string $postgresValue): void
55+
public function can_transform_to_php_value(?array $phpValue, ?string $postgresValue, ?array $platformValue = null): void
5656
{
5757
$this->platform->method('convertFromBoolean')
5858
->with($this->anything())

tests/MartinGeorgiev/Doctrine/DBAL/Types/CidrArrayTest.php

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public static function provideValidTransformations(): array
8585
/**
8686
* @test
8787
*
88-
* @dataProvider provideInvalidTransformations
88+
* @dataProvider provideInvalidPHPValuesForDatabaseTransformation
8989
*/
9090
public function throws_exception_when_invalid_data_provided_to_convert_to_database_value(mixed $phpValue): void
9191
{
@@ -96,7 +96,7 @@ public function throws_exception_when_invalid_data_provided_to_convert_to_databa
9696
/**
9797
* @return array<string, array{mixed}>
9898
*/
99-
public static function provideInvalidTransformations(): array
99+
public static function provideInvalidPHPValuesForDatabaseTransformation(): array
100100
{
101101
return [
102102
'invalid type' => ['not-an-array'],
@@ -111,4 +111,31 @@ public static function provideInvalidTransformations(): array
111111
'malformed CIDR with spaces' => [['192.168.1.0 / 24']], // Space in CIDR notation
112112
];
113113
}
114+
115+
/**
116+
* @test
117+
*
118+
* @dataProvider provideInvalidDatabaseValuesForPHPTransformationForPHPTransformation
119+
*/
120+
public function throws_exception_when_invalid_data_provided_to_convert_to_php_value(string $postgresValue): void
121+
{
122+
$this->expectException(InvalidCidrArrayItemForPHPException::class);
123+
$this->fixture->convertToPHPValue($postgresValue, $this->platform);
124+
}
125+
126+
/**
127+
* @return array<string, array{string}>
128+
*/
129+
public static function provideInvalidDatabaseValuesForPHPTransformationForPHPTransformation(): array
130+
{
131+
return [
132+
'invalid format' => ['{"invalid-cidr"}'],
133+
'invalid CIDR in array' => ['{"256.256.256.0/24"}'],
134+
'malformed array' => ['not-an-array'],
135+
'empty item in array' => ['{"192.168.1.0/24",""}'],
136+
'invalid item in array' => ['{"192.168.1.0/24","invalid-cidr"}'],
137+
'missing netmask in array' => ['{"192.168.1.0"}'],
138+
'invalid netmask in array' => ['{"192.168.1.0/33"}'],
139+
];
140+
}
114141
}

tests/MartinGeorgiev/Doctrine/DBAL/Types/CidrTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public static function provideValidTransformations(): array
102102
/**
103103
* @test
104104
*
105-
* @dataProvider provideInvalidTransformations
105+
* @dataProvider provideInvalidPHPValuesForDatabaseTransformation
106106
*/
107107
public function throws_exception_when_invalid_data_provided_to_convert_to_database_value(mixed $phpValue): void
108108
{
@@ -113,7 +113,7 @@ public function throws_exception_when_invalid_data_provided_to_convert_to_databa
113113
/**
114114
* @return array<string, array{mixed}>
115115
*/
116-
public static function provideInvalidTransformations(): array
116+
public static function provideInvalidPHPValuesForDatabaseTransformation(): array
117117
{
118118
return [
119119
'empty string' => [''],
@@ -136,7 +136,7 @@ public static function provideInvalidTransformations(): array
136136
/**
137137
* @test
138138
*
139-
* @dataProvider provideInvalidDatabaseValues
139+
* @dataProvider provideInvalidDatabaseValuesForPHPTransformation
140140
*/
141141
public function throws_exception_when_invalid_data_provided_to_convert_to_php_value(mixed $dbValue): void
142142
{
@@ -147,7 +147,7 @@ public function throws_exception_when_invalid_data_provided_to_convert_to_php_va
147147
/**
148148
* @return array<string, array{mixed}>
149149
*/
150-
public static function provideInvalidDatabaseValues(): array
150+
public static function provideInvalidDatabaseValuesForPHPTransformation(): array
151151
{
152152
return [
153153
'invalid type' => [123],

tests/MartinGeorgiev/Doctrine/DBAL/Types/DoublePrecisionArrayTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ public function has_name(): void
2323
self::assertEquals('double precision[]', $this->fixture->getName());
2424
}
2525

26-
public static function provideInvalidTransformations(): array
26+
public static function provideInvalidPHPValuesForDatabaseTransformation(): array
2727
{
28-
return \array_merge(parent::provideInvalidTransformations(), [
28+
return \array_merge(parent::provideInvalidPHPValuesForDatabaseTransformation(), [
2929
['1.7976931348623157E+309'], // Too large
3030
['-1.7976931348623157E+309'], // Too small
3131
['1.123456789012345678'], // Too many decimal places (>15)

tests/MartinGeorgiev/Doctrine/DBAL/Types/InetArrayTest.php

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ public static function provideValidTransformations(): array
105105
/**
106106
* @test
107107
*
108-
* @dataProvider provideInvalidTransformations
108+
* @dataProvider provideInvalidPHPValuesForDatabaseTransformation
109109
*/
110110
public function throws_exception_when_invalid_data_provided_to_convert_to_database_value(mixed $phpValue): void
111111
{
@@ -116,7 +116,7 @@ public function throws_exception_when_invalid_data_provided_to_convert_to_databa
116116
/**
117117
* @return array<string, array{mixed}>
118118
*/
119-
public static function provideInvalidTransformations(): array
119+
public static function provideInvalidPHPValuesForDatabaseTransformation(): array
120120
{
121121
return [
122122
'invalid type' => ['not-an-array'],
@@ -136,4 +136,34 @@ public static function provideInvalidTransformations(): array
136136
'IPv6 with invalid segment length' => [['2001:db8:xyz:1:1:1:1:1']],
137137
];
138138
}
139+
140+
/**
141+
* @test
142+
*
143+
* @dataProvider provideInvalidDatabaseValuesForPHPTransformation
144+
*/
145+
public function throws_exception_when_invalid_data_provided_to_convert_to_php_value(string $postgresValue): void
146+
{
147+
$this->expectException(InvalidInetArrayItemForPHPException::class);
148+
149+
$this->fixture->convertToPHPValue($postgresValue, $this->platform);
150+
}
151+
152+
/**
153+
* @return array<string, array{string}>
154+
*/
155+
public static function provideInvalidDatabaseValuesForPHPTransformation(): array
156+
{
157+
return [
158+
'invalid format' => ['{"invalid-ip"}'],
159+
'invalid IPv4 in array' => ['{"256.256.256.256"}'],
160+
'invalid IPv6 in array' => ['{"2001:xyz::1"}'],
161+
'malformed array' => ['not-an-array'],
162+
'empty item in array' => ['{"192.168.1.1",""}'],
163+
'invalid item in array' => ['{"192.168.1.1","invalid-ip"}'],
164+
'invalid CIDR in array' => ['{"192.168.1.0/33"}'],
165+
'incomplete IPv4 in array' => ['{"192.168.1"}'],
166+
'incomplete IPv6 in array' => ['{"2001:db8"}'],
167+
];
168+
}
139169
}

0 commit comments

Comments
 (0)