diff --git a/.gitignore b/.gitignore index f8c142e..65779aa 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,7 @@ node_modules /vendor/ .DS_Store .idea +.phpunit.result.cache +app/ +composer.lock +public/ diff --git a/composer.json b/composer.json index 7b6b871..d7c352d 100644 --- a/composer.json +++ b/composer.json @@ -20,12 +20,13 @@ ], "require": { "php": "^8.1", - "silverstripe/framework": "^5" + "silverstripe/framework": "^6" }, "require-dev": { - "phpunit/phpunit": "^9.5", - "tractorcow/silverstripe-fluent": "^7", - "slevomat/coding-standard": "~8.8.0" + "phpunit/phpunit": "^11.5", + "tractorcow/silverstripe-fluent": "^8", + "slevomat/coding-standard": "~8.8.0", + "silverstripe/cms": "^6" }, "autoload": { "psr-4": { diff --git a/phpcs.xml.dist b/phpcs.xml.dist index 06da3fd..35c715a 100644 --- a/phpcs.xml.dist +++ b/phpcs.xml.dist @@ -3,7 +3,6 @@ CodeSniffer ruleset for SilverStripe coding conventions. src - tests diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 2dbbe21..a78a9fa 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,16 +1,14 @@ - - - - - tests - - - - - src/ - - tests/ - - - + + + + tests/ + + + + src/ + + + tests/ + + diff --git a/src/Extensions/CacheKeyExtension.php b/src/Extensions/CacheKeyExtension.php index 832265a..a6f2920 100644 --- a/src/Extensions/CacheKeyExtension.php +++ b/src/Extensions/CacheKeyExtension.php @@ -3,10 +3,10 @@ namespace Terraformers\KeysForCache\Extensions; use SilverStripe\Core\Config\Config; +use SilverStripe\Core\Extension; use SilverStripe\Forms\FieldList; use SilverStripe\Forms\GridField\GridField; use SilverStripe\Forms\GridField\GridFieldConfig_RecordViewer; -use SilverStripe\ORM\DataExtension; use SilverStripe\ORM\DataObject; use SilverStripe\ORM\HasManyList; use SilverStripe\Versioned\Versioned; @@ -20,7 +20,7 @@ * @property DataObject|Versioned|$this $owner * @method HasManyList|CacheKey CacheKeys() */ -class CacheKeyExtension extends DataExtension +class CacheKeyExtension extends Extension { private static array $has_many = [ // Programmatically we know that we will only ever create one of these CacheKey records per unique DataObject, diff --git a/src/Extensions/FluentExtension.php b/src/Extensions/FluentExtension.php index 43a9d4d..722a00e 100644 --- a/src/Extensions/FluentExtension.php +++ b/src/Extensions/FluentExtension.php @@ -2,11 +2,11 @@ namespace Terraformers\KeysForCache\Extensions; -use SilverStripe\ORM\DataExtension; +use SilverStripe\Core\Extension; use Terraformers\KeysForCache\DataTransferObjects\CacheKeyDto; use TractorCow\Fluent\State\FluentState; -class FluentExtension extends DataExtension +class FluentExtension extends Extension { public function updateCacheKey(CacheKeyDto $cacheKey): void { diff --git a/src/Extensions/StagingExtension.php b/src/Extensions/StagingExtension.php index a35146f..d99ed2e 100644 --- a/src/Extensions/StagingExtension.php +++ b/src/Extensions/StagingExtension.php @@ -3,13 +3,13 @@ namespace Terraformers\KeysForCache\Extensions; use SilverStripe\CMS\Controllers\ContentController; -use SilverStripe\CMS\Model\SiteTreeExtension; +use SilverStripe\Core\Extension; use Terraformers\KeysForCache\State\StagingState; /** * @property ContentController $owner */ -class StagingExtension extends SiteTreeExtension +class StagingExtension extends Extension { public function contentcontrollerInit(ContentController $controller): void { diff --git a/src/Models/CacheKey.php b/src/Models/CacheKey.php index 07db76d..330ba27 100644 --- a/src/Models/CacheKey.php +++ b/src/Models/CacheKey.php @@ -2,8 +2,8 @@ namespace Terraformers\KeysForCache\Models; +use SilverStripe\Core\Validation\ValidationException; use SilverStripe\ORM\DataObject; -use SilverStripe\ORM\ValidationException; use SilverStripe\Versioned\Versioned; use Terraformers\KeysForCache\Extensions\CacheKeyExtension; diff --git a/src/RelationshipGraph/Graph.php b/src/RelationshipGraph/Graph.php index a0a6f1a..152e7e0 100644 --- a/src/RelationshipGraph/Graph.php +++ b/src/RelationshipGraph/Graph.php @@ -10,8 +10,8 @@ use SilverStripe\Core\Flushable; use SilverStripe\Core\Injector\Injectable; use SilverStripe\Core\Injector\Injector; +use SilverStripe\Model\ModelData; use SilverStripe\ORM\DataObject; -use SilverStripe\View\ViewableData; use Terraformers\KeysForCache\Models\CacheKey; class Graph implements Flushable @@ -49,7 +49,7 @@ public function getEdgesFrom(string $from): array // Base classes that show up in every ancestry array $disallowList = [ DataObject::class, - ViewableData::class, + ModelData::class, ]; return array_filter( diff --git a/src/Services/CacheProcessingService.php b/src/Services/CacheProcessingService.php index 25242b8..ec82f13 100644 --- a/src/Services/CacheProcessingService.php +++ b/src/Services/CacheProcessingService.php @@ -4,9 +4,9 @@ use SilverStripe\Core\ClassInfo; use SilverStripe\Core\Injector\Injectable; +use SilverStripe\Model\List\SS_List; use SilverStripe\ORM\DataList; use SilverStripe\ORM\DataObject; -use SilverStripe\ORM\SS_List; use SilverStripe\Versioned\Versioned; use Terraformers\KeysForCache\DataTransferObjects\EdgeUpdateDto; use Terraformers\KeysForCache\Models\CacheKey; diff --git a/tests/Extensions/CacheKeyExtensionTest.php b/tests/Extensions/CacheKeyExtensionTest.php index 26d7db4..f2228d8 100644 --- a/tests/Extensions/CacheKeyExtensionTest.php +++ b/tests/Extensions/CacheKeyExtensionTest.php @@ -3,6 +3,7 @@ namespace Terraformers\KeysForCache\Tests\Extensions; use Page; +use PHPUnit\Framework\Attributes\DataProvider; use SilverStripe\Dev\SapphireTest; use SilverStripe\ORM\DataList; use SilverStripe\Versioned\Versioned; @@ -24,9 +25,7 @@ class CacheKeyExtensionTest extends SapphireTest CachePage::class, ]; - /** - * @dataProvider readingModes - */ + #[DataProvider('readingModes')] public function testWriteGeneratesCacheKey(string $readingMode): void { $page = Versioned::withVersionedMode(static function () use ($readingMode): CachePage { @@ -64,9 +63,7 @@ public function testWriteGeneratesCacheKey(string $readingMode): void }); } - /** - * @dataProvider readingModes - */ + #[DataProvider('readingModes')] public function testWriteDoesNotGenerateCacheKey(string $readingMode): void { Versioned::withVersionedMode(function () use ($readingMode): void { @@ -472,7 +469,7 @@ public function testIgnoreList(): void ); } - public function readingModes(): array + public static function readingModes(): array { return [ [Versioned::DRAFT], diff --git a/tests/Scenarios/CaresTest.php b/tests/Scenarios/CaresTest.php index 49410a9..32304c4 100644 --- a/tests/Scenarios/CaresTest.php +++ b/tests/Scenarios/CaresTest.php @@ -2,6 +2,7 @@ namespace Terraformers\KeysForCache\Tests\Scenarios; +use PHPUnit\Framework\Attributes\DataProvider; use SilverStripe\Core\Injector\Injector; use SilverStripe\Dev\SapphireTest; use SilverStripe\ORM\DataObject; @@ -47,9 +48,7 @@ class CaresTest extends SapphireTest PolymorphicCaredHasMany::class, ]; - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testCaresPureHasOne(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -69,9 +68,7 @@ public function testCaresPureHasOne(string $readingMode, string $saveMethod, boo $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testCaresBelongsTo(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -91,9 +88,7 @@ public function testCaresBelongsTo(string $readingMode, string $saveMethod, bool $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testCaresHasOne(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -113,9 +108,7 @@ public function testCaresHasOne(string $readingMode, string $saveMethod, bool $e $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModes - */ + #[DataProvider('readingModes')] public function testCaresHasOneNonVersioned(string $readingMode): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -157,9 +150,7 @@ public function testCaresHasOneNonVersioned(string $readingMode): void }); } - /** - * @dataProvider readingModes - */ + #[DataProvider('readingModes')] public function testCaresHasOneVersionedNonStaged(string $readingMode): void { $page = $this->objFromFixture(CaresPage::class, 'page1'); @@ -198,9 +189,7 @@ public function testCaresHasOneVersionedNonStaged(string $readingMode): void }); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testPolymorphicCaresHasOne(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -220,9 +209,7 @@ public function testPolymorphicCaresHasOne(string $readingMode, string $saveMeth $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testCaresHasMany(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -238,9 +225,7 @@ public function testCaresHasMany(string $readingMode, string $saveMethod, bool $ $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testPolymorphicCaresHasMany(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -256,9 +241,7 @@ public function testPolymorphicCaresHasMany(string $readingMode, string $saveMet $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testManyMany(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -278,9 +261,7 @@ public function testManyMany(string $readingMode, string $saveMethod, bool $expe $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testManyManyThrough(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -372,7 +353,7 @@ function () use ($page, $model, $readingMode, $saveMethod, $expectKeyChange): vo ); } - public function readingModes(): array + public static function readingModes(): array { return [ [Versioned::DRAFT], @@ -380,7 +361,7 @@ public function readingModes(): array ]; } - public function readingModesWithSaveMethods(): array + public static function readingModesWithSaveMethods(): array { return [ // If write() is performed on a model then we would expect the CacheKey to be updated in DRAFT only. Since diff --git a/tests/Scenarios/DotNotationCaresTest.php b/tests/Scenarios/DotNotationCaresTest.php index a7acdfe..c4a20e7 100644 --- a/tests/Scenarios/DotNotationCaresTest.php +++ b/tests/Scenarios/DotNotationCaresTest.php @@ -2,6 +2,7 @@ namespace Terraformers\KeysForCache\Tests\Scenarios; +use PHPUnit\Framework\Attributes\DataProvider; use SilverStripe\Core\Injector\Injector; use SilverStripe\Dev\SapphireTest; use SilverStripe\ORM\DataObject; @@ -29,9 +30,7 @@ class DotNotationCaresTest extends SapphireTest DotNotationCaredHasOne::class, ]; - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testCaresPureHasOne(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -55,9 +54,7 @@ public function testCaresPureHasOne(string $readingMode, string $saveMethod, boo $this->assertCacheKeyChanges($page, $modelOne, $modelTwo, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testCaresBelongsTo(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -122,9 +119,7 @@ function () use ($page, $modelOne, $modelTwo, $readingMode, $saveMethod, $expect ); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testCaresHasOne(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -148,9 +143,7 @@ public function testCaresHasOne(string $readingMode, string $saveMethod, bool $e $this->assertCacheKeyChanges($page, $modelOne, $modelTwo, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testCaresHasMany(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -242,7 +235,7 @@ function () use ($page, $modelOne, $modelTwo, $readingMode, $saveMethod, $expect ); } - public function readingModesWithSaveMethods(): array + public static function readingModesWithSaveMethods(): array { return [ // If write() is performed on a model then we would expect the CacheKey to be updated in DRAFT only. Since diff --git a/tests/Scenarios/DotNotationTouchesTest.php b/tests/Scenarios/DotNotationTouchesTest.php index 7fe4c17..c8587c6 100644 --- a/tests/Scenarios/DotNotationTouchesTest.php +++ b/tests/Scenarios/DotNotationTouchesTest.php @@ -2,6 +2,7 @@ namespace Terraformers\KeysForCache\Tests\Scenarios; +use PHPUnit\Framework\Attributes\DataProvider; use SilverStripe\Core\Injector\Injector; use SilverStripe\Dev\SapphireTest; use SilverStripe\ORM\DataObject; @@ -33,9 +34,7 @@ class DotNotationTouchesTest extends SapphireTest DotNotationTouchesBelongsTo::class, ]; - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testTouchesHasOne(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -59,9 +58,7 @@ public function testTouchesHasOne(string $readingMode, string $saveMethod, bool $this->assertCacheKeyChanges($page, $modelOne, $modelTwo, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testTouchesPureHasOne(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -85,9 +82,7 @@ public function testTouchesPureHasOne(string $readingMode, string $saveMethod, b $this->assertCacheKeyChanges($page, $modelOne, $modelTwo, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testTouchesHasMany(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -111,9 +106,7 @@ public function testTouchesHasMany(string $readingMode, string $saveMethod, bool $this->assertCacheKeyChanges($page, $modelOne, $modelTwo, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testTouchesBelongsTo(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -247,7 +240,7 @@ function () use ($page, $modelOne, $modelTwo, $readingMode, $saveMethod, $expect ); } - public function readingModesWithSaveMethods(): array + public static function readingModesWithSaveMethods(): array { return [ // If write() is performed on a model then we would expect the CacheKey to be updated in DRAFT only. Since diff --git a/tests/Scenarios/ExtendedCaresTest.php b/tests/Scenarios/ExtendedCaresTest.php index 9ba8fac..3fc6427 100644 --- a/tests/Scenarios/ExtendedCaresTest.php +++ b/tests/Scenarios/ExtendedCaresTest.php @@ -2,6 +2,7 @@ namespace Terraformers\KeysForCache\Tests\Scenarios; +use PHPUnit\Framework\Attributes\DataProvider; use SilverStripe\Core\Injector\Injector; use SilverStripe\Dev\SapphireTest; use SilverStripe\ORM\DataObject; @@ -53,9 +54,7 @@ class ExtendedCaresTest extends SapphireTest PolymorphicCaredHasOne::class, ]; - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testCaresPureHasOne(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -75,9 +74,7 @@ public function testCaresPureHasOne(string $readingMode, string $saveMethod, boo $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testCaresBelongsTo(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -97,9 +94,7 @@ public function testCaresBelongsTo(string $readingMode, string $saveMethod, bool $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testCaresHasOne(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -119,9 +114,7 @@ public function testCaresHasOne(string $readingMode, string $saveMethod, bool $e $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testPolymorphicCaresHasOne(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -141,9 +134,7 @@ public function testPolymorphicCaresHasOne(string $readingMode, string $saveMeth $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testExtendedPolymorphicCaresHasOne( string $readingMode, string $saveMethod, @@ -166,9 +157,7 @@ public function testExtendedPolymorphicCaresHasOne( $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testCaresHasMany(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -184,9 +173,7 @@ public function testCaresHasMany(string $readingMode, string $saveMethod, bool $ $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testPolymorphicCaresHasMany(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -202,9 +189,7 @@ public function testPolymorphicCaresHasMany(string $readingMode, string $saveMet $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testExtendedPolymorphicCaresHasMany( string $readingMode, string $saveMethod, @@ -225,9 +210,8 @@ public function testExtendedPolymorphicCaresHasMany( /** * Testing that Base relationships work when the explicit class is used in the relationship - * - * @dataProvider readingModesWithSaveMethods */ + #[DataProvider('readingModesWithSaveMethods')] public function testBaseCaredHasOne(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -245,9 +229,8 @@ public function testBaseCaredHasOne(string $readingMode, string $saveMethod, boo /** * Testing that Base relationships work when the explicit class is used in the relationship - * - * @dataProvider readingModesWithSaveMethods */ + #[DataProvider('readingModesWithSaveMethods')] public function testBaseCaredHasMany(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -265,9 +248,8 @@ public function testBaseCaredHasMany(string $readingMode, string $saveMethod, bo /** * Now testing that a relationship to a Base class still works when the related object is an extended class - * - * @dataProvider readingModesWithSaveMethods */ + #[DataProvider('readingModesWithSaveMethods')] public function testExtendedCaredHasOne(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -287,9 +269,8 @@ public function testExtendedCaredHasOne(string $readingMode, string $saveMethod, /** * Now testing that a relationship to a Base class still works when the related object is an extended class - * - * @dataProvider readingModesWithSaveMethods */ + #[DataProvider('readingModesWithSaveMethods')] public function testExtendedCaredHasMany(string $readingMode, string $saveMethod, bool $expectKeyChange): void { // Updates are processed as part of scaffold, so we need to flush before we kick off @@ -349,7 +330,7 @@ function () use ($page, $model, $readingMode, $saveMethod, $expectKeyChange): vo ); } - public function readingModesWithSaveMethods(): array + public static function readingModesWithSaveMethods(): array { return [ // If write() is performed on a model then we would expect the CacheKey to be updated in DRAFT only. Since diff --git a/tests/Scenarios/ExtendedTouchesTest.php b/tests/Scenarios/ExtendedTouchesTest.php index fff64ce..9edb147 100644 --- a/tests/Scenarios/ExtendedTouchesTest.php +++ b/tests/Scenarios/ExtendedTouchesTest.php @@ -2,6 +2,7 @@ namespace Terraformers\KeysForCache\Tests\Scenarios; +use PHPUnit\Framework\Attributes\DataProvider; use SilverStripe\Core\Injector\Injector; use SilverStripe\Dev\SapphireTest; use SilverStripe\ORM\DataObject; @@ -51,9 +52,7 @@ class ExtendedTouchesTest extends SapphireTest TouchesBelongsTo::class, ]; - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testTouchesHasOne(string $readingMode, string $saveMethod, bool $expectKeyChange): void { $page = $this->objFromFixture(ExtendedTouchesPage::class, 'page1'); @@ -70,9 +69,7 @@ public function testTouchesHasOne(string $readingMode, string $saveMethod, bool $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testTouchesTrueHasOne(string $readingMode, string $saveMethod, bool $expectKeyChange): void { $page = $this->objFromFixture(ExtendedTouchesPage::class, 'page1'); @@ -89,9 +86,7 @@ public function testTouchesTrueHasOne(string $readingMode, string $saveMethod, b $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testPolymorphicTouchesHasOne(string $readingMode, string $saveMethod, bool $expectKeyChange): void { $page = $this->objFromFixture(ExtendedTouchesPage::class, 'page1'); @@ -108,9 +103,7 @@ public function testPolymorphicTouchesHasOne(string $readingMode, string $saveMe $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testExtendedPolymorphicTouchesHasOne( string $readingMode, string $saveMethod, @@ -130,9 +123,7 @@ public function testExtendedPolymorphicTouchesHasOne( $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testTouchesHasMany(string $readingMode, string $saveMethod, bool $expectKeyChange): void { $page = $this->objFromFixture(ExtendedTouchesPage::class, 'page1'); @@ -145,9 +136,7 @@ public function testTouchesHasMany(string $readingMode, string $saveMethod, bool $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testPolymorphicTouchesHasMany(string $readingMode, string $saveMethod, bool $expectKeyChange): void { $page = $this->objFromFixture(ExtendedTouchesPage::class, 'page1'); @@ -160,9 +149,7 @@ public function testPolymorphicTouchesHasMany(string $readingMode, string $saveM $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testExtendedPolymorphicTouchesHasMany( string $readingMode, string $saveMethod, @@ -178,9 +165,7 @@ public function testExtendedPolymorphicTouchesHasMany( $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testTouchesBelongsTo(string $readingMode, string $saveMethod, bool $expectKeyChange): void { $page = $this->objFromFixture(ExtendedTouchedPage::class, 'page1'); @@ -267,7 +252,7 @@ function () use ($page, $model, $readingMode, $saveMethod, $expectKeyChange): vo ); } - public function readingModesWithSaveMethods(): array + public static function readingModesWithSaveMethods(): array { return [ // If write() is performed on a model then we would expect the CacheKey to be updated in DRAFT only. Since diff --git a/tests/Scenarios/GlobalCaresTest.php b/tests/Scenarios/GlobalCaresTest.php index 422ee90..81bd618 100644 --- a/tests/Scenarios/GlobalCaresTest.php +++ b/tests/Scenarios/GlobalCaresTest.php @@ -2,6 +2,7 @@ namespace Terraformers\KeysForCache\Tests\Scenarios; +use PHPUnit\Framework\Attributes\DataProvider; use SilverStripe\Core\Injector\Injector; use SilverStripe\Dev\SapphireTest; use SilverStripe\SiteConfig\SiteConfig; @@ -23,9 +24,7 @@ class GlobalCaresTest extends SapphireTest GlobalCaresPage::class, ]; - /** - * @dataProvider readingModes - */ + #[DataProvider('readingModes')] public function testGlobalCares(string $readingMode): void { $siteConfig = SiteConfig::current_site_config(); @@ -67,7 +66,7 @@ public function testGlobalCares(string $readingMode): void }); } - public function readingModes(): array + public static function readingModes(): array { return [ [Versioned::DRAFT], diff --git a/tests/Scenarios/TouchesTest.php b/tests/Scenarios/TouchesTest.php index 43bfbc1..ec3459d 100644 --- a/tests/Scenarios/TouchesTest.php +++ b/tests/Scenarios/TouchesTest.php @@ -2,6 +2,7 @@ namespace Terraformers\KeysForCache\Tests\Scenarios; +use PHPUnit\Framework\Attributes\DataProvider; use SilverStripe\Core\Injector\Injector; use SilverStripe\Dev\SapphireTest; use SilverStripe\ORM\DataObject; @@ -43,9 +44,7 @@ class TouchesTest extends SapphireTest TouchesBelongsTo::class, ]; - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testTouchesHasOne(string $readingMode, string $saveMethod, bool $expectKeyChange): void { $page = $this->objFromFixture(TouchesPage::class, 'page1'); @@ -62,9 +61,7 @@ public function testTouchesHasOne(string $readingMode, string $saveMethod, bool $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testTouchesTrueHasOne(string $readingMode, string $saveMethod, bool $expectKeyChange): void { $page = $this->objFromFixture(TouchesPage::class, 'page1'); @@ -81,9 +78,7 @@ public function testTouchesTrueHasOne(string $readingMode, string $saveMethod, b $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testPolymorphicTouchesHasOne(string $readingMode, string $saveMethod, bool $expectKeyChange): void { $page = $this->objFromFixture(TouchesPage::class, 'page1'); @@ -100,9 +95,7 @@ public function testPolymorphicTouchesHasOne(string $readingMode, string $saveMe $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testTouchesHasMany(string $readingMode, string $saveMethod, bool $expectKeyChange): void { $page = $this->objFromFixture(TouchesPage::class, 'page1'); @@ -115,9 +108,7 @@ public function testTouchesHasMany(string $readingMode, string $saveMethod, bool $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testPolymorphicTouchesHasMany(string $readingMode, string $saveMethod, bool $expectKeyChange): void { $page = $this->objFromFixture(TouchesPage::class, 'page1'); @@ -130,9 +121,7 @@ public function testPolymorphicTouchesHasMany(string $readingMode, string $saveM $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testTouchesManyMany(string $readingMode, string $saveMethod, bool $expectKeyChange): void { $page = $this->objFromFixture(TouchesPage::class, 'page1'); @@ -149,9 +138,7 @@ public function testTouchesManyMany(string $readingMode, string $saveMethod, boo $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testTouchesThrough(string $readingMode, string $saveMethod, bool $expectKeyChange): void { $page = $this->objFromFixture(TouchesPage::class, 'page1'); @@ -168,9 +155,7 @@ public function testTouchesThrough(string $readingMode, string $saveMethod, bool $this->assertCacheKeyChanges($page, $model, $readingMode, $saveMethod, $expectKeyChange); } - /** - * @dataProvider readingModesWithSaveMethods - */ + #[DataProvider('readingModesWithSaveMethods')] public function testTouchesBelongsTo(string $readingMode, string $saveMethod, bool $expectKeyChange): void { $page = $this->objFromFixture(TouchedPage::class, 'page1'); @@ -258,7 +243,7 @@ function () use ($page, $model, $readingMode, $saveMethod, $expectKeyChange): vo ); } - public function readingModesWithSaveMethods(): array + public static function readingModesWithSaveMethods(): array { return [ // If write() is performed on a model then we would expect the CacheKey to be updated in DRAFT only. Since