Skip to content

Commit 48988b2

Browse files
committed
Use attributes for test data providers
1 parent 7459808 commit 48988b2

10 files changed

+38
-3
lines changed

.github/workflows/test-unit.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
- name: "Run tests (only for Phpunit)"
4343
if: startsWith(matrix.type, 'Phpunit')
4444
run: |
45-
vendor/bin/phpunit --exclude-group none --no-coverage --fail-on-warning --fail-on-risky $(if vendor/bin/phpunit --version | grep -q '^PHPUnit 9\.'; then echo -v; else echo --fail-on-notice --fail-on-deprecation --display-notices --display-deprecations --display-warnings --display-errors --display-incomplete --display-skipped; fi)
45+
vendor/bin/phpunit --exclude-group none --no-coverage --fail-on-warning --fail-on-risky $(if vendor/bin/phpunit --version | grep -q '^PHPUnit 9\.'; then echo -v; else echo --fail-on-notice --fail-on-deprecation --display-notices --display-deprecations --display-phpunit-deprecations --display-warnings --display-errors --display-incomplete --display-skipped; fi)
4646
4747
- name: Check Coding Style (only for CodingStyle)
4848
if: matrix.type == 'CodingStyle'
@@ -133,7 +133,7 @@ jobs:
133133
REDIS_URIS: "redis://redis1,redis://redis2,redis://redis3"
134134
MEMCACHE_HOST: memcached
135135
run: |
136-
php -d opcache.enable_cli=1 vendor/bin/phpunit --exclude-group none $(if [ -n "$LOG_COVERAGE" ]; then echo --coverage-text; else echo --no-coverage; fi) --fail-on-warning --fail-on-risky $(if vendor/bin/phpunit --version | grep -q '^PHPUnit 9\.'; then echo -v; else echo --fail-on-notice --fail-on-deprecation --display-notices --display-deprecations --display-warnings --display-errors --display-incomplete --display-skipped; fi)
136+
php -d opcache.enable_cli=1 vendor/bin/phpunit --exclude-group none $(if [ -n "$LOG_COVERAGE" ]; then echo --coverage-text; else echo --no-coverage; fi) --fail-on-warning --fail-on-risky $(if vendor/bin/phpunit --version | grep -q '^PHPUnit 9\.'; then echo -v; else echo --fail-on-notice --fail-on-deprecation --display-notices --display-deprecations --display-phpunit-deprecations --display-warnings --display-errors --display-incomplete --display-skipped; fi)
137137
138138
- name: "Run tests 2/2"
139139
env:
@@ -146,7 +146,7 @@ jobs:
146146
REDIS_URIS: "redis://valkey1,redis://valkey2,redis://valkey3"
147147
MEMCACHE_HOST: memcached
148148
run: |
149-
php -d opcache.enable_cli=1 vendor/bin/phpunit --exclude-group none $(if [ -n "$LOG_COVERAGE" ]; then echo --coverage-text; else echo --no-coverage; fi) --fail-on-warning --fail-on-risky $(if vendor/bin/phpunit --version | grep -q '^PHPUnit 9\.'; then echo -v; else echo --fail-on-notice --fail-on-deprecation --display-notices --display-deprecations --display-warnings --display-errors --display-incomplete --display-skipped; fi)
149+
php -d opcache.enable_cli=1 vendor/bin/phpunit --exclude-group none $(if [ -n "$LOG_COVERAGE" ]; then echo --coverage-text; else echo --no-coverage; fi) --fail-on-warning --fail-on-risky $(if vendor/bin/phpunit --version | grep -q '^PHPUnit 9\.'; then echo -v; else echo --fail-on-notice --fail-on-deprecation --display-notices --display-deprecations --display-phpunit-deprecations --display-warnings --display-errors --display-incomplete --display-skipped; fi)
150150
151151
- name: Upload coverage (only for coverage)
152152
if: env.LOG_COVERAGE && false # TODO

tests/mutex/FlockMutexTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use malkusch\lock\exception\TimeoutException;
1010
use malkusch\lock\mutex\FlockMutex;
1111
use malkusch\lock\util\PcntlTimeout;
12+
use PHPUnit\Framework\Attributes\DataProvider;
1213
use PHPUnit\Framework\TestCase;
1314

1415
class FlockMutexTest extends TestCase
@@ -41,6 +42,7 @@ protected function tearDown(): void
4142
*
4243
* @dataProvider provideTimeoutableStrategiesCases
4344
*/
45+
#[DataProvider('provideTimeoutableStrategiesCases')]
4446
public function testCodeExecutedOutsideLockIsNotThrown(int $strategy): void
4547
{
4648
$this->mutex->strategy = $strategy; // @phpstan-ignore property.private
@@ -57,6 +59,7 @@ public function testCodeExecutedOutsideLockIsNotThrown(int $strategy): void
5759
*
5860
* @dataProvider provideTimeoutableStrategiesCases
5961
*/
62+
#[DataProvider('provideTimeoutableStrategiesCases')]
6063
public function testTimeoutOccurs(int $strategy): void
6164
{
6265
$this->expectException(TimeoutException::class);

tests/mutex/MemcachedMutexTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use malkusch\lock\exception\LockReleaseException;
88
use malkusch\lock\exception\TimeoutException;
99
use malkusch\lock\mutex\MemcachedMutex;
10+
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
1011
use PHPUnit\Framework\MockObject\MockObject;
1112
use PHPUnit\Framework\TestCase;
1213

@@ -15,6 +16,7 @@
1516
*
1617
* @requires extension memcached
1718
*/
19+
#[RequiresPhpExtension('memcached')]
1820
class MemcachedMutexTest extends TestCase
1921
{
2022
/** @var \Memcached|MockObject */

tests/mutex/MutexConcurrencyTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use malkusch\lock\mutex\PredisMutex;
1515
use malkusch\lock\mutex\SemaphoreMutex;
1616
use malkusch\lock\mutex\TransactionalMutex;
17+
use PHPUnit\Framework\Attributes\DataProvider;
1718
use PHPUnit\Framework\Constraint\IsType;
1819
use PHPUnit\Framework\TestCase;
1920
use Predis\Client;
@@ -84,6 +85,7 @@ private function fork(int $concurrency, \Closure $code): void
8485
*
8586
* @dataProvider provideHighContentionCases
8687
*/
88+
#[DataProvider('provideHighContentionCases')]
8789
public function testHighContention(\Closure $code, \Closure $mutexFactory): void
8890
{
8991
$concurrency = 10;
@@ -196,6 +198,7 @@ static function ($timeout = 3) use ($dsn, $user, $password) {
196198
*
197199
* @dataProvider provideExecutionIsSerializedWhenLockedCases
198200
*/
201+
#[DataProvider('provideExecutionIsSerializedWhenLockedCases')]
199202
public function testExecutionIsSerializedWhenLocked(\Closure $mutexFactory): void
200203
{
201204
$time = \microtime(true);

tests/mutex/MutexTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use malkusch\lock\mutex\SpinlockMutex;
1919
use malkusch\lock\mutex\TransactionalMutex;
2020
use org\bovigo\vfs\vfsStream;
21+
use PHPUnit\Framework\Attributes\DataProvider;
2122
use PHPUnit\Framework\TestCase;
2223
use Predis\Client;
2324

@@ -192,6 +193,7 @@ static function ($uri) {
192193
*
193194
* @dataProvider provideMutexFactoriesCases
194195
*/
196+
#[DataProvider('provideMutexFactoriesCases')]
195197
public function testSynchronizedDelegates(\Closure $mutexFactory): void
196198
{
197199
/** @var Mutex $mutex */
@@ -209,6 +211,7 @@ public function testSynchronizedDelegates(\Closure $mutexFactory): void
209211
*
210212
* @dataProvider provideMutexFactoriesCases
211213
*/
214+
#[DataProvider('provideMutexFactoriesCases')]
212215
public function testRelease(\Closure $mutexFactory): void
213216
{
214217
$mutex = $mutexFactory();
@@ -225,6 +228,7 @@ public function testRelease(\Closure $mutexFactory): void
225228
*
226229
* @dataProvider provideMutexFactoriesCases
227230
*/
231+
#[DataProvider('provideMutexFactoriesCases')]
228232
public function testSynchronizedPassesExceptionThrough(\Closure $mutexFactory): void
229233
{
230234
$this->expectException(\DomainException::class);

tests/mutex/PHPRedisMutexTest.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
use malkusch\lock\exception\LockReleaseException;
99
use malkusch\lock\exception\MutexException;
1010
use malkusch\lock\mutex\PHPRedisMutex;
11+
use PHPUnit\Framework\Attributes\DataProvider;
12+
use PHPUnit\Framework\Attributes\Group;
13+
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
1114
use PHPUnit\Framework\TestCase;
1215

1316
if (\PHP_MAJOR_VERSION >= 8) {
@@ -63,6 +66,8 @@ public function set($key, $value, $options = null)
6366
*
6467
* @group redis
6568
*/
69+
#[RequiresPhpExtension('redis')]
70+
#[Group('redis')]
6671
class PHPRedisMutexTest extends TestCase
6772
{
6873
/** @var \Redis[] */
@@ -203,6 +208,7 @@ public function testEvalScriptFails(): void
203208
*
204209
* @dataProvider provideSerializersAndCompressorsCases
205210
*/
211+
#[DataProvider('provideSerializersAndCompressorsCases')]
206212
public function testSerializersAndCompressors($serializer, $compressor): void
207213
{
208214
foreach ($this->connections as $connection) {

tests/mutex/PredisMutexTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use malkusch\lock\exception\LockAcquireException;
88
use malkusch\lock\exception\LockReleaseException;
99
use malkusch\lock\mutex\PredisMutex;
10+
use PHPUnit\Framework\Attributes\Group;
1011
use PHPUnit\Framework\MockObject\MockObject;
1112
use PHPUnit\Framework\TestCase;
1213
use Predis\ClientInterface;
@@ -16,6 +17,7 @@
1617
/**
1718
* @group redis
1819
*/
20+
#[Group('redis')]
1921
class PredisMutexTest extends TestCase
2022
{
2123
/** @var ClientInterface|MockObject */

tests/mutex/RedisMutexTest.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,15 @@
1111
use malkusch\lock\mutex\RedisMutex;
1212
use phpmock\environment\SleepEnvironmentBuilder;
1313
use phpmock\phpunit\PHPMock;
14+
use PHPUnit\Framework\Attributes\DataProvider;
15+
use PHPUnit\Framework\Attributes\Group;
1416
use PHPUnit\Framework\MockObject\MockObject;
1517
use PHPUnit\Framework\TestCase;
1618

1719
/**
1820
* @group redis
1921
*/
22+
#[Group('redis')]
2023
class RedisMutexTest extends TestCase
2124
{
2225
use PHPMock;
@@ -63,6 +66,7 @@ static function ($id): array {
6366
*
6467
* @dataProvider provideMinorityCases
6568
*/
69+
#[DataProvider('provideMinorityCases')]
6670
public function testTooFewServerToAcquire(int $count, int $available): void
6771
{
6872
$this->expectException(LockAcquireException::class);
@@ -98,6 +102,7 @@ static function () use (&$i, $available): bool {
98102
*
99103
* @dataProvider provideMajorityCases
100104
*/
105+
#[DataProvider('provideMajorityCases')]
101106
public function testFaultTolerance(int $count, int $available): void
102107
{
103108
$mutex = $this->buildRedisMutex($count);
@@ -131,6 +136,7 @@ static function () use (&$i, $available): bool {
131136
*
132137
* @dataProvider provideMinorityCases
133138
*/
139+
#[DataProvider('provideMinorityCases')]
134140
public function testAcquireTooFewKeys($count, $available): void
135141
{
136142
$this->expectException(TimeoutException::class);
@@ -163,6 +169,7 @@ static function () use (&$i, $available): bool {
163169
*
164170
* @dataProvider provideTimingOutCases
165171
*/
172+
#[DataProvider('provideTimingOutCases')]
166173
public function testTimingOut(int $count, float $timeout, float $delay): void
167174
{
168175
$timeoutStr = (string) round($timeout, 6);
@@ -210,6 +217,7 @@ public static function provideTimingOutCases(): iterable
210217
*
211218
* @dataProvider provideMajorityCases
212219
*/
220+
#[DataProvider('provideMajorityCases')]
213221
public function testAcquireWithMajority(int $count, int $available): void
214222
{
215223
$mutex = $this->buildRedisMutex($count);
@@ -239,6 +247,7 @@ static function () use (&$i, $available): bool {
239247
*
240248
* @dataProvider provideMinorityCases
241249
*/
250+
#[DataProvider('provideMinorityCases')]
242251
public function testTooFewServersToRelease(int $count, int $available): void
243252
{
244253
$mutex = $this->buildRedisMutex($count);
@@ -274,6 +283,7 @@ static function () use (&$i, $available): bool {
274283
*
275284
* @dataProvider provideMinorityCases
276285
*/
286+
#[DataProvider('provideMinorityCases')]
277287
public function testReleaseTooFewKeys(int $count, int $available): void
278288
{
279289
$mutex = $this->buildRedisMutex($count);

tests/mutex/TransactionalMutexTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
use malkusch\lock\exception\LockAcquireException;
88
use malkusch\lock\mutex\TransactionalMutex;
9+
use PHPUnit\Framework\Attributes\DataProvider;
910
use PHPUnit\Framework\TestCase;
1011

1112
/**
@@ -18,6 +19,7 @@ class TransactionalMutexTest extends TestCase
1819
*
1920
* @dataProvider provideInvalidErrorModeCases
2021
*/
22+
#[DataProvider('provideInvalidErrorModeCases')]
2123
public function testInvalidErrorMode(int $mode): void
2224
{
2325
$this->expectException(\InvalidArgumentException::class);
@@ -109,6 +111,7 @@ public function testFailExceptionRollsback(): void
109111
*
110112
* @dataProvider provideReplayTransactionCases
111113
*/
114+
#[DataProvider('provideReplayTransactionCases')]
112115
public function testReplayTransaction(\Exception $exception): void
113116
{
114117
$pdo = $this->buildMySqlPdo();

tests/util/DoubleCheckedLockingTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
use malkusch\lock\mutex\Mutex;
88
use malkusch\lock\util\DoubleCheckedLocking;
9+
use PHPUnit\Framework\Attributes\DataProvider;
910
use PHPUnit\Framework\MockObject\MockObject;
1011
use PHPUnit\Framework\TestCase;
1112

@@ -87,6 +88,7 @@ public function testLockedCheckAndExecution(): void
8788
*
8889
* @dataProvider provideCodeNotExecutedCases
8990
*/
91+
#[DataProvider('provideCodeNotExecutedCases')]
9092
public function testCodeNotExecuted(\Closure $check): void
9193
{
9294
$this->mutex->expects(self::any())

0 commit comments

Comments
 (0)