Skip to content

Commit 9f15459

Browse files
chore: improve tests by adding more SQL scenarios and adding descriptions to the tested query variations
1 parent 7adfd74 commit 9f15459

16 files changed

+77
-65
lines changed

tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/AnyOnTheRightExistsOnTheLeftTest.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,18 @@ protected function getStringFunctions(): array
2121
protected function getExpectedSqlStatements(): array
2222
{
2323
return [
24-
"SELECT (c0_.object1 ??| ARRAY['test']) AS sclr_0 FROM ContainsJsons c0_",
24+
'checks if any key exists in jsonb' => "SELECT (c0_.object1 ??| ARRAY['test']) AS sclr_0 FROM ContainsJsons c0_",
25+
'checks if any of multiple keys exist in jsonb' => "SELECT (c0_.object1 ??| ARRAY['key1', 'key2']) AS sclr_0 FROM ContainsJsons c0_",
26+
'checks with parameter' => 'SELECT (c0_.object1 ??| ?) AS sclr_0 FROM ContainsJsons c0_',
2527
];
2628
}
2729

2830
protected function getDqlStatements(): array
2931
{
3032
return [
31-
\sprintf("SELECT ANY_ON_RIGHT_EXISTS_ON_LEFT(e.object1, ARRAY('test')) FROM %s e", ContainsJsons::class),
33+
'checks if any key exists in jsonb' => \sprintf("SELECT ANY_ON_RIGHT_EXISTS_ON_LEFT(e.object1, ARRAY('test')) FROM %s e", ContainsJsons::class),
34+
'checks if any of multiple keys exist in jsonb' => \sprintf("SELECT ANY_ON_RIGHT_EXISTS_ON_LEFT(e.object1, ARRAY('key1', 'key2')) FROM %s e", ContainsJsons::class),
35+
'checks with parameter' => \sprintf('SELECT ANY_ON_RIGHT_EXISTS_ON_LEFT(e.object1, :parameter) FROM %s e', ContainsJsons::class),
3236
];
3337
}
3438
}

tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/AnyTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ protected function getStringFunctions(): array
1919
protected function getExpectedSqlStatements(): array
2020
{
2121
return [
22-
'SELECT c0_.id AS id_0 FROM ContainsArrays c0_ WHERE c0_.id > ANY(c0_.array1)',
22+
'any elements match condition' => 'SELECT c0_.id AS id_0 FROM ContainsArrays c0_ WHERE c0_.id > ANY(c0_.array1)',
2323
];
2424
}
2525

2626
protected function getDqlStatements(): array
2727
{
2828
return [
29-
\sprintf('SELECT e.id FROM %s e WHERE e.id > ANY_OF(e.array1)', ContainsArrays::class),
29+
'any elements match condition' => \sprintf('SELECT e.id FROM %s e WHERE e.id > ANY_OF(e.array1)', ContainsArrays::class),
3030
];
3131
}
3232
}

tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/ArrTest.php

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,18 @@ protected function getStringFunctions(): array
1919
protected function getExpectedSqlStatements(): array
2020
{
2121
return [
22-
// Multiple literal values
23-
"SELECT ARRAY['foo', 'bar', 'baz'] AS sclr_0 FROM ContainsArrays c0_",
24-
// Column references
25-
'SELECT ARRAY[c0_.array1] AS sclr_0 FROM ContainsArrays c0_',
26-
// Mix of column references and literals
27-
"SELECT ARRAY[c0_.array1, 'test-value', c0_.array2] AS sclr_0 FROM ContainsArrays c0_",
22+
'creates array from multiple literal values' => "SELECT ARRAY['foo', 'bar', 'baz'] AS sclr_0 FROM ContainsArrays c0_",
23+
'creates array from column references' => 'SELECT ARRAY[c0_.array1] AS sclr_0 FROM ContainsArrays c0_',
24+
'creates array from mix of column references and literals' => "SELECT ARRAY[c0_.array1, 'test-value', c0_.array2] AS sclr_0 FROM ContainsArrays c0_",
2825
];
2926
}
3027

3128
protected function getDqlStatements(): array
3229
{
3330
return [
34-
// Multiple literal values
35-
\sprintf("SELECT ARRAY('foo', 'bar', 'baz') FROM %s e", ContainsArrays::class),
36-
// Column references
37-
\sprintf('SELECT ARRAY(e.array1) FROM %s e', ContainsArrays::class),
38-
// Mix of column references and literals
39-
\sprintf("SELECT ARRAY(e.array1, 'test-value', e.array2) FROM %s e", ContainsArrays::class),
31+
'creates array from multiple literal values' => \sprintf("SELECT ARRAY('foo', 'bar', 'baz') FROM %s e", ContainsArrays::class),
32+
'creates array from column references' => \sprintf('SELECT ARRAY(e.array1) FROM %s e', ContainsArrays::class),
33+
'creates array from mix of column references and literals' => \sprintf("SELECT ARRAY(e.array1, 'test-value', e.array2) FROM %s e", ContainsArrays::class),
4034
];
4135
}
4236
}

tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/ArrayAppendTest.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,18 @@ protected function getStringFunctions(): array
1919
protected function getExpectedSqlStatements(): array
2020
{
2121
return [
22-
'SELECT array_append(c0_.array1, 1989) AS sclr_0 FROM ContainsArrays c0_',
23-
"SELECT array_append(c0_.array1, 'country') AS sclr_0 FROM ContainsArrays c0_",
24-
'SELECT array_append(c0_.array1, ?) AS sclr_0 FROM ContainsArrays c0_',
22+
'appends string element to array' => "SELECT array_append(c0_.array1, 'new-value') AS sclr_0 FROM ContainsArrays c0_",
23+
'appends numeric element to array' => 'SELECT array_append(c0_.array1, 42) AS sclr_0 FROM ContainsArrays c0_',
24+
'appends element using parameter' => 'SELECT array_append(c0_.array1, ?) AS sclr_0 FROM ContainsArrays c0_',
2525
];
2626
}
2727

2828
protected function getDqlStatements(): array
2929
{
3030
return [
31-
\sprintf('SELECT ARRAY_APPEND(e.array1, 1989) FROM %s e', ContainsArrays::class),
32-
\sprintf("SELECT ARRAY_APPEND(e.array1, 'country') FROM %s e", ContainsArrays::class),
33-
\sprintf('SELECT ARRAY_APPEND(e.array1, :dql_parameter) FROM %s e', ContainsArrays::class),
31+
'appends string element to array' => \sprintf("SELECT ARRAY_APPEND(e.array1, 'new-value') FROM %s e", ContainsArrays::class),
32+
'appends numeric element to array' => \sprintf('SELECT ARRAY_APPEND(e.array1, 42) FROM %s e', ContainsArrays::class),
33+
'appends element using parameter' => \sprintf('SELECT ARRAY_APPEND(e.array1, :dql_parameter) FROM %s e', ContainsArrays::class),
3434
];
3535
}
3636
}

tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/ArrayCardinalityTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ protected function getStringFunctions(): array
1919
protected function getExpectedSqlStatements(): array
2020
{
2121
return [
22-
'SELECT cardinality(c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
22+
'gets cardinality of array' => 'SELECT cardinality(c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
2323
];
2424
}
2525

2626
protected function getDqlStatements(): array
2727
{
2828
return [
29-
\sprintf('SELECT ARRAY_CARDINALITY(e.array1) FROM %s e', ContainsArrays::class),
29+
'gets cardinality of array' => \sprintf('SELECT ARRAY_CARDINALITY(e.array1) FROM %s e', ContainsArrays::class),
3030
];
3131
}
3232
}

tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/ArrayCatTest.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,16 @@ protected function getStringFunctions(): array
1919
protected function getExpectedSqlStatements(): array
2020
{
2121
return [
22-
'SELECT array_cat(c0_.array1, c0_.array2) AS sclr_0 FROM ContainsArrays c0_',
22+
'concatenates two arrays' => 'SELECT array_cat(c0_.array1, c0_.array2) AS sclr_0 FROM ContainsArrays c0_',
23+
'concatenates with parameter' => 'SELECT array_cat(c0_.array1, ?) AS sclr_0 FROM ContainsArrays c0_',
2324
];
2425
}
2526

2627
protected function getDqlStatements(): array
2728
{
2829
return [
29-
\sprintf('SELECT ARRAY_CAT(e.array1, e.array2) FROM %s e', ContainsArrays::class),
30+
'concatenates two arrays' => \sprintf('SELECT ARRAY_CAT(e.array1, e.array2) FROM %s e', ContainsArrays::class),
31+
'concatenates with parameter' => \sprintf('SELECT ARRAY_CAT(e.array1, :parameter) FROM %s e', ContainsArrays::class),
3032
];
3133
}
3234
}

tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/ArrayDimensionsTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ protected function getStringFunctions(): array
1919
protected function getExpectedSqlStatements(): array
2020
{
2121
return [
22-
'SELECT array_dims(c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
22+
'gets dimensions of array field' => 'SELECT array_dims(c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
2323
];
2424
}
2525

2626
protected function getDqlStatements(): array
2727
{
2828
return [
29-
\sprintf('SELECT ARRAY_DIMENSIONS(e.array1) FROM %s e', ContainsArrays::class),
29+
'gets dimensions of array field' => \sprintf('SELECT ARRAY_DIMENSIONS(e.array1) FROM %s e', ContainsArrays::class),
3030
];
3131
}
3232
}

tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/ArrayLengthTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,16 @@ protected function getStringFunctions(): array
1919
protected function getExpectedSqlStatements(): array
2020
{
2121
return [
22-
'SELECT array_length(c0_.array1, 1) AS sclr_0 FROM ContainsArrays c0_',
23-
'SELECT array_length(c0_.array1, ?) AS sclr_0 FROM ContainsArrays c0_',
22+
'gets length of array with hardcoded dimension' => 'SELECT array_length(c0_.array1, 1) AS sclr_0 FROM ContainsArrays c0_',
23+
'gets length of array with parameterized dimension' => 'SELECT array_length(c0_.array1, ?) AS sclr_0 FROM ContainsArrays c0_',
2424
];
2525
}
2626

2727
protected function getDqlStatements(): array
2828
{
2929
return [
30-
\sprintf('SELECT ARRAY_LENGTH(e.array1, 1) FROM %s e', ContainsArrays::class),
31-
\sprintf('SELECT ARRAY_LENGTH(e.array1, :dql_parameter) FROM %s e', ContainsArrays::class),
30+
'gets length of array with hardcoded dimension' => \sprintf('SELECT ARRAY_LENGTH(e.array1, 1) FROM %s e', ContainsArrays::class),
31+
'gets length of array with parameterized dimension' => \sprintf('SELECT ARRAY_LENGTH(e.array1, :dql_parameter) FROM %s e', ContainsArrays::class),
3232
];
3333
}
3434
}

tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/ArrayNumberOfDimensionsTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ protected function getStringFunctions(): array
1919
protected function getExpectedSqlStatements(): array
2020
{
2121
return [
22-
'SELECT array_ndims(c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
22+
'gets number of dimensions of array field' => 'SELECT array_ndims(c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
2323
];
2424
}
2525

2626
protected function getDqlStatements(): array
2727
{
2828
return [
29-
\sprintf('SELECT ARRAY_NUMBER_OF_DIMENSIONS(e.array1) FROM %s e', ContainsArrays::class),
29+
'gets number of dimensions of array field' => \sprintf('SELECT ARRAY_NUMBER_OF_DIMENSIONS(e.array1) FROM %s e', ContainsArrays::class),
3030
];
3131
}
3232
}

tests/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/ArrayPrependTest.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,18 @@ protected function getStringFunctions(): array
1919
protected function getExpectedSqlStatements(): array
2020
{
2121
return [
22-
'SELECT array_prepend(1885, c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
23-
"SELECT array_prepend('red', c0_.array1) AS sclr_0 FROM ContainsArrays c0_",
24-
'SELECT array_prepend(?, c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
22+
'prepends string element to array' => "SELECT array_prepend('new-value', c0_.array1) AS sclr_0 FROM ContainsArrays c0_",
23+
'prepends numeric element to array' => 'SELECT array_prepend(42, c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
24+
'prepends element using parameter' => 'SELECT array_prepend(?, c0_.array1) AS sclr_0 FROM ContainsArrays c0_',
2525
];
2626
}
2727

2828
protected function getDqlStatements(): array
2929
{
3030
return [
31-
\sprintf('SELECT ARRAY_PREPEND(1885, e.array1) FROM %s e', ContainsArrays::class),
32-
\sprintf("SELECT ARRAY_PREPEND('red', e.array1) FROM %s e", ContainsArrays::class),
33-
\sprintf('SELECT ARRAY_PREPEND(:dql_parameter, e.array1) FROM %s e', ContainsArrays::class),
31+
'prepends string element to array' => \sprintf("SELECT ARRAY_PREPEND('new-value', e.array1) FROM %s e", ContainsArrays::class),
32+
'prepends numeric element to array' => \sprintf('SELECT ARRAY_PREPEND(42, e.array1) FROM %s e', ContainsArrays::class),
33+
'prepends element using parameter' => \sprintf('SELECT ARRAY_PREPEND(:dql_parameter, e.array1) FROM %s e', ContainsArrays::class),
3434
];
3535
}
3636
}

0 commit comments

Comments
 (0)