diff --git a/.github/workflows/bc.yml b/.github/workflows/bc.yml
index 15c4880a..5970206c 100644
--- a/.github/workflows/bc.yml
+++ b/.github/workflows/bc.yml
@@ -20,4 +20,4 @@ jobs:
os: >-
['ubuntu-latest']
php: >-
- ['8.0']
+ ['8.1']
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 8506ea11..3feaeef3 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -10,6 +10,7 @@ on:
- 'psalm.xml'
push:
+ branches: ['master']
paths-ignore:
- 'docs/**'
- 'README.md'
@@ -28,4 +29,4 @@ jobs:
os: >-
['ubuntu-latest', 'windows-latest']
php: >-
- ['8.0', '8.1']
+ ['8.1', '8.2', '8.3']
diff --git a/.github/workflows/composer-require-checker.yml b/.github/workflows/composer-require-checker.yml
index ae5893f5..a857bce6 100644
--- a/.github/workflows/composer-require-checker.yml
+++ b/.github/workflows/composer-require-checker.yml
@@ -11,6 +11,7 @@ on:
- 'psalm.xml'
push:
+ branches: ['master']
paths-ignore:
- 'docs/**'
- 'README.md'
@@ -30,4 +31,4 @@ jobs:
os: >-
['ubuntu-latest']
php: >-
- ['8.0', '8.1']
+ ['8.1', '8.2', '8.3']
diff --git a/.github/workflows/mutation.yml b/.github/workflows/mutation.yml
index 806ab8ad..a0fbc13f 100644
--- a/.github/workflows/mutation.yml
+++ b/.github/workflows/mutation.yml
@@ -9,6 +9,7 @@ on:
- 'psalm.xml'
push:
+ branches: ['master']
paths-ignore:
- 'docs/**'
- 'README.md'
diff --git a/.github/workflows/rector.yml b/.github/workflows/rector.yml
index adacd735..35411d0a 100644
--- a/.github/workflows/rector.yml
+++ b/.github/workflows/rector.yml
@@ -14,8 +14,10 @@ name: rector
jobs:
rector:
uses: yiisoft/actions/.github/workflows/rector.yml@master
+ secrets:
+ token: ${{ secrets.YIISOFT_GITHUB_TOKEN }}
with:
os: >-
['ubuntu-latest']
php: >-
- ['8.0']
+ ['8.3']
diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml
index 483e4c55..e33eca86 100644
--- a/.github/workflows/static.yml
+++ b/.github/workflows/static.yml
@@ -10,6 +10,7 @@ on:
- 'phpunit.xml.dist'
push:
+ branches: ['master']
paths-ignore:
- 'docs/**'
- 'README.md'
@@ -28,12 +29,4 @@ jobs:
os: >-
['ubuntu-latest']
php: >-
- ['8.1']
- psalm-php80:
- uses: yiisoft/actions/.github/workflows/psalm.yml@master
- with:
- psalm-config: psalm-php80.xml
- os: >-
- ['ubuntu-latest']
- php: >-
- ['8.0']
+ ['8.1', '8.2', '8.3']
diff --git a/.gitignore b/.gitignore
index ffca5ff0..db6cb742 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,4 +27,4 @@ phpunit.phar
# local phpunit config
/phpunit.xml
# phpunit cache
-.phpunit.result.cache
+/.phpunit.cache/*
diff --git a/.scrutinizer.yml b/.scrutinizer.yml
index 61fb502d..1c9cd851 100644
--- a/.scrutinizer.yml
+++ b/.scrutinizer.yml
@@ -10,7 +10,7 @@ build:
environment:
php:
- version: 8.0.18
+ version: 8.1.26
ini:
xdebug.mode: coverage
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f0c94521..0a925aac 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,9 +5,10 @@
- New #150: Extract `withLimit()` from `ReadableDataInterface` into `LimitableDataInterface` (@vjik)
- Enh #150: `PaginatorInterface` now extends `ReadableDataInterface` (@vjik)
- Chg #151: Rename `isRequired()` method in `PaginatorInterface` to `isPaginationRequired()` (@vjik)
-- New #153: Add `KeysetPaginator::withFilterCallback()` method that allows set closure for preparing filter passed to
+- New #153, #154: Add `KeysetPaginator::withFilterCallback()` method that allows set closure for preparing filter passed to
the data reader (@vjik)
- New #153: Add `Compare::withValue()` method (@vjik)
+- Chg #154: Raise minimum required PHP version to 8.1 (@vjik)
## 1.0.1 January 25, 2023
diff --git a/composer.json b/composer.json
index c7c8ba7c..65086105 100644
--- a/composer.json
+++ b/composer.json
@@ -31,16 +31,16 @@
}
],
"require": {
- "php": "^8.0",
+ "php": "^8.1",
"yiisoft/arrays": "^3.0"
},
"require-dev": {
- "maglnet/composer-require-checker": "^4.2",
- "phpunit/phpunit": "^9.5",
- "rector/rector": "^0.19.0",
- "roave/infection-static-analysis-plugin": "^1.25",
+ "maglnet/composer-require-checker": "^4.7",
+ "phpunit/phpunit": "^10",
+ "rector/rector": "^0.19",
+ "roave/infection-static-analysis-plugin": "^1.34",
"spatie/phpunit-watcher": "^1.23",
- "vimeo/psalm": "^4.26|^5.4"
+ "vimeo/psalm": "^5.20"
},
"autoload": {
"psr-4": {
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
index f9aba108..8860daec 100644
--- a/phpunit.xml.dist
+++ b/phpunit.xml.dist
@@ -1,17 +1,16 @@
-
-
@@ -23,9 +22,9 @@
-
+
- ./src
+ ./src
-
+
diff --git a/psalm-php80.xml b/psalm-php80.xml
deleted file mode 100644
index ba4ad097..00000000
--- a/psalm-php80.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/psalm.xml b/psalm.xml
index 73ed7155..b48c894e 100644
--- a/psalm.xml
+++ b/psalm.xml
@@ -10,7 +10,11 @@
-
+
+
+
+
+
diff --git a/rector.php b/rector.php
index 63713ce9..90fea6ba 100644
--- a/rector.php
+++ b/rector.php
@@ -4,6 +4,9 @@
use Rector\CodeQuality\Rector\Class_\InlineConstructorDefaultToPropertyRector;
use Rector\Config\RectorConfig;
+use Rector\Php73\Rector\FuncCall\JsonThrowOnErrorRector;
+use Rector\Php74\Rector\Closure\ClosureToArrowFunctionRector;
+use Rector\Php81\Rector\Property\ReadOnlyPropertyRector;
use Rector\Set\ValueObject\LevelSetList;
return static function (RectorConfig $rectorConfig): void {
@@ -17,6 +20,12 @@
// define sets of rules
$rectorConfig->sets([
- LevelSetList::UP_TO_PHP_80,
+ LevelSetList::UP_TO_PHP_81,
+ ]);
+
+ $rectorConfig->skip([
+ ClosureToArrowFunctionRector::class,
+ JsonThrowOnErrorRector::class,
+ ReadOnlyPropertyRector::class,
]);
};
diff --git a/src/Paginator/KeysetFilterContext.php b/src/Paginator/KeysetFilterContext.php
index ac0b6177..cb0c1fd9 100644
--- a/src/Paginator/KeysetFilterContext.php
+++ b/src/Paginator/KeysetFilterContext.php
@@ -7,10 +7,10 @@
final class KeysetFilterContext
{
public function __construct(
- public string $field,
- public string $value,
- public int $sorting,
- public bool $isReverse
+ public readonly string $field,
+ public readonly string $value,
+ public readonly int $sorting,
+ public readonly bool $isReverse
) {
}
}
diff --git a/tests/Paginator/KeysetPaginatorTest.php b/tests/Paginator/KeysetPaginatorTest.php
index 3b9647ae..1b34f86a 100644
--- a/tests/Paginator/KeysetPaginatorTest.php
+++ b/tests/Paginator/KeysetPaginatorTest.php
@@ -6,6 +6,7 @@
use ArrayIterator;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use RuntimeException;
use stdClass;
use Yiisoft\Arrays\ArrayHelper;
@@ -128,7 +129,7 @@ public function withFilterHandlers(FilterHandlerInterface ...$filterHandlers): s
public function testThrowsExceptionWhenReaderHasNoSort(): void
{
- $dataReader = new IterableDataReader($this->getDataSet());
+ $dataReader = new IterableDataReader(self::getDataSet());
$this->expectException(RuntimeException::class);
$this->expectExceptionMessage('Data sorting should be configured to work with keyset pagination.');
@@ -139,7 +140,7 @@ public function testThrowsExceptionWhenReaderHasNoSort(): void
public function testThrowsExceptionWhenNotSorted(): void
{
$sort = Sort::only(['id', 'name']);
- $dataReader = (new IterableDataReader($this->getDataSet()))->withSort($sort);
+ $dataReader = (new IterableDataReader(self::getDataSet()))->withSort($sort);
$this->expectException(RuntimeException::class);
$this->expectExceptionMessage('Data should be always sorted to work with keyset pagination.');
@@ -150,7 +151,7 @@ public function testThrowsExceptionWhenNotSorted(): void
public function testPageSizeCannotBeLessThanOne(): void
{
$sort = Sort::only(['id', 'name'])->withOrderString('id');
- $dataReader = (new IterableDataReader($this->getDataSet()))->withSort($sort);
+ $dataReader = (new IterableDataReader(self::getDataSet()))->withSort($sort);
$paginator = new KeysetPaginator($dataReader);
$this->expectException(InvalidArgumentException::class);
@@ -159,32 +160,30 @@ public function testPageSizeCannotBeLessThanOne(): void
$paginator->withPageSize(0);
}
- public function onePageDataProvider(): array
+ public static function dataOnePage(): array
{
return [
[[], 1],
[[], 2],
[[], 3],
- [$this->getDataSet([0]), 1],
+ [self::getDataSet([0]), 1],
- [$this->getDataSet([0]), 2],
- [$this->getDataSet([0, 1]), 2],
+ [self::getDataSet([0]), 2],
+ [self::getDataSet([0, 1]), 2],
- [$this->getDataSet([0]), 3],
- [$this->getDataSet([0, 1]), 3],
- [$this->getDataSet([0, 1, 2]), 3],
+ [self::getDataSet([0]), 3],
+ [self::getDataSet([0, 1]), 3],
+ [self::getDataSet([0, 1, 2]), 3],
- [$this->getDataSet([0]), 4],
- [$this->getDataSet([0, 1]), 4],
- [$this->getDataSet([0, 1, 2]), 4],
- [$this->getDataSet([0, 1, 2, 3]), 4],
+ [self::getDataSet([0]), 4],
+ [self::getDataSet([0, 1]), 4],
+ [self::getDataSet([0, 1, 2]), 4],
+ [self::getDataSet([0, 1, 2, 3]), 4],
];
}
- /**
- * @dataProvider onePageDataProvider
- */
+ #[DataProvider('dataOnePage')]
public function testOnePage(array $dataSet, int $pageSize): void
{
$sort = Sort::only(['id', 'name'])->withOrderString('id');
@@ -212,10 +211,10 @@ public function testEmptyData(): void
public function testReadFirstPage(): void
{
$sort = Sort::only(['id', 'name'])->withOrderString('id');
- $dataReader = (new IterableDataReader($this->getDataSet()))->withSort($sort);
+ $dataReader = (new IterableDataReader(self::getDataSet()))->withSort($sort);
$paginator = (new KeysetPaginator($dataReader))->withPageSize(2);
- $expected = $this->getDataSet([0, 1]);
+ $expected = self::getDataSet([0, 1]);
$this->assertSame($expected, $this->iterableToArray($paginator->read()));
$last = end($expected);
@@ -240,7 +239,7 @@ public function testReadObjectsWithPublicProperties(): void
$this->assertTrue($paginator->isOnFirstPage());
}
- public function readObjectsWithGettersDataProvider(): array
+ public static function dataReadObjectsWithGetters(): array
{
return [
'order by id field' => ['getId()', 'getId'],
@@ -248,9 +247,7 @@ public function readObjectsWithGettersDataProvider(): array
];
}
- /**
- * @dataProvider readObjectsWithGettersDataProvider
- */
+ #[DataProvider('dataReadObjectsWithGetters')]
public function testReadObjectsWithGetters(string $orderByField, string $getter): void
{
$sort = Sort::only(['getId()', 'getName()', 'getCreatedAt()'])->withOrderString($orderByField);
@@ -272,14 +269,14 @@ public function testReadSecondPage(): void
{
$sort = Sort::only(['id', 'name'])->withOrderString('id');
- $dataReader = (new IterableDataReader($this->getDataSet()))
+ $dataReader = (new IterableDataReader(self::getDataSet()))
->withSort($sort);
$paginator = (new KeysetPaginator($dataReader))
->withPageSize(2)
->withNextPageToken('2');
- $expected = $this->getDataSet([2, 3]);
+ $expected = self::getDataSet([2, 3]);
$this->assertSame($expected, array_values((array) $paginator->read()));
$last = end($expected);
@@ -289,21 +286,21 @@ public function testReadSecondPage(): void
public function testReadSecondPageOrderedByName(): void
{
$sort = Sort::only(['id', 'name'])->withOrderString('name');
- $dataReader = (new IterableDataReader($this->getDataSet()))->withSort($sort);
+ $dataReader = (new IterableDataReader(self::getDataSet()))->withSort($sort);
$paginator = (new KeysetPaginator($dataReader))
->withPageSize(2)
->withNextPageToken('Agent J')
;
- $expected = $this->getDataSet([2, 0]);
+ $expected = self::getDataSet([2, 0]);
$this->assertSame($expected, array_values($this->iterableToArray($paginator->read())));
$last = end($expected);
$this->assertSame((string)$last['name'], $paginator->getNextPageToken());
}
- public function dataReadOne(): array
+ public static function dataReadOne(): array
{
$data = [];
@@ -328,9 +325,7 @@ public function dataReadOne(): array
return $data;
}
- /**
- * @dataProvider dataReadOne
- */
+ #[DataProvider('dataReadOne')]
public function testReadOne(mixed $expected, KeysetPaginator $paginator): void
{
$result = $paginator->readOne();
@@ -340,13 +335,13 @@ public function testReadOne(mixed $expected, KeysetPaginator $paginator): void
public function testBackwardPagination(): void
{
$sort = Sort::only(['id', 'name'])->withOrderString('id');
- $dataReader = (new IterableDataReader($this->getDataSet()))->withSort($sort);
+ $dataReader = (new IterableDataReader(self::getDataSet()))->withSort($sort);
$paginator = (new KeysetPaginator($dataReader))
->withPageSize(2)
->withPreviousPageToken('5')
;
- $expected = $this->getDataSet([1, 2]);
+ $expected = self::getDataSet([1, 2]);
$read = array_values($this->iterableToArray($paginator->read()));
$this->assertSame($expected, $read);
@@ -359,13 +354,13 @@ public function testBackwardPagination(): void
public function testForwardAndBackwardPagination(): void
{
$sort = Sort::only(['id', 'name'])->withOrderString('id');
- $dataReader = (new IterableDataReader($this->getDataSet()))->withSort($sort);
+ $dataReader = (new IterableDataReader(self::getDataSet()))->withSort($sort);
$paginator = (new KeysetPaginator($dataReader))
->withPageSize(2)
->withNextPageToken('2')
;
- $expected = $this->getDataSet([2, 3]);
+ $expected = self::getDataSet([2, 3]);
$read = array_values($this->iterableToArray($paginator->read()));
$this->assertSame($expected, $read);
@@ -380,7 +375,7 @@ public function testForwardAndBackwardPagination(): void
->withPageSize(2)
->withPreviousPageToken($paginator->getPreviousPageToken());
- $expected = $this->getDataSet([0, 1]);
+ $expected = self::getDataSet([0, 1]);
$read = array_values($this->iterableToArray($paginator->read()));
$this->assertSame($expected, $read);
@@ -392,7 +387,7 @@ public function testForwardAndBackwardPagination(): void
public function testIsOnFirstPage(): void
{
$sort = Sort::only(['id'])->withOrderString('id');
- $dataReader = (new IterableDataReader($this->getDataSet()))->withSort($sort);
+ $dataReader = (new IterableDataReader(self::getDataSet()))->withSort($sort);
$paginator = (new KeysetPaginator($dataReader))->withPageSize(2);
$this->assertTrue($paginator->isOnFirstPage());
@@ -402,7 +397,7 @@ public function testIsOnFirstPage(): void
public function testIsOnLastPage(): void
{
$sort = Sort::only(['id'])->withOrderString('id');
- $dataReader = (new IterableDataReader($this->getDataSet()))->withSort($sort);
+ $dataReader = (new IterableDataReader(self::getDataSet()))->withSort($sort);
$paginator = (new KeysetPaginator($dataReader))->withPageSize(2);
$paginator = $paginator->withNextPageToken('6');
@@ -425,7 +420,7 @@ public function testIsOnLastPage(): void
public function testIsPaginationRequired(): void
{
$sort = Sort::only(['id'])->withOrderString('id');
- $dataReader = (new IterableDataReader($this->getDataSet()))->withSort($sort);
+ $dataReader = (new IterableDataReader(self::getDataSet()))->withSort($sort);
$paginator = new KeysetPaginator($dataReader);
$this->assertFalse($paginator->isPaginationRequired());
@@ -438,7 +433,7 @@ public function testIsPaginationRequired(): void
public function testCurrentPageSize(): void
{
$sort = Sort::only(['id'])->withOrderString('id');
- $dataReader = (new IterableDataReader($this->getDataSet()))->withSort($sort);
+ $dataReader = (new IterableDataReader(self::getDataSet()))->withSort($sort);
$paginator = (new KeysetPaginator($dataReader))->withPageSize(2);
$this->assertSame(2, $paginator->getCurrentPageSize());
@@ -464,7 +459,7 @@ public function testCurrentPageSize(): void
public function testReadCache(): void
{
$sort = Sort::only(['id'])->withOrderString('id');
- $dataSet = new class ($this->getDataSet()) extends ArrayIterator {
+ $dataSet = new class (self::getDataSet()) extends ArrayIterator {
private int $rewindCounter = 0;
public function rewind(): void
@@ -512,7 +507,7 @@ public function getRewindCounter(): int
public function testTokenResults(): void
{
$sort = Sort::only(['id'])->withOrderString('id');
- $dataReader = (new IterableDataReader($this->getDataSet()))->withSort($sort);
+ $dataReader = (new IterableDataReader(self::getDataSet()))->withSort($sort);
$paginator = (new KeysetPaginator($dataReader))->withPageSize(2);
$this->assertNotNull($paginator->getNextPageToken());
@@ -558,7 +553,7 @@ public function testTokenResults(): void
public function testDefaultPageSize(): void
{
$sort = Sort::only(['id'])->withOrderString('id');
- $dataReader = (new IterableDataReader($this->getDataSet()))->withSort($sort);
+ $dataReader = (new IterableDataReader(self::getDataSet()))->withSort($sort);
$paginator = new KeysetPaginator($dataReader);
$this->assertSame(10, $paginator->getPageSize());
@@ -568,14 +563,14 @@ public function testDefaultPageSize(): void
public function testCustomPageSize(): void
{
$sort = Sort::only(['id'])->withOrderString('id');
- $dataReader = (new IterableDataReader($this->getDataSet()))->withSort($sort);
+ $dataReader = (new IterableDataReader(self::getDataSet()))->withSort($sort);
$paginator = (new KeysetPaginator($dataReader))->withPageSize(2);
$this->assertSame(2, $paginator->getPageSize());
$this->assertCount(2, $paginator->read());
}
- private function getDataSet(array $keys = null): array
+ private static function getDataSet(array $keys = null): array
{
if ($keys === null) {
return self::DEFAULT_DATASET;
@@ -689,7 +684,7 @@ public function getCreatedAt(): int
public function testGetSort(): void
{
$sort = Sort::only(['id'])->withOrderString('id');
- $dataReader = (new IterableDataReader($this->getDataSet()))->withSort($sort);
+ $dataReader = (new IterableDataReader(self::getDataSet()))->withSort($sort);
$paginator = (new KeysetPaginator($dataReader));
$this->assertInstanceOf(Sort::class, $paginator->getSort());
@@ -698,7 +693,7 @@ public function testGetSort(): void
public function testWithPreviousPageTokenAndIsOnFirstPageSameTrue(): void
{
$sort = Sort::only(['id'])->withOrderString('id');
- $dataReader = (new IterableDataReader($this->getDataSet()))->withSort($sort);
+ $dataReader = (new IterableDataReader(self::getDataSet()))->withSort($sort);
$paginator = (new KeysetPaginator($dataReader))->withPreviousPageToken('1');
$this->assertTrue($paginator->isOnFirstPage());
@@ -707,11 +702,11 @@ public function testWithPreviousPageTokenAndIsOnFirstPageSameTrue(): void
public function testCloneClearValues(): void
{
$sort = Sort::only(['id'])->withOrderString('id');
- $dataReader = (new IterableDataReader($this->getDataSet()))->withSort($sort);
+ $dataReader = (new IterableDataReader(self::getDataSet()))->withSort($sort);
$paginator = new KeysetPaginator($dataReader);
$paginator->read();
- $this->assertSame($this->getDataSet(), $this->getInaccessibleProperty($paginator, 'readCache'));
+ $this->assertSame(self::getDataSet(), $this->getInaccessibleProperty($paginator, 'readCache'));
$this->assertSame('1', $this->getInaccessibleProperty($paginator, 'currentFirstValue'));
$this->assertSame('6', $this->getInaccessibleProperty($paginator, 'currentLastValue'));
@@ -735,7 +730,7 @@ public function testCloneClearValues(): void
public function testImmutability(): void
{
$sort = Sort::only(['id'])->withOrderString('id');
- $dataReader = (new IterableDataReader($this->getDataSet()))->withSort($sort);
+ $dataReader = (new IterableDataReader(self::getDataSet()))->withSort($sort);
$paginator = new KeysetPaginator($dataReader);
$this->assertNotSame($paginator, $paginator->withNextPageToken('1'));
@@ -747,7 +742,7 @@ public function testImmutability(): void
public function testGetPreviousPageExistForCoverage(): void
{
$sort = Sort::only(['id'])->withOrderString('id');
- $dataReader = (new IterableDataReader($this->getDataSet()))->withSort($sort);
+ $dataReader = (new IterableDataReader(self::getDataSet()))->withSort($sort);
$paginator = (new KeysetPaginator($dataReader))->withNextPageToken('1');
@@ -952,9 +947,7 @@ public static function dataPageTypeWithPreviousPageToken(): array
];
}
- /**
- * @dataProvider dataPageTypeWithPreviousPageToken
- */
+ #[DataProvider('dataPageTypeWithPreviousPageToken')]
public function testPageTypeWithPreviousPageToken(
bool $expectedIsOnFirstPage,
bool $expectedIsOnLastPage,
@@ -1017,9 +1010,7 @@ public static function dataPageTypeWithNextPageToken(): array
];
}
- /**
- * @dataProvider dataPageTypeWithNextPageToken
- */
+ #[DataProvider('dataPageTypeWithNextPageToken')]
public function testPageTypeWithNextPageToken(
bool $expectedIsOnFirstPage,
bool $expectedIsOnLastPage,
diff --git a/tests/Paginator/OffsetPaginatorTest.php b/tests/Paginator/OffsetPaginatorTest.php
index 3f69c5ba..b615494f 100644
--- a/tests/Paginator/OffsetPaginatorTest.php
+++ b/tests/Paginator/OffsetPaginatorTest.php
@@ -5,6 +5,7 @@
namespace Yiisoft\Data\Tests\Paginator;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Paginator\OffsetPaginator;
use Yiisoft\Data\Paginator\PaginatorException;
use Yiisoft\Data\Paginator\PaginatorInterface;
@@ -293,7 +294,7 @@ public function testReadLastPage(): void
$this->assertSame($expected, array_values($this->iterableToArray($paginator->read())));
}
- public function dataReadOne(): array
+ public static function dataReadOne(): array
{
$data = [];
@@ -315,9 +316,7 @@ public function dataReadOne(): array
return $data;
}
- /**
- * @dataProvider dataReadOne
- */
+ #[DataProvider('dataReadOne')]
public function testReadOne(mixed $expected, OffsetPaginator $paginator): void
{
$result = $paginator->readOne();
diff --git a/tests/Reader/Filter/AllTest.php b/tests/Reader/Filter/AllTest.php
index 8b371538..beb78d04 100644
--- a/tests/Reader/Filter/AllTest.php
+++ b/tests/Reader/Filter/AllTest.php
@@ -5,6 +5,7 @@
namespace Yiisoft\Data\Tests\Reader\Filter;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Reader\Filter\All;
use Yiisoft\Data\Reader\Filter\GreaterThan;
use Yiisoft\Data\Reader\Filter\LessThan;
@@ -67,9 +68,7 @@ public function testWithCriteriaArrayOverridesConstructor(): void
);
}
- /**
- * @dataProvider invalidFilterDataProvider
- */
+ #[DataProvider('invalidFilterDataProvider')]
public function testWithCriteriaArrayFailForInvalidFilter($filter): void
{
$this->expectException(InvalidArgumentException::class);
@@ -78,9 +77,7 @@ public function testWithCriteriaArrayFailForInvalidFilter($filter): void
(new All())->withCriteriaArray([['=', 'test', 1], $filter]);
}
- /**
- * @dataProvider invalidFilterOperatorDataProvider
- */
+ #[DataProvider('invalidFilterOperatorDataProvider')]
public function testWithCriteriaArrayFailForInvalidFilterOperator(array $filter): void
{
$this->expectException(InvalidArgumentException::class);
diff --git a/tests/Reader/Filter/AnyTest.php b/tests/Reader/Filter/AnyTest.php
index e8c01f32..bd93d6d4 100644
--- a/tests/Reader/Filter/AnyTest.php
+++ b/tests/Reader/Filter/AnyTest.php
@@ -5,6 +5,7 @@
namespace Yiisoft\Data\Tests\Reader\Filter;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Reader\Filter\Any;
use Yiisoft\Data\Reader\Filter\GreaterThan;
use Yiisoft\Data\Reader\Filter\LessThan;
@@ -67,9 +68,7 @@ public function testWithCriteriaArrayOverridesConstructor(): void
);
}
- /**
- * @dataProvider invalidFilterDataProvider
- */
+ #[DataProvider('invalidFilterDataProvider')]
public function testWithCriteriaArrayFailForInvalidFilter(mixed $filter): void
{
$this->expectException(InvalidArgumentException::class);
@@ -81,9 +80,7 @@ public function testWithCriteriaArrayFailForInvalidFilter(mixed $filter): void
]);
}
- /**
- * @dataProvider invalidFilterOperatorDataProvider
- */
+ #[DataProvider('invalidFilterOperatorDataProvider')]
public function testWithCriteriaArrayFailForInvalidFilterOperator(array $filter): void
{
$this->expectException(InvalidArgumentException::class);
diff --git a/tests/Reader/Filter/BetweenTest.php b/tests/Reader/Filter/BetweenTest.php
index c79c9d1f..5fa94aa2 100644
--- a/tests/Reader/Filter/BetweenTest.php
+++ b/tests/Reader/Filter/BetweenTest.php
@@ -6,6 +6,7 @@
use DateTimeInterface;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Reader\Filter\Between;
use Yiisoft\Data\Tests\TestCase;
@@ -13,9 +14,7 @@
final class BetweenTest extends TestCase
{
- /**
- * @dataProvider scalarAndDataTimeInterfaceValueDataProvider
- */
+ #[DataProvider('scalarAndDataTimeInterfaceValueDataProvider')]
public function testToArray($value): void
{
$filter = new Between('test', $value, $value);
@@ -23,9 +22,7 @@ public function testToArray($value): void
$this->assertSame(['between', 'test', $value, $value], $filter->toCriteriaArray());
}
- /**
- * @dataProvider invalidScalarValueDataProvider
- */
+ #[DataProvider('invalidScalarValueDataProvider')]
public function testConstructorFailForInvalidFirstValue($value): void
{
$this->expectException(InvalidArgumentException::class);
@@ -39,9 +36,7 @@ public function testConstructorFailForInvalidFirstValue($value): void
new Between('test', $value, 2);
}
- /**
- * @dataProvider invalidScalarValueDataProvider
- */
+ #[DataProvider('invalidScalarValueDataProvider')]
public function testConstructorFailForInvalidSecondValue($value): void
{
$this->expectException(InvalidArgumentException::class);
diff --git a/tests/Reader/Filter/EqualsTest.php b/tests/Reader/Filter/EqualsTest.php
index e08b4e24..71671ed7 100644
--- a/tests/Reader/Filter/EqualsTest.php
+++ b/tests/Reader/Filter/EqualsTest.php
@@ -6,6 +6,7 @@
use DateTimeInterface;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Reader\Filter\Equals;
use Yiisoft\Data\Tests\TestCase;
@@ -13,9 +14,7 @@
final class EqualsTest extends TestCase
{
- /**
- * @dataProvider scalarAndDataTimeInterfaceValueDataProvider
- */
+ #[DataProvider('scalarAndDataTimeInterfaceValueDataProvider')]
public function testToArray($value): void
{
$filter = new Equals('test', $value);
@@ -23,9 +22,7 @@ public function testToArray($value): void
$this->assertSame(['=', 'test', $value], $filter->toCriteriaArray());
}
- /**
- * @dataProvider invalidScalarValueDataProvider
- */
+ #[DataProvider('invalidScalarValueDataProvider')]
public function testConstructorFailForInvalidValue($value): void
{
$this->expectException(InvalidArgumentException::class);
diff --git a/tests/Reader/Filter/GreaterThanOrEqualTest.php b/tests/Reader/Filter/GreaterThanOrEqualTest.php
index ee6a7170..1b610501 100644
--- a/tests/Reader/Filter/GreaterThanOrEqualTest.php
+++ b/tests/Reader/Filter/GreaterThanOrEqualTest.php
@@ -6,6 +6,7 @@
use DateTimeInterface;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Reader\Filter\GreaterThanOrEqual;
use Yiisoft\Data\Tests\TestCase;
@@ -13,9 +14,7 @@
final class GreaterThanOrEqualTest extends TestCase
{
- /**
- * @dataProvider scalarAndDataTimeInterfaceValueDataProvider
- */
+ #[DataProvider('scalarAndDataTimeInterfaceValueDataProvider')]
public function testToArray($value): void
{
$filter = new GreaterThanOrEqual('test', $value);
@@ -23,9 +22,7 @@ public function testToArray($value): void
$this->assertSame(['>=', 'test', $value], $filter->toCriteriaArray());
}
- /**
- * @dataProvider invalidScalarValueDataProvider
- */
+ #[DataProvider('invalidScalarValueDataProvider')]
public function testConstructorFailForInvalidScalarValue($value): void
{
$this->expectException(InvalidArgumentException::class);
diff --git a/tests/Reader/Filter/GreaterThanTest.php b/tests/Reader/Filter/GreaterThanTest.php
index 7afa9fdd..4fa33707 100644
--- a/tests/Reader/Filter/GreaterThanTest.php
+++ b/tests/Reader/Filter/GreaterThanTest.php
@@ -6,6 +6,7 @@
use DateTimeInterface;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Reader\Filter\GreaterThan;
use Yiisoft\Data\Tests\TestCase;
@@ -13,9 +14,7 @@
final class GreaterThanTest extends TestCase
{
- /**
- * @dataProvider scalarAndDataTimeInterfaceValueDataProvider
- */
+ #[DataProvider('scalarAndDataTimeInterfaceValueDataProvider')]
public function testToArray($value): void
{
$filter = new GreaterThan('test', $value);
@@ -23,9 +22,7 @@ public function testToArray($value): void
$this->assertSame(['>', 'test', $value], $filter->toCriteriaArray());
}
- /**
- * @dataProvider invalidScalarValueDataProvider
- */
+ #[DataProvider('invalidScalarValueDataProvider')]
public function testConstructorFailForInvalidScalarValue($value): void
{
$this->expectException(InvalidArgumentException::class);
diff --git a/tests/Reader/Filter/InTest.php b/tests/Reader/Filter/InTest.php
index 14a996bc..4fdf94ce 100644
--- a/tests/Reader/Filter/InTest.php
+++ b/tests/Reader/Filter/InTest.php
@@ -5,6 +5,7 @@
namespace Yiisoft\Data\Tests\Reader\Filter;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Reader\Filter\In;
use Yiisoft\Data\Tests\TestCase;
@@ -17,9 +18,7 @@ public function testToArray(): void
$this->assertSame(['in', 'test', [1, 2]], $filter->toCriteriaArray());
}
- /**
- * @dataProvider invalidScalarValueDataProvider
- */
+ #[DataProvider('invalidScalarValueDataProvider')]
public function testConstructorFailForInvalidScalarValue($value): void
{
$type = get_debug_type($value);
diff --git a/tests/Reader/Filter/LessThanOrEqualTest.php b/tests/Reader/Filter/LessThanOrEqualTest.php
index 76a22e7c..0af2986c 100644
--- a/tests/Reader/Filter/LessThanOrEqualTest.php
+++ b/tests/Reader/Filter/LessThanOrEqualTest.php
@@ -6,6 +6,7 @@
use DateTimeInterface;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Reader\Filter\LessThanOrEqual;
use Yiisoft\Data\Tests\TestCase;
@@ -13,9 +14,7 @@
final class LessThanOrEqualTest extends TestCase
{
- /**
- * @dataProvider scalarAndDataTimeInterfaceValueDataProvider
- */
+ #[DataProvider('scalarAndDataTimeInterfaceValueDataProvider')]
public function testToArray($value): void
{
$filter = new LessThanOrEqual('test', $value);
@@ -23,9 +22,7 @@ public function testToArray($value): void
$this->assertSame(['<=', 'test', $value], $filter->toCriteriaArray());
}
- /**
- * @dataProvider invalidScalarValueDataProvider
- */
+ #[DataProvider('invalidScalarValueDataProvider')]
public function testConstructorFailForInvalidScalarValue($value): void
{
$this->expectException(InvalidArgumentException::class);
diff --git a/tests/Reader/Filter/LessThanTest.php b/tests/Reader/Filter/LessThanTest.php
index f8405bb0..2d40735b 100644
--- a/tests/Reader/Filter/LessThanTest.php
+++ b/tests/Reader/Filter/LessThanTest.php
@@ -6,6 +6,7 @@
use DateTimeInterface;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Reader\Filter\LessThan;
use Yiisoft\Data\Tests\TestCase;
@@ -13,9 +14,7 @@
final class LessThanTest extends TestCase
{
- /**
- * @dataProvider scalarAndDataTimeInterfaceValueDataProvider
- */
+ #[DataProvider('scalarAndDataTimeInterfaceValueDataProvider')]
public function testToArray($value): void
{
$filter = new LessThan('test', $value);
@@ -23,9 +22,7 @@ public function testToArray($value): void
$this->assertSame(['<', 'test', $value], $filter->toCriteriaArray());
}
- /**
- * @dataProvider invalidScalarValueDataProvider
- */
+ #[DataProvider('invalidScalarValueDataProvider')]
public function testConstructorFailForInvalidScalarValue($value): void
{
$this->expectException(InvalidArgumentException::class);
diff --git a/tests/Reader/IterableDataReaderTest.php b/tests/Reader/IterableDataReaderTest.php
index 68e46d3b..a5355830 100644
--- a/tests/Reader/IterableDataReaderTest.php
+++ b/tests/Reader/IterableDataReaderTest.php
@@ -8,6 +8,7 @@
use DateTimeInterface;
use Generator;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use RuntimeException;
use Yiisoft\Data\Reader\DataReaderException;
use Yiisoft\Data\Reader\Filter\All;
@@ -440,9 +441,7 @@ public function match(array|object $item, array $arguments, array $iterableFilte
$this->assertSame($expected, array_values($this->iterableToArray($dataReader->read())));
}
- /**
- * @dataProvider invalidStringValueDataProvider
- */
+ #[DataProvider('invalidStringValueDataProvider')]
public function testMatchFilterFailIfOperatorIsNotString($operator): void
{
$reader = (new IterableDataReader(self::DEFAULT_DATASET))
diff --git a/tests/Reader/IterableHandler/AllTest.php b/tests/Reader/IterableHandler/AllTest.php
index c888f106..3cd9618b 100644
--- a/tests/Reader/IterableHandler/AllTest.php
+++ b/tests/Reader/IterableHandler/AllTest.php
@@ -5,6 +5,7 @@
namespace Yiisoft\Data\Tests\Reader\IterableHandler;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use stdClass;
use Yiisoft\Data\Reader\Iterable\FilterHandler\AllHandler;
use Yiisoft\Data\Reader\Iterable\FilterHandler\EqualsHandler;
@@ -15,7 +16,7 @@
final class AllTest extends TestCase
{
- public function matchDataProvider(): array
+ public static function matchDataProvider(): array
{
return [
[
@@ -51,9 +52,7 @@ public function matchDataProvider(): array
];
}
- /**
- * @dataProvider matchDataProvider
- */
+ #[DataProvider('matchDataProvider')]
public function testMatch(bool $expected, array $arguments, array $filterHandlers): void
{
$processor = new AllHandler();
@@ -66,7 +65,7 @@ public function testMatch(bool $expected, array $arguments, array $filterHandler
$this->assertSame($expected, $processor->match($item, $arguments, $filterHandlers));
}
- public function invalidCountArgumentsDataProvider(): array
+ public static function invalidCountArgumentsDataProvider(): array
{
return [
'zero' => [[]],
@@ -76,9 +75,7 @@ public function invalidCountArgumentsDataProvider(): array
];
}
- /**
- * @dataProvider invalidCountArgumentsDataProvider
- */
+ #[DataProvider('invalidCountArgumentsDataProvider')]
public function testMatchFailForInvalidCountArguments($arguments): void
{
$this->expectException(InvalidArgumentException::class);
@@ -87,9 +84,7 @@ public function testMatchFailForInvalidCountArguments($arguments): void
(new AllHandler())->match(['id' => 1], $arguments, []);
}
- /**
- * @dataProvider invalidArrayValueDataProvider
- */
+ #[DataProvider('invalidArrayValueDataProvider')]
public function testMatchFailIfSubFiltersIsNotArray($subFilters): void
{
$type = get_debug_type($subFilters);
@@ -100,9 +95,7 @@ public function testMatchFailIfSubFiltersIsNotArray($subFilters): void
(new AllHandler())->match(['id' => 1], [$subFilters], []);
}
- /**
- * @dataProvider invalidArrayValueDataProvider
- */
+ #[DataProvider('invalidArrayValueDataProvider')]
public function testMatchFailIfSubFilterIsNotArray($subFilters): void
{
$type = get_debug_type($subFilters);
@@ -121,16 +114,14 @@ public function testMatchFailIfArgumentValueIsEmptyArray(): void
(new AllHandler())->match(['id' => 1], [[[]]], []);
}
- public function invalidFilterOperatorDataProvider(): array
+ public static function invalidFilterOperatorDataProvider(): array
{
$data = parent::invalidFilterOperatorDataProvider();
unset($data['array'], $data['empty-string']);
return $data;
}
- /**
- * @dataProvider invalidFilterOperatorDataProvider
- */
+ #[DataProvider('invalidFilterOperatorDataProvider')]
public function testMatchFailForInvalidFilterOperator(array $filter): void
{
$type = get_debug_type($filter[0]);
diff --git a/tests/Reader/IterableHandler/AnyTest.php b/tests/Reader/IterableHandler/AnyTest.php
index f3441055..0e74e41e 100644
--- a/tests/Reader/IterableHandler/AnyTest.php
+++ b/tests/Reader/IterableHandler/AnyTest.php
@@ -5,6 +5,7 @@
namespace Yiisoft\Data\Tests\Reader\IterableHandler;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use stdClass;
use Yiisoft\Data\Reader\Iterable\FilterHandler\AnyHandler;
use Yiisoft\Data\Reader\Iterable\FilterHandler\EqualsHandler;
@@ -15,7 +16,7 @@
final class AnyTest extends TestCase
{
- public function matchDataProvider(): array
+ public static function matchDataProvider(): array
{
return [
[
@@ -56,9 +57,7 @@ public function matchDataProvider(): array
];
}
- /**
- * @dataProvider matchDataProvider
- */
+ #[DataProvider('matchDataProvider')]
public function testMatch(bool $expected, array $arguments, array $filterHandlers): void
{
$handler = new AnyHandler();
@@ -71,7 +70,7 @@ public function testMatch(bool $expected, array $arguments, array $filterHandler
$this->assertSame($expected, $handler->match($item, $arguments, $filterHandlers));
}
- public function invalidCountArgumentsDataProvider(): array
+ public static function invalidCountArgumentsDataProvider(): array
{
return [
'zero' => [[]],
@@ -81,9 +80,7 @@ public function invalidCountArgumentsDataProvider(): array
];
}
- /**
- * @dataProvider invalidCountArgumentsDataProvider
- */
+ #[DataProvider('invalidCountArgumentsDataProvider')]
public function testMatchFailForInvalidCountArguments($arguments): void
{
$this->expectException(InvalidArgumentException::class);
@@ -92,9 +89,7 @@ public function testMatchFailForInvalidCountArguments($arguments): void
(new AnyHandler())->match(['id' => 1], $arguments, []);
}
- /**
- * @dataProvider invalidArrayValueDataProvider
- */
+ #[DataProvider('invalidArrayValueDataProvider')]
public function testMatchFailIfSubFiltersIsNotArray($subFilters): void
{
$type = get_debug_type($subFilters);
@@ -105,9 +100,7 @@ public function testMatchFailIfSubFiltersIsNotArray($subFilters): void
(new AnyHandler())->match(['id' => 1], [$subFilters], []);
}
- /**
- * @dataProvider invalidArrayValueDataProvider
- */
+ #[DataProvider('invalidArrayValueDataProvider')]
public function testMatchFailIfSubFilterIsNotArray($subFilters): void
{
$type = get_debug_type($subFilters);
@@ -126,16 +119,14 @@ public function testMatchFailIfArgumentValueIsEmptyArray(): void
(new AnyHandler())->match(['id' => 1], [[[]]], []);
}
- public function invalidFilterOperatorDataProvider(): array
+ public static function invalidFilterOperatorDataProvider(): array
{
$data = parent::invalidFilterOperatorDataProvider();
unset($data['array'], $data['empty-string']);
return $data;
}
- /**
- * @dataProvider invalidFilterOperatorDataProvider
- */
+ #[DataProvider('invalidFilterOperatorDataProvider')]
public function testMatchFailForInvalidFilterOperator(array $filter): void
{
$type = get_debug_type($filter[0]);
diff --git a/tests/Reader/IterableHandler/BetweenTest.php b/tests/Reader/IterableHandler/BetweenTest.php
index ab834645..88cfc64e 100644
--- a/tests/Reader/IterableHandler/BetweenTest.php
+++ b/tests/Reader/IterableHandler/BetweenTest.php
@@ -6,6 +6,7 @@
use DateTimeImmutable;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Reader\Filter\Between;
use Yiisoft\Data\Reader\Iterable\FilterHandler\BetweenHandler;
use Yiisoft\Data\Reader\Iterable\IterableDataReader;
@@ -14,7 +15,7 @@
final class BetweenTest extends TestCase
{
- public function matchScalarDataProvider(): array
+ public static function matchScalarDataProvider(): array
{
return [
[true, ['value', 42, 47]],
@@ -25,9 +26,7 @@ public function matchScalarDataProvider(): array
];
}
- /**
- * @dataProvider matchScalarDataProvider
- */
+ #[DataProvider('matchScalarDataProvider')]
public function testMatchScalar(bool $expected, array $arguments): void
{
$processor = new BetweenHandler();
@@ -40,7 +39,7 @@ public function testMatchScalar(bool $expected, array $arguments): void
$this->assertSame($expected, $processor->match($item, $arguments, []));
}
- public function matchDateTimeInterfaceDataProvider(): array
+ public static function matchDateTimeInterfaceDataProvider(): array
{
return [
[true, ['value', new DateTimeImmutable('2022-02-22 16:00:42'), new DateTimeImmutable('2022-02-22 16:00:47')]],
@@ -51,9 +50,7 @@ public function matchDateTimeInterfaceDataProvider(): array
];
}
- /**
- * @dataProvider matchDateTimeInterfaceDataProvider
- */
+ #[DataProvider('matchDateTimeInterfaceDataProvider')]
public function testMatchDateTimeInterface(bool $expected, array $arguments): void
{
$processor = new BetweenHandler();
@@ -66,7 +63,7 @@ public function testMatchDateTimeInterface(bool $expected, array $arguments): vo
$this->assertSame($expected, $processor->match($item, $arguments, []));
}
- public function invalidCountArgumentsDataProvider(): array
+ public static function invalidCountArgumentsDataProvider(): array
{
return [
'zero' => [[]],
@@ -76,9 +73,7 @@ public function invalidCountArgumentsDataProvider(): array
];
}
- /**
- * @dataProvider invalidCountArgumentsDataProvider
- */
+ #[DataProvider('invalidCountArgumentsDataProvider')]
public function testMatchFailForInvalidCountArguments($arguments): void
{
$this->expectException(InvalidArgumentException::class);
@@ -87,9 +82,7 @@ public function testMatchFailForInvalidCountArguments($arguments): void
(new BetweenHandler())->match(['id' => 1], $arguments, []);
}
- /**
- * @dataProvider invalidStringValueDataProvider
- */
+ #[DataProvider('invalidStringValueDataProvider')]
public function testMatchFailForInvalidFieldValue($field): void
{
$type = get_debug_type($field);
diff --git a/tests/Reader/IterableHandler/EqualsEmptyTest.php b/tests/Reader/IterableHandler/EqualsEmptyTest.php
index 0e7812a7..37b32358 100644
--- a/tests/Reader/IterableHandler/EqualsEmptyTest.php
+++ b/tests/Reader/IterableHandler/EqualsEmptyTest.php
@@ -5,12 +5,13 @@
namespace Yiisoft\Data\Tests\Reader\IterableHandler;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Reader\Iterable\FilterHandler\EqualsEmptyHandler;
use Yiisoft\Data\Tests\TestCase;
final class EqualsEmptyTest extends TestCase
{
- public function matchDataProvider(): array
+ public static function matchDataProvider(): array
{
return [
[true, ['value' => null]],
@@ -25,15 +26,13 @@ public function matchDataProvider(): array
];
}
- /**
- * @dataProvider matchDataProvider
- */
+ #[DataProvider('matchDataProvider')]
public function testMatch(bool $expected, array $item): void
{
$this->assertSame($expected, (new EqualsEmptyHandler())->match($item, ['value'], []));
}
- public function invalidCountArgumentsDataProvider(): array
+ public static function invalidCountArgumentsDataProvider(): array
{
return [
'zero' => [[]],
@@ -43,9 +42,7 @@ public function invalidCountArgumentsDataProvider(): array
];
}
- /**
- * @dataProvider invalidCountArgumentsDataProvider
- */
+ #[DataProvider('invalidCountArgumentsDataProvider')]
public function testMatchFailForInvalidCountArguments($arguments): void
{
$this->expectException(InvalidArgumentException::class);
@@ -54,9 +51,7 @@ public function testMatchFailForInvalidCountArguments($arguments): void
(new EqualsEmptyHandler())->match(['id' => 1], $arguments, []);
}
- /**
- * @dataProvider invalidStringValueDataProvider
- */
+ #[DataProvider('invalidStringValueDataProvider')]
public function testMatchFailForInvalidFieldValue($field): void
{
$type = get_debug_type($field);
diff --git a/tests/Reader/IterableHandler/EqualsNullTest.php b/tests/Reader/IterableHandler/EqualsNullTest.php
index e560255e..2549cdba 100644
--- a/tests/Reader/IterableHandler/EqualsNullTest.php
+++ b/tests/Reader/IterableHandler/EqualsNullTest.php
@@ -5,6 +5,7 @@
namespace Yiisoft\Data\Tests\Reader\IterableHandler;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Reader\Filter\EqualsNull;
use Yiisoft\Data\Reader\Iterable\FilterHandler\EqualsNullHandler;
use Yiisoft\Data\Reader\Iterable\IterableDataReader;
@@ -13,7 +14,7 @@
final class EqualsNullTest extends TestCase
{
- public function matchDataProvider(): array
+ public static function matchDataProvider(): array
{
return [
[true, ['value' => null]],
@@ -27,15 +28,13 @@ public function matchDataProvider(): array
];
}
- /**
- * @dataProvider matchDataProvider
- */
+ #[DataProvider('matchDataProvider')]
public function testMatch(bool $expected, array $item): void
{
$this->assertSame($expected, (new EqualsNullHandler())->match($item, ['value'], []));
}
- public function invalidCountArgumentsDataProvider(): array
+ public static function invalidCountArgumentsDataProvider(): array
{
return [
'zero' => [[]],
@@ -45,9 +44,7 @@ public function invalidCountArgumentsDataProvider(): array
];
}
- /**
- * @dataProvider invalidCountArgumentsDataProvider
- */
+ #[DataProvider('invalidCountArgumentsDataProvider')]
public function testMatchFailForInvalidCountArguments($arguments): void
{
$this->expectException(InvalidArgumentException::class);
@@ -56,9 +53,7 @@ public function testMatchFailForInvalidCountArguments($arguments): void
(new EqualsNullHandler())->match(['id' => 1], $arguments, []);
}
- /**
- * @dataProvider invalidStringValueDataProvider
- */
+ #[DataProvider('invalidStringValueDataProvider')]
public function testMatchFailForInvalidFieldValue($field): void
{
$type = get_debug_type($field);
diff --git a/tests/Reader/IterableHandler/EqualsTest.php b/tests/Reader/IterableHandler/EqualsTest.php
index 1432025c..9257edbd 100644
--- a/tests/Reader/IterableHandler/EqualsTest.php
+++ b/tests/Reader/IterableHandler/EqualsTest.php
@@ -6,6 +6,7 @@
use DateTimeImmutable;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Reader\Filter\Equals;
use Yiisoft\Data\Reader\Iterable\FilterHandler\EqualsHandler;
use Yiisoft\Data\Reader\Iterable\IterableDataReader;
@@ -14,7 +15,7 @@
final class EqualsTest extends TestCase
{
- public function matchScalarDataProvider(): array
+ public static function matchScalarDataProvider(): array
{
return [
[true, ['value', 45]],
@@ -24,9 +25,7 @@ public function matchScalarDataProvider(): array
];
}
- /**
- * @dataProvider matchScalarDataProvider
- */
+ #[DataProvider('matchScalarDataProvider')]
public function testMatchScalar(bool $expected, array $arguments): void
{
$processor = new EqualsHandler();
@@ -39,7 +38,7 @@ public function testMatchScalar(bool $expected, array $arguments): void
$this->assertSame($expected, $processor->match($item, $arguments, []));
}
- public function matchDateTimeInterfaceDataProvider(): array
+ public static function matchDateTimeInterfaceDataProvider(): array
{
return [
[true, ['value', new DateTimeImmutable('2022-02-22 16:00:45')]],
@@ -48,9 +47,7 @@ public function matchDateTimeInterfaceDataProvider(): array
];
}
- /**
- * @dataProvider matchDateTimeInterfaceDataProvider
- */
+ #[DataProvider('matchDateTimeInterfaceDataProvider')]
public function testMatchDateTimeInterface(bool $expected, array $arguments): void
{
$processor = new EqualsHandler();
@@ -63,7 +60,7 @@ public function testMatchDateTimeInterface(bool $expected, array $arguments): vo
$this->assertSame($expected, $processor->match($item, $arguments, []));
}
- public function invalidCountArgumentsDataProvider(): array
+ public static function invalidCountArgumentsDataProvider(): array
{
return [
'zero' => [[]],
@@ -73,9 +70,7 @@ public function invalidCountArgumentsDataProvider(): array
];
}
- /**
- * @dataProvider invalidCountArgumentsDataProvider
- */
+ #[DataProvider('invalidCountArgumentsDataProvider')]
public function testMatchFailForInvalidCountArguments($arguments): void
{
$this->expectException(InvalidArgumentException::class);
@@ -84,9 +79,7 @@ public function testMatchFailForInvalidCountArguments($arguments): void
(new EqualsHandler())->match(['id' => 1], $arguments, []);
}
- /**
- * @dataProvider invalidStringValueDataProvider
- */
+ #[DataProvider('invalidStringValueDataProvider')]
public function testMatchFailForInvalidFieldValue($field): void
{
$type = get_debug_type($field);
diff --git a/tests/Reader/IterableHandler/GreaterThanOrEqualTest.php b/tests/Reader/IterableHandler/GreaterThanOrEqualTest.php
index 053c628c..07492fd0 100644
--- a/tests/Reader/IterableHandler/GreaterThanOrEqualTest.php
+++ b/tests/Reader/IterableHandler/GreaterThanOrEqualTest.php
@@ -6,12 +6,13 @@
use DateTimeImmutable;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Reader\Iterable\FilterHandler\GreaterThanOrEqualHandler;
use Yiisoft\Data\Tests\TestCase;
final class GreaterThanOrEqualTest extends TestCase
{
- public function matchScalarDataProvider(): array
+ public static function matchScalarDataProvider(): array
{
return [
[true, ['value', 44]],
@@ -21,9 +22,7 @@ public function matchScalarDataProvider(): array
];
}
- /**
- * @dataProvider matchScalarDataProvider
- */
+ #[DataProvider('matchScalarDataProvider')]
public function testMatchScalar(bool $expected, array $arguments): void
{
$processor = new GreaterThanOrEqualHandler();
@@ -36,7 +35,7 @@ public function testMatchScalar(bool $expected, array $arguments): void
$this->assertSame($expected, $processor->match($item, $arguments, []));
}
- public function matchDateTimeInterfaceDataProvider(): array
+ public static function matchDateTimeInterfaceDataProvider(): array
{
return [
[true, ['value', new DateTimeImmutable('2022-02-22 16:00:44')]],
@@ -45,9 +44,7 @@ public function matchDateTimeInterfaceDataProvider(): array
];
}
- /**
- * @dataProvider matchDateTimeInterfaceDataProvider
- */
+ #[DataProvider('matchDateTimeInterfaceDataProvider')]
public function testMatchDateTimeInterface(bool $expected, array $arguments): void
{
$processor = new GreaterThanOrEqualHandler();
@@ -60,7 +57,7 @@ public function testMatchDateTimeInterface(bool $expected, array $arguments): vo
$this->assertSame($expected, $processor->match($item, $arguments, []));
}
- public function invalidCountArgumentsDataProvider(): array
+ public static function invalidCountArgumentsDataProvider(): array
{
return [
'zero' => [[]],
@@ -70,9 +67,7 @@ public function invalidCountArgumentsDataProvider(): array
];
}
- /**
- * @dataProvider invalidCountArgumentsDataProvider
- */
+ #[DataProvider('invalidCountArgumentsDataProvider')]
public function testMatchFailForInvalidCountArguments($arguments): void
{
$this->expectException(InvalidArgumentException::class);
@@ -81,9 +76,7 @@ public function testMatchFailForInvalidCountArguments($arguments): void
(new GreaterThanOrEqualHandler())->match(['id' => 1], $arguments, []);
}
- /**
- * @dataProvider invalidStringValueDataProvider
- */
+ #[DataProvider('invalidStringValueDataProvider')]
public function testMatchFailForInvalidFieldValue($field): void
{
$type = get_debug_type($field);
diff --git a/tests/Reader/IterableHandler/GreaterThanTest.php b/tests/Reader/IterableHandler/GreaterThanTest.php
index dabbab25..f64cf38d 100644
--- a/tests/Reader/IterableHandler/GreaterThanTest.php
+++ b/tests/Reader/IterableHandler/GreaterThanTest.php
@@ -6,12 +6,13 @@
use DateTimeImmutable;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Reader\Iterable\FilterHandler\GreaterThanHandler;
use Yiisoft\Data\Tests\TestCase;
final class GreaterThanTest extends TestCase
{
- public function matchScalarDataProvider(): array
+ public static function matchScalarDataProvider(): array
{
return [
[true, ['value', 44]],
@@ -21,9 +22,7 @@ public function matchScalarDataProvider(): array
];
}
- /**
- * @dataProvider matchScalarDataProvider
- */
+ #[DataProvider('matchScalarDataProvider')]
public function testMatchScalar(bool $expected, array $arguments): void
{
$processor = new GreaterThanHandler();
@@ -36,7 +35,7 @@ public function testMatchScalar(bool $expected, array $arguments): void
$this->assertSame($expected, $processor->match($item, $arguments, []));
}
- public function matchDateTimeInterfaceDataProvider(): array
+ public static function matchDateTimeInterfaceDataProvider(): array
{
return [
[true, ['value', new DateTimeImmutable('2022-02-22 16:00:44')]],
@@ -45,9 +44,7 @@ public function matchDateTimeInterfaceDataProvider(): array
];
}
- /**
- * @dataProvider matchDateTimeInterfaceDataProvider
- */
+ #[DataProvider('matchDateTimeInterfaceDataProvider')]
public function testMatchDateTimeInterface(bool $expected, array $arguments): void
{
$processor = new GreaterThanHandler();
@@ -60,7 +57,7 @@ public function testMatchDateTimeInterface(bool $expected, array $arguments): vo
$this->assertSame($expected, $processor->match($item, $arguments, []));
}
- public function invalidCountArgumentsDataProvider(): array
+ public static function invalidCountArgumentsDataProvider(): array
{
return [
'zero' => [[]],
@@ -70,9 +67,7 @@ public function invalidCountArgumentsDataProvider(): array
];
}
- /**
- * @dataProvider invalidCountArgumentsDataProvider
- */
+ #[DataProvider('invalidCountArgumentsDataProvider')]
public function testMatchFailForInvalidCountArguments($arguments): void
{
$this->expectException(InvalidArgumentException::class);
@@ -81,9 +76,7 @@ public function testMatchFailForInvalidCountArguments($arguments): void
(new GreaterThanHandler())->match(['id' => 1], $arguments, []);
}
- /**
- * @dataProvider invalidStringValueDataProvider
- */
+ #[DataProvider('invalidStringValueDataProvider')]
public function testMatchFailForInvalidFieldValue($field): void
{
$type = get_debug_type($field);
diff --git a/tests/Reader/IterableHandler/InTest.php b/tests/Reader/IterableHandler/InTest.php
index 6f6ca553..0ea1053a 100644
--- a/tests/Reader/IterableHandler/InTest.php
+++ b/tests/Reader/IterableHandler/InTest.php
@@ -5,12 +5,13 @@
namespace Yiisoft\Data\Tests\Reader\IterableHandler;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Reader\Iterable\FilterHandler\InHandler;
use Yiisoft\Data\Tests\TestCase;
final class InTest extends TestCase
{
- public function matchDataProvider(): array
+ public static function matchDataProvider(): array
{
return [
[true, ['value', [44, 45, 46]]],
@@ -19,9 +20,7 @@ public function matchDataProvider(): array
];
}
- /**
- * @dataProvider matchDataProvider
- */
+ #[DataProvider('matchDataProvider')]
public function testMatch(bool $expected, array $arguments): void
{
$processor = new InHandler();
@@ -34,7 +33,7 @@ public function testMatch(bool $expected, array $arguments): void
$this->assertSame($expected, $processor->match($item, $arguments, []));
}
- public function invalidCountArgumentsDataProvider(): array
+ public static function invalidCountArgumentsDataProvider(): array
{
return [
'zero' => [[]],
@@ -44,9 +43,7 @@ public function invalidCountArgumentsDataProvider(): array
];
}
- /**
- * @dataProvider invalidCountArgumentsDataProvider
- */
+ #[DataProvider('invalidCountArgumentsDataProvider')]
public function testMatchFailForInvalidCountArguments($arguments): void
{
$this->expectException(InvalidArgumentException::class);
@@ -55,9 +52,7 @@ public function testMatchFailForInvalidCountArguments($arguments): void
(new InHandler())->match(['id' => 1], $arguments, []);
}
- /**
- * @dataProvider invalidStringValueDataProvider
- */
+ #[DataProvider('invalidStringValueDataProvider')]
public function testMatchFailForInvalidFieldValue($field): void
{
$type = get_debug_type($field);
diff --git a/tests/Reader/IterableHandler/LessThanOrEqualTest.php b/tests/Reader/IterableHandler/LessThanOrEqualTest.php
index 7a669b0a..fe3e08eb 100644
--- a/tests/Reader/IterableHandler/LessThanOrEqualTest.php
+++ b/tests/Reader/IterableHandler/LessThanOrEqualTest.php
@@ -6,12 +6,13 @@
use DateTimeImmutable;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Reader\Iterable\FilterHandler\LessThanOrEqualHandler;
use Yiisoft\Data\Tests\TestCase;
final class LessThanOrEqualTest extends TestCase
{
- public function matchScalarDataProvider(): array
+ public static function matchScalarDataProvider(): array
{
return [
[true, ['value', 46]],
@@ -21,9 +22,7 @@ public function matchScalarDataProvider(): array
];
}
- /**
- * @dataProvider matchScalarDataProvider
- */
+ #[DataProvider('matchScalarDataProvider')]
public function testMatchScalar(bool $expected, array $arguments): void
{
$processor = new LessThanOrEqualHandler();
@@ -36,7 +35,7 @@ public function testMatchScalar(bool $expected, array $arguments): void
$this->assertSame($expected, $processor->match($item, $arguments, []));
}
- public function matchDateTimeInterfaceDataProvider(): array
+ public static function matchDateTimeInterfaceDataProvider(): array
{
return [
[true, ['value', new DateTimeImmutable('2022-02-22 16:00:46')]],
@@ -45,9 +44,7 @@ public function matchDateTimeInterfaceDataProvider(): array
];
}
- /**
- * @dataProvider matchDateTimeInterfaceDataProvider
- */
+ #[DataProvider('matchDateTimeInterfaceDataProvider')]
public function testMatchDateTimeInterface(bool $expected, array $arguments): void
{
$processor = new LessThanOrEqualHandler();
@@ -60,7 +57,7 @@ public function testMatchDateTimeInterface(bool $expected, array $arguments): vo
$this->assertSame($expected, $processor->match($item, $arguments, []));
}
- public function invalidCountArgumentsDataProvider(): array
+ public static function invalidCountArgumentsDataProvider(): array
{
return [
'zero' => [[]],
@@ -70,9 +67,7 @@ public function invalidCountArgumentsDataProvider(): array
];
}
- /**
- * @dataProvider invalidCountArgumentsDataProvider
- */
+ #[DataProvider('invalidCountArgumentsDataProvider')]
public function testMatchFailForInvalidCountArguments($arguments): void
{
$this->expectException(InvalidArgumentException::class);
@@ -81,9 +76,7 @@ public function testMatchFailForInvalidCountArguments($arguments): void
(new LessThanOrEqualHandler())->match(['id' => 1], $arguments, []);
}
- /**
- * @dataProvider invalidStringValueDataProvider
- */
+ #[DataProvider('invalidStringValueDataProvider')]
public function testMatchFailForInvalidFieldValue($field): void
{
$type = get_debug_type($field);
diff --git a/tests/Reader/IterableHandler/LessThanTest.php b/tests/Reader/IterableHandler/LessThanTest.php
index 91919a3a..0a3f1d17 100644
--- a/tests/Reader/IterableHandler/LessThanTest.php
+++ b/tests/Reader/IterableHandler/LessThanTest.php
@@ -6,12 +6,13 @@
use DateTimeImmutable;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Reader\Iterable\FilterHandler\LessThanHandler;
use Yiisoft\Data\Tests\TestCase;
final class LessThanTest extends TestCase
{
- public function matchScalarDataProvider(): array
+ public static function matchScalarDataProvider(): array
{
return [
[true, ['value', 46]],
@@ -21,9 +22,7 @@ public function matchScalarDataProvider(): array
];
}
- /**
- * @dataProvider matchScalarDataProvider
- */
+ #[DataProvider('matchScalarDataProvider')]
public function testMatchScalar(bool $expected, array $arguments): void
{
$processor = new LessThanHandler();
@@ -36,7 +35,7 @@ public function testMatchScalar(bool $expected, array $arguments): void
$this->assertSame($expected, $processor->match($item, $arguments, []));
}
- public function matchDateTimeInterfaceDataProvider(): array
+ public static function matchDateTimeInterfaceDataProvider(): array
{
return [
[true, ['value', new DateTimeImmutable('2022-02-22 16:00:46')]],
@@ -45,9 +44,7 @@ public function matchDateTimeInterfaceDataProvider(): array
];
}
- /**
- * @dataProvider matchDateTimeInterfaceDataProvider
- */
+ #[DataProvider('matchDateTimeInterfaceDataProvider')]
public function testMatchDateTimeInterface(bool $expected, array $arguments): void
{
$processor = new LessThanHandler();
@@ -60,7 +57,7 @@ public function testMatchDateTimeInterface(bool $expected, array $arguments): vo
$this->assertSame($expected, $processor->match($item, $arguments, []));
}
- public function invalidCountArgumentsDataProvider(): array
+ public static function invalidCountArgumentsDataProvider(): array
{
return [
'zero' => [[]],
@@ -70,9 +67,7 @@ public function invalidCountArgumentsDataProvider(): array
];
}
- /**
- * @dataProvider invalidCountArgumentsDataProvider
- */
+ #[DataProvider('invalidCountArgumentsDataProvider')]
public function testMatchFailForInvalidCountArguments($arguments): void
{
$this->expectException(InvalidArgumentException::class);
@@ -81,9 +76,7 @@ public function testMatchFailForInvalidCountArguments($arguments): void
(new LessThanHandler())->match(['id' => 1], $arguments, []);
}
- /**
- * @dataProvider invalidStringValueDataProvider
- */
+ #[DataProvider('invalidStringValueDataProvider')]
public function testMatchFailForInvalidFieldValue($field): void
{
$type = get_debug_type($field);
diff --git a/tests/Reader/IterableHandler/LikeTest.php b/tests/Reader/IterableHandler/LikeTest.php
index 0d5a244c..953c59d9 100644
--- a/tests/Reader/IterableHandler/LikeTest.php
+++ b/tests/Reader/IterableHandler/LikeTest.php
@@ -5,12 +5,13 @@
namespace Yiisoft\Data\Tests\Reader\IterableHandler;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use Yiisoft\Data\Reader\Iterable\FilterHandler\LikeHandler;
use Yiisoft\Data\Tests\TestCase;
final class LikeTest extends TestCase
{
- public function matchDataProvider(): array
+ public static function matchDataProvider(): array
{
return [
[true, ['value', 'Great Cat Fighter']],
@@ -20,9 +21,7 @@ public function matchDataProvider(): array
];
}
- /**
- * @dataProvider matchDataProvider
- */
+ #[DataProvider('matchDataProvider')]
public function testMatch(bool $expected, array $arguments): void
{
$processor = new LikeHandler();
@@ -35,7 +34,7 @@ public function testMatch(bool $expected, array $arguments): void
$this->assertSame($expected, $processor->match($item, $arguments, []));
}
- public function invalidCountArgumentsDataProvider(): array
+ public static function invalidCountArgumentsDataProvider(): array
{
return [
'zero' => [[]],
@@ -45,9 +44,7 @@ public function invalidCountArgumentsDataProvider(): array
];
}
- /**
- * @dataProvider invalidCountArgumentsDataProvider
- */
+ #[DataProvider('invalidCountArgumentsDataProvider')]
public function testMatchFailForInvalidCountArguments($arguments): void
{
$this->expectException(InvalidArgumentException::class);
@@ -56,9 +53,7 @@ public function testMatchFailForInvalidCountArguments($arguments): void
(new LikeHandler())->match(['id' => 1], $arguments, []);
}
- /**
- * @dataProvider invalidStringValueDataProvider
- */
+ #[DataProvider('invalidStringValueDataProvider')]
public function testMatchFailForInvalidFieldValue($field): void
{
$type = get_debug_type($field);
diff --git a/tests/Reader/IterableHandler/NotTest.php b/tests/Reader/IterableHandler/NotTest.php
index 56ca8624..b649f506 100644
--- a/tests/Reader/IterableHandler/NotTest.php
+++ b/tests/Reader/IterableHandler/NotTest.php
@@ -5,6 +5,7 @@
namespace Yiisoft\Data\Tests\Reader\IterableHandler;
use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\DataProvider;
use stdClass;
use Yiisoft\Data\Reader\Iterable\FilterHandler\EqualsHandler;
use Yiisoft\Data\Reader\Iterable\FilterHandler\NotHandler;
@@ -13,7 +14,7 @@
final class NotTest extends TestCase
{
- public function matchDataProvider(): array
+ public static function matchDataProvider(): array
{
return [
[true, [['=', 'value', 44]], ['=' => new EqualsHandler()]],
@@ -23,9 +24,7 @@ public function matchDataProvider(): array
];
}
- /**
- * @dataProvider matchDataProvider
- */
+ #[DataProvider('matchDataProvider')]
public function testMatch(bool $expected, array $arguments, array $filterHandlers): void
{
$processor = new NotHandler();
@@ -38,7 +37,7 @@ public function testMatch(bool $expected, array $arguments, array $filterHandler
$this->assertSame($expected, $processor->match($item, $arguments, $filterHandlers));
}
- public function invalidCountArgumentsDataProvider(): array
+ public static function invalidCountArgumentsDataProvider(): array
{
return [
'zero' => [[]],
@@ -48,9 +47,7 @@ public function invalidCountArgumentsDataProvider(): array
];
}
- /**
- * @dataProvider invalidCountArgumentsDataProvider
- */
+ #[DataProvider('invalidCountArgumentsDataProvider')]
public function testMatchFailForInvalidCountArguments($arguments): void
{
$this->expectException(InvalidArgumentException::class);
@@ -59,9 +56,7 @@ public function testMatchFailForInvalidCountArguments($arguments): void
(new NotHandler())->match(['id' => 1], $arguments, []);
}
- /**
- * @dataProvider invalidArrayValueDataProvider
- */
+ #[DataProvider('invalidArrayValueDataProvider')]
public function testMatchFailIfArgumentValueIsNotArray($value): void
{
$type = get_debug_type($value);
@@ -80,16 +75,14 @@ public function testMatchFailIfArgumentValueIsEmptyArray(): void
(new NotHandler())->match(['id' => 1], [[]], []);
}
- public function invalidFilterOperatorDataProvider(): array
+ public static function invalidFilterOperatorDataProvider(): array
{
$data = parent::invalidFilterOperatorDataProvider();
unset($data['array'], $data['empty-string']);
return $data;
}
- /**
- * @dataProvider invalidFilterOperatorDataProvider
- */
+ #[DataProvider('invalidFilterOperatorDataProvider')]
public function testMatchFailForInvalidFilterOperator(array $filter): void
{
$type = get_debug_type($filter[0]);
diff --git a/tests/Support/CustomFilter/DigitalHandler.php b/tests/Support/CustomFilter/DigitalHandler.php
index 743a5ec2..6a5a6b89 100644
--- a/tests/Support/CustomFilter/DigitalHandler.php
+++ b/tests/Support/CustomFilter/DigitalHandler.php
@@ -16,6 +16,6 @@ public function getOperator(): string
public function match(object|array $item, array $arguments, array $iterableFilterHandlers): bool
{
- return ctype_digit(ArrayHelper::getValue($item, $arguments[0]));
+ return ctype_digit((string) ArrayHelper::getValue($item, $arguments[0]));
}
}
diff --git a/tests/TestCase.php b/tests/TestCase.php
index 3bc193fc..6f4efed4 100644
--- a/tests/TestCase.php
+++ b/tests/TestCase.php
@@ -15,7 +15,7 @@
abstract class TestCase extends \PHPUnit\Framework\TestCase
{
- public function invalidArrayValueDataProvider(): array
+ public static function invalidArrayValueDataProvider(): array
{
return [
'bool-true' => [true],
@@ -29,7 +29,7 @@ public function invalidArrayValueDataProvider(): array
];
}
- public function invalidStringValueDataProvider(): array
+ public static function invalidStringValueDataProvider(): array
{
return [
'array' => [[]],
@@ -43,7 +43,7 @@ public function invalidStringValueDataProvider(): array
];
}
- public function invalidFilterDataProvider(): array
+ public static function invalidFilterDataProvider(): array
{
return [
'callback' => [fn () => null],
@@ -55,7 +55,7 @@ public function invalidFilterDataProvider(): array
];
}
- public function invalidFilterOperatorDataProvider(): array
+ public static function invalidFilterOperatorDataProvider(): array
{
return [
'array' => [[[]]],
@@ -68,7 +68,7 @@ public function invalidFilterOperatorDataProvider(): array
];
}
- public function invalidScalarValueDataProvider(): array
+ public static function invalidScalarValueDataProvider(): array
{
return [
'array' => [[]],
@@ -78,7 +78,7 @@ public function invalidScalarValueDataProvider(): array
];
}
- public function scalarAndDataTimeInterfaceValueDataProvider(): array
+ public static function scalarAndDataTimeInterfaceValueDataProvider(): array
{
return [
'bool-true' => [true],
@@ -92,8 +92,6 @@ public function scalarAndDataTimeInterfaceValueDataProvider(): array
/**
* Gets an inaccessible object property.
- *
- * @return mixed
*/
protected function getInaccessibleProperty(object $object, string $propertyName): mixed
{
@@ -115,8 +113,6 @@ protected function getInaccessibleProperty(object $object, string $propertyName)
* Invokes an inaccessible method.
*
* @throws ReflectionException
- *
- * @return mixed
*/
protected function invokeMethod(object $object, string $method, array $args = []): mixed
{