Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,19 @@
namespace Tests\Integration\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions;

use MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\ArrayAgg;
use PHPUnit\Framework\Attributes\Test;

class ArrayAggTest extends ArrayTestCase
{
protected function getStringFunctions(): array
{
return ['ARRAY_AGG' => ArrayAgg::class];
return [
'ARRAY_AGG' => ArrayAgg::class,
];
}

public function test_array_agg_with_text_array(): void
#[Test]
public function can_aggregate_text_arrays(): void
{
$dql = 'SELECT ARRAY_AGG(t.textArray) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand All @@ -22,7 +26,8 @@ public function test_array_agg_with_text_array(): void
$this->assertSame('{{apple,banana,orange}}', $result[0]['result']);
}

public function test_array_agg_with_integer_array(): void
#[Test]
public function can_aggregate_integer_arrays(): void
{
$dql = 'SELECT ARRAY_AGG(t.integerArray) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand All @@ -31,7 +36,8 @@ public function test_array_agg_with_integer_array(): void
$this->assertSame('{{1,2,3}}', $result[0]['result']);
}

public function test_array_agg_with_boolean_array(): void
#[Test]
public function can_aggregate_boolean_arrays(): void
{
$dql = 'SELECT ARRAY_AGG(t.boolArray) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,19 @@
namespace Tests\Integration\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions;

use MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\ArrayAppend;
use PHPUnit\Framework\Attributes\Test;

class ArrayAppendTest extends ArrayTestCase
{
protected function getStringFunctions(): array
{
return ['ARRAY_APPEND' => ArrayAppend::class];
return [
'ARRAY_APPEND' => ArrayAppend::class,
];
}

public function test_array_append_with_text_array(): void
#[Test]
public function can_append_to_text_array(): void
{
$dql = 'SELECT ARRAY_APPEND(t.textArray, \'orange\') as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand All @@ -25,7 +29,8 @@ public function test_array_append_with_text_array(): void
$this->assertSame(['apple', 'banana', 'orange', 'orange'], $actual);
}

public function test_array_append_with_integer_array(): void
#[Test]
public function can_append_to_integer_array(): void
{
$dql = 'SELECT ARRAY_APPEND(t.integerArray, 3) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand All @@ -37,7 +42,8 @@ public function test_array_append_with_integer_array(): void
$this->assertSame([1, 2, 3, 3], $actual);
}

public function test_array_append_with_boolean_array(): void
#[Test]
public function can_append_to_boolean_array(): void
{
$dql = 'SELECT ARRAY_APPEND(t.boolArray, true) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,19 @@
namespace Tests\Integration\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions;

use MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\ArrayCardinality;
use PHPUnit\Framework\Attributes\Test;

class ArrayCardinalityTest extends ArrayTestCase
{
protected function getStringFunctions(): array
{
return ['ARRAY_CARDINALITY' => ArrayCardinality::class];
return [
'ARRAY_CARDINALITY' => ArrayCardinality::class,
];
}

public function test_array_cardinality_with_text_array(): void
#[Test]
public function can_get_text_array_cardinality(): void
{
$dql = 'SELECT ARRAY_CARDINALITY(t.textArray) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand All @@ -23,7 +27,8 @@ public function test_array_cardinality_with_text_array(): void
$this->assertSame(3, $result[0]['result']);
}

public function test_array_cardinality_with_integer_array(): void
#[Test]
public function can_get_integer_array_cardinality(): void
{
$dql = 'SELECT ARRAY_CARDINALITY(t.integerArray) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand All @@ -33,7 +38,8 @@ public function test_array_cardinality_with_integer_array(): void
$this->assertSame(3, $result[0]['result']);
}

public function test_array_cardinality_with_boolean_array(): void
#[Test]
public function can_get_boolean_array_cardinality(): void
{
$dql = 'SELECT ARRAY_CARDINALITY(t.boolArray) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,19 @@
namespace Tests\Integration\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions;

use MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\ArrayCat;
use PHPUnit\Framework\Attributes\Test;

class ArrayCatTest extends ArrayTestCase
{
protected function getStringFunctions(): array
{
return ['ARRAY_CAT' => ArrayCat::class];
return [
'ARRAY_CAT' => ArrayCat::class,
];
}

public function test_array_cat_with_text_arrays(): void
#[Test]
public function can_concatenate_text_arrays(): void
{
$dql = 'SELECT ARRAY_CAT(:array1, :array2) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand All @@ -27,7 +31,8 @@ public function test_array_cat_with_text_arrays(): void
$this->assertSame(['apple', 'banana', 'orange', 'kiwi'], $actual);
}

public function test_array_cat_with_integer_arrays(): void
#[Test]
public function can_concatenate_integer_arrays(): void
{
$dql = 'SELECT ARRAY_CAT(:array1, :array2) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand All @@ -41,7 +46,8 @@ public function test_array_cat_with_integer_arrays(): void
$this->assertSame([1, 2, 3, 4], $actual);
}

public function test_array_cat_with_boolean_arrays(): void
#[Test]
public function can_concatenate_boolean_arrays(): void
{
$dql = 'SELECT ARRAY_CAT(:array1, :array2) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand All @@ -55,7 +61,8 @@ public function test_array_cat_with_boolean_arrays(): void
$this->assertSame([true, false, true, true], $actual);
}

public function test_array_cat_with_array_columns(): void
#[Test]
public function can_concatenate_array_columns(): void
{
$dql = 'SELECT ARRAY_CAT(t.textArray, t.textArray) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,19 @@
namespace Tests\Integration\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions;

use MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\ArrayDimensions;
use PHPUnit\Framework\Attributes\Test;

class ArrayDimensionsTest extends ArrayTestCase
{
protected function getStringFunctions(): array
{
return ['ARRAY_DIMENSIONS' => ArrayDimensions::class];
return [
'ARRAY_DIMENSIONS' => ArrayDimensions::class,
];
}

public function test_array_dimensions_with_text_array(): void
#[Test]
public function can_get_text_array_dimensions(): void
{
$dql = 'SELECT ARRAY_DIMENSIONS(t.textArray) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand All @@ -23,7 +27,8 @@ public function test_array_dimensions_with_text_array(): void
$this->assertSame('[1:3]', $result[0]['result']);
}

public function test_array_dimensions_with_integer_array(): void
#[Test]
public function can_get_integer_array_dimensions(): void
{
$dql = 'SELECT ARRAY_DIMENSIONS(t.integerArray) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand All @@ -33,7 +38,8 @@ public function test_array_dimensions_with_integer_array(): void
$this->assertSame('[1:3]', $result[0]['result']);
}

public function test_array_dimensions_with_boolean_array(): void
#[Test]
public function can_get_boolean_array_dimensions(): void
{
$dql = 'SELECT ARRAY_DIMENSIONS(t.boolArray) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,19 @@
namespace Tests\Integration\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions;

use MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\ArrayLength;
use PHPUnit\Framework\Attributes\Test;

class ArrayLengthTest extends ArrayTestCase
{
protected function getStringFunctions(): array
{
return ['ARRAY_LENGTH' => ArrayLength::class];
return [
'ARRAY_LENGTH' => ArrayLength::class,
];
}

public function test_array_length_with_text_array(): void
#[Test]
public function can_get_text_array_length(): void
{
$dql = 'SELECT ARRAY_LENGTH(t.textArray, 1) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand All @@ -24,7 +28,8 @@ public function test_array_length_with_text_array(): void
$this->assertSame(3, $result[0]['result']);
}

public function test_array_length_with_integer_array(): void
#[Test]
public function can_get_integer_array_length(): void
{
$dql = 'SELECT ARRAY_LENGTH(t.integerArray, 1) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand All @@ -35,7 +40,8 @@ public function test_array_length_with_integer_array(): void
$this->assertSame(3, $result[0]['result']);
}

public function test_array_length_with_boolean_array(): void
#[Test]
public function can_get_boolean_array_length(): void
{
$dql = 'SELECT ARRAY_LENGTH(t.boolArray, 1) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand All @@ -46,7 +52,8 @@ public function test_array_length_with_boolean_array(): void
$this->assertSame(3, $result[0]['result']);
}

public function test_array_length_with_invalid_dimension(): void
#[Test]
public function returns_null_for_invalid_dimension(): void
{
$dql = 'SELECT ARRAY_LENGTH(t.textArray, 2) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,19 @@
namespace Tests\Integration\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions;

use MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\ArrayNumberOfDimensions;
use PHPUnit\Framework\Attributes\Test;

class ArrayNumberOfDimensionsTest extends ArrayTestCase
{
protected function getStringFunctions(): array
{
return ['ARRAY_NUMBER_OF_DIMENSIONS' => ArrayNumberOfDimensions::class];
return [
'ARRAY_NUMBER_OF_DIMENSIONS' => ArrayNumberOfDimensions::class,
];
}

public function test_array_number_of_dimensions_with_text_array(): void
#[Test]
public function can_get_text_array_number_of_dimensions(): void
{
$dql = 'SELECT ARRAY_NUMBER_OF_DIMENSIONS(t.textArray) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand All @@ -24,7 +28,8 @@ public function test_array_number_of_dimensions_with_text_array(): void
$this->assertSame(1, $result[0]['result']);
}

public function test_array_number_of_dimensions_with_integer_array(): void
#[Test]
public function can_get_integer_array_number_of_dimensions(): void
{
$dql = 'SELECT ARRAY_NUMBER_OF_DIMENSIONS(t.integerArray) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand All @@ -35,7 +40,8 @@ public function test_array_number_of_dimensions_with_integer_array(): void
$this->assertSame(1, $result[0]['result']);
}

public function test_array_number_of_dimensions_with_boolean_array(): void
#[Test]
public function can_get_boolean_array_number_of_dimensions(): void
{
$dql = 'SELECT ARRAY_NUMBER_OF_DIMENSIONS(t.boolArray) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,31 @@
namespace Tests\Integration\MartinGeorgiev\Doctrine\ORM\Query\AST\Functions;

use MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\ArrayPosition;
use PHPUnit\Framework\Attributes\Test;

class ArrayPositionTest extends ArrayTestCase
{
protected function getStringFunctions(): array
{
return ['ARRAY_POSITION' => ArrayPosition::class];
return [
'ARRAY_POSITION' => ArrayPosition::class,
];
}

public function test_array_position_with_text_array(): void
#[Test]
public function returns_position_when_text_element_is_found(): void
{
$dql = 'SELECT ARRAY_POSITION(t.textArray, \'banana\') as result
$dql = 'SELECT ARRAY_POSITION(t.textArray, \'orange\') as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
WHERE t.id = 1';

$result = $this->executeDqlQuery($dql);
$this->assertIsInt($result[0]['result']);
$this->assertSame(2, $result[0]['result']);
$this->assertSame(3, $result[0]['result']);
}

public function test_array_position_with_integer_array(): void
#[Test]
public function returns_position_when_integer_element_is_found(): void
{
$dql = 'SELECT ARRAY_POSITION(t.integerArray, 2) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand All @@ -35,7 +40,8 @@ public function test_array_position_with_integer_array(): void
$this->assertSame(2, $result[0]['result']);
}

public function test_array_position_with_boolean_array(): void
#[Test]
public function returns_position_when_boolean_element_is_found(): void
{
$dql = 'SELECT ARRAY_POSITION(t.boolArray, false) as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand All @@ -46,7 +52,8 @@ public function test_array_position_with_boolean_array(): void
$this->assertSame(2, $result[0]['result']);
}

public function test_array_position_with_not_found_element(): void
#[Test]
public function returns_null_when_no_position_is_found(): void
{
$dql = 'SELECT ARRAY_POSITION(t.textArray, \'mango\') as result
FROM Fixtures\MartinGeorgiev\Doctrine\Entity\ContainsArrays t
Expand Down
Loading
Loading