From 9b39e92dba070a4e02fa6324f1ab9dd96774d598 Mon Sep 17 00:00:00 2001 From: Steve Boyd Date: Mon, 1 Nov 2021 14:35:41 +1300 Subject: [PATCH] API phpunit 9 support --- composer.json | 6 ++-- phpunit.xml.dist | 12 +++---- tests/php/Caching/ProxyCacheFactoryTest.php | 2 +- tests/php/ChangeSetTest.php | 9 ++--- tests/php/DataDifferencerTest.php | 6 ++-- .../DataObjectScaffolderExtensionTest.php | 2 +- .../Legacy/Extensions/ReadExtensionTest.php | 4 +-- .../Extensions/ReadOneExtensionTest.php | 6 ++-- .../SchemaScaffolderExtensionTest.php | 2 +- .../Legacy/Operations/CopyToStageTest.php | 6 ++-- .../GraphQL/Legacy/Operations/PublishTest.php | 6 ++-- .../Legacy/Operations/ReadVersionsTest.php | 12 +++---- .../Legacy/Operations/RollbackTest.php | 10 +++--- .../Legacy/Operations/UnpublishTest.php | 6 ++-- .../Resolvers/ApplyVersionFiltersTest.php | 34 +++++++++---------- .../Plugins/VersionedDataObjectPluginTest.php | 2 +- .../php/GraphQL/Plugins/VersionedReadTest.php | 2 +- .../Resolvers/VersionedFiltersTest.php | 34 +++++++++---------- .../Resolvers/VersionedResolverTest.php | 15 ++++---- tests/php/GridFieldArchiveActionTest.php | 2 +- tests/php/GridFieldRestoreActionTest.php | 2 +- tests/php/ReadingModeTest.php | 2 +- tests/php/VersionedCascadeDeletesTest.php | 2 +- .../php/VersionedManyManyThroughListTest.php | 4 +-- tests/php/VersionedNumberCacheTest.php | 4 +-- tests/php/VersionedOwnershipTest.php | 2 +- tests/php/VersionedTest.php | 6 ++-- 27 files changed, 100 insertions(+), 100 deletions(-) diff --git a/composer.json b/composer.json index b206d07b..c3c0d43a 100755 --- a/composer.json +++ b/composer.json @@ -19,12 +19,14 @@ } ], "require": { - "silverstripe/framework": "^4.7", + "php": "^7.3 || ^8.0", + "silverstripe/framework": "^4.10", "symfony/cache": "^3.4 || ^4", "silverstripe/vendor-plugin": "^1" }, "require-dev": { - "sminnee/phpunit": "^5.7", + "silverstripe/recipe-testing": "^2", + "dms/phpunit-arraysubset-asserts": "^0.3.0", "silverstripe/graphql": "^3.5 || ^4", "squizlabs/php_codesniffer": "^3" }, diff --git a/phpunit.xml.dist b/phpunit.xml.dist index c7369a54..8d159c07 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,11 +1,9 @@ - - - tests/php - + + + tests/php + + src/ diff --git a/tests/php/Caching/ProxyCacheFactoryTest.php b/tests/php/Caching/ProxyCacheFactoryTest.php index 19f9658f..c8173e9c 100644 --- a/tests/php/Caching/ProxyCacheFactoryTest.php +++ b/tests/php/Caching/ProxyCacheFactoryTest.php @@ -8,7 +8,7 @@ class ProxyCacheFactoryTest extends SapphireTest { - protected function setUp() + protected function setUp(): void { parent::setUp(); diff --git a/tests/php/ChangeSetTest.php b/tests/php/ChangeSetTest.php index 134d2f4a..10136727 100644 --- a/tests/php/ChangeSetTest.php +++ b/tests/php/ChangeSetTest.php @@ -3,7 +3,7 @@ namespace SilverStripe\Versioned\Tests; use BadMethodCallException; -use PHPUnit_Framework_ExpectationFailedException; +use PHPUnit\Framework\ExpectationFailedException; use SebastianBergmann\Comparator\ComparisonFailure; use SilverStripe\Dev\SapphireTest; use SilverStripe\ORM\DataObject; @@ -32,7 +32,7 @@ class ChangeSetTest extends SapphireTest ChangeSetTest\UnstagedObject::class, ]; - protected function tearDown() + protected function tearDown(): void { // Reset overridden permissions foreach ($this->getExtraDataObjects() as $dataObjectClass) { @@ -85,7 +85,7 @@ protected function assertChangeSetLooksLike($cs, $match) } } - throw new PHPUnit_Framework_ExpectationFailedException( + throw new ExpectationFailedException( 'Change set didn\'t include expected item', new ComparisonFailure( ['Class' => $class, 'ID' => $objectID, 'Added' => $mode], @@ -106,11 +106,12 @@ protected function assertChangeSetLooksLike($cs, $match) 'ChangeType' => $item->getChangeType() ]; } - throw new PHPUnit_Framework_ExpectationFailedException( + throw new ExpectationFailedException( 'Change set included items that weren\'t expected', new ComparisonFailure([], $extra, '', print_r($extra, true)) ); } + $this->assertTrue(true, 'Exception was thrown when it should not have been'); } public function testAddObject() diff --git a/tests/php/DataDifferencerTest.php b/tests/php/DataDifferencerTest.php index 90dbc9d9..abd77077 100644 --- a/tests/php/DataDifferencerTest.php +++ b/tests/php/DataDifferencerTest.php @@ -22,7 +22,7 @@ class DataDifferencerTest extends SapphireTest DataDifferencerTest\HasOneRelationObject::class ]; - public function setUp() + protected function setUp(): void { parent::setUp(); @@ -40,7 +40,7 @@ public function setUp() } } - public function tearDown() + protected function tearDown(): void { TestAssetStore::reset(); parent::tearDown(); @@ -57,7 +57,7 @@ public static function assertContainsIgnoreWhitespace($needle, $haystack, $messa { $needle = preg_replace('#\s+#', '', $needle); $haystack = preg_replace('#\s+#', '', $haystack); - return parent::assertContains($needle, $haystack, $message); + return parent::assertStringContainsString($needle, $haystack, $message); } public function testArrayValues() diff --git a/tests/php/GraphQL/Legacy/Extensions/DataObjectScaffolderExtensionTest.php b/tests/php/GraphQL/Legacy/Extensions/DataObjectScaffolderExtensionTest.php index 3a0c4efb..d06ddec2 100644 --- a/tests/php/GraphQL/Legacy/Extensions/DataObjectScaffolderExtensionTest.php +++ b/tests/php/GraphQL/Legacy/Extensions/DataObjectScaffolderExtensionTest.php @@ -25,7 +25,7 @@ class DataObjectScaffolderExtensionTest extends SapphireTest Fake::class, ]; - protected function setUp() + protected function setUp(): void { parent::setUp(); if (!class_exists(Manager::class)) { diff --git a/tests/php/GraphQL/Legacy/Extensions/ReadExtensionTest.php b/tests/php/GraphQL/Legacy/Extensions/ReadExtensionTest.php index a3f3b460..8478bed7 100644 --- a/tests/php/GraphQL/Legacy/Extensions/ReadExtensionTest.php +++ b/tests/php/GraphQL/Legacy/Extensions/ReadExtensionTest.php @@ -28,7 +28,7 @@ class ReadExtensionTest extends SapphireTest Fake::class, ]; - protected function setUp() + protected function setUp(): void { parent::setUp(); if (!class_exists(Manager::class)) { @@ -53,7 +53,7 @@ public function testReadExtensionAppliesFilters() $read = new Read(Fake::class); $read->setUsePagination(false); $readScaffold = $read->scaffold($manager); - $this->assertInternalType('callable', $readScaffold['resolve']); + $this->assertIsCallable($readScaffold['resolve']); $readScaffold['resolve'](null, ['Versioning' => true], ['currentUser' => new Member()], new ResolveInfo([])); } } diff --git a/tests/php/GraphQL/Legacy/Extensions/ReadOneExtensionTest.php b/tests/php/GraphQL/Legacy/Extensions/ReadOneExtensionTest.php index 434daa71..29802211 100644 --- a/tests/php/GraphQL/Legacy/Extensions/ReadOneExtensionTest.php +++ b/tests/php/GraphQL/Legacy/Extensions/ReadOneExtensionTest.php @@ -29,7 +29,7 @@ class ReadOneExtensionTest extends SapphireTest Fake::class, ]; - protected function setUp() + protected function setUp(): void { parent::setUp(); if (class_exists(Schema::class)) { @@ -44,7 +44,7 @@ public function testReadOneExtensionAppliesFilters() $manager->addType(new ObjectType(['name' => StaticSchema::inst()->typeNameForDataObject(Fake::class)])); $read = new ReadOne(Fake::class); $readScaffold = $read->scaffold($manager); - $this->assertInternalType('callable', $readScaffold['resolve']); + $this->assertIsCallable($readScaffold['resolve']); $doResolve = function ($mode, $ID, $version = null) use ($readScaffold) { $args = [ 'ID' => $ID, @@ -94,7 +94,7 @@ public function testReadOneExtensionAppliesFilters() $this->assertEquals($record->ID, $result->ID); $this->assertEquals('First', $result->Name); - $this->expectException(InvalidArgumentException::class); + $this->expectException(\InvalidArgumentException::class); $doResolve('version', $record->ID, null); } } diff --git a/tests/php/GraphQL/Legacy/Extensions/SchemaScaffolderExtensionTest.php b/tests/php/GraphQL/Legacy/Extensions/SchemaScaffolderExtensionTest.php index 31ec2825..334f8f5b 100644 --- a/tests/php/GraphQL/Legacy/Extensions/SchemaScaffolderExtensionTest.php +++ b/tests/php/GraphQL/Legacy/Extensions/SchemaScaffolderExtensionTest.php @@ -28,7 +28,7 @@ class SchemaScaffolderExtensionTest extends SapphireTest Fake::class, ]; - protected function setUp() + protected function setUp(): void { parent::setUp(); if (class_exists(Schema::class)) { diff --git a/tests/php/GraphQL/Legacy/Operations/CopyToStageTest.php b/tests/php/GraphQL/Legacy/Operations/CopyToStageTest.php index e7aa741d..33e2b3b6 100644 --- a/tests/php/GraphQL/Legacy/Operations/CopyToStageTest.php +++ b/tests/php/GraphQL/Legacy/Operations/CopyToStageTest.php @@ -31,7 +31,7 @@ class CopyToStageTest extends SapphireTest Fake::class, ]; - protected function setUp() + protected function setUp(): void { parent::setUp(); if (class_exists(Schema::class)) { @@ -48,7 +48,7 @@ public function testCopyToStage() $manager->addType(new ObjectType(['name' => $typeName])); $copyToStage = new CopyToStage(Fake::class); $scaffold = $copyToStage->scaffold($manager); - $this->assertInternalType('callable', $scaffold['resolve']); + $this->assertIsCallable($scaffold['resolve']); /* @var Fake|Versioned $record */ $record = new Fake(); @@ -100,7 +100,7 @@ public function testCopyToStage() $this->assertEquals('Second', $recordLive->Title); // Test error - $this->expectException(InvalidArgumentException::class); + $this->expectException(\InvalidArgumentException::class); $scaffold['resolve']( null, [ diff --git a/tests/php/GraphQL/Legacy/Operations/PublishTest.php b/tests/php/GraphQL/Legacy/Operations/PublishTest.php index b6d6301e..adc6ad69 100644 --- a/tests/php/GraphQL/Legacy/Operations/PublishTest.php +++ b/tests/php/GraphQL/Legacy/Operations/PublishTest.php @@ -29,7 +29,7 @@ class PublishTest extends SapphireTest Fake::class, ]; - protected function setUp() + protected function setUp(): void { parent::setUp(); if (class_exists(Schema::class)) { @@ -45,7 +45,7 @@ public function testPublish() $publish = new Publish(Fake::class); $scaffold = $publish->scaffold($manager); - $this->assertInternalType('callable', $scaffold['resolve']); + $this->assertIsCallable($scaffold['resolve']); $record = new Fake(); $record->Name = 'First'; @@ -73,7 +73,7 @@ public function testPublish() $this->assertEquals('First', $result->Name); $this->expectException(Exception::class); - $this->expectExceptionMessageRegExp('/^Not allowed/'); + $this->expectExceptionMessageMatches('/^Not allowed/'); $scaffold['resolve']( null, [ diff --git a/tests/php/GraphQL/Legacy/Operations/ReadVersionsTest.php b/tests/php/GraphQL/Legacy/Operations/ReadVersionsTest.php index aa9ba8ef..76497ead 100644 --- a/tests/php/GraphQL/Legacy/Operations/ReadVersionsTest.php +++ b/tests/php/GraphQL/Legacy/Operations/ReadVersionsTest.php @@ -32,7 +32,7 @@ class ReadVersionsTest extends SapphireTest Fake::class, ]; - protected function setUp() + protected function setUp(): void { parent::setUp(); if (class_exists(Schema::class)) { @@ -50,10 +50,10 @@ public function testItThrowsIfAppliedToAnUnversionedObject() $readVersions = new ReadVersions(UnversionedWithField::class, 'Test'); $readVersions->setUsePagination(false); $scaffold = $readVersions->scaffold($manager); - $this->assertInternalType('callable', $scaffold['resolve']); + $this->assertIsCallable($scaffold['resolve']); $this->expectException(Exception::class); - $this->expectExceptionMessageRegExp('/must have the Versioned extension/'); + $this->expectExceptionMessageMatches('/must have the Versioned extension/'); $scaffold['resolve']( new UnversionedWithField(), [], @@ -71,10 +71,10 @@ public function testItThrowsIfYouCantReadStages() $readVersions = new ReadVersions(Fake::class, 'Test'); $readVersions->setUsePagination(false); $scaffold = $readVersions->scaffold($manager); - $this->assertInternalType('callable', $scaffold['resolve']); + $this->assertIsCallable($scaffold['resolve']); $this->expectException(Exception::class); - $this->expectExceptionMessageRegExp('/Cannot view versions/'); + $this->expectExceptionMessageMatches('/Cannot view versions/'); $scaffold['resolve']( new Fake(), [], @@ -92,7 +92,7 @@ public function testItReadsVersions() $readVersions = new ReadVersions(Fake::class, 'Test'); $readVersions->setUsePagination(false); $scaffold = $readVersions->scaffold($manager); - $this->assertInternalType('callable', $scaffold['resolve']); + $this->assertIsCallable($scaffold['resolve']); $this->logInWithPermission('ADMIN'); $member = Security::getCurrentUser(); diff --git a/tests/php/GraphQL/Legacy/Operations/RollbackTest.php b/tests/php/GraphQL/Legacy/Operations/RollbackTest.php index 4d84e679..abdc80eb 100644 --- a/tests/php/GraphQL/Legacy/Operations/RollbackTest.php +++ b/tests/php/GraphQL/Legacy/Operations/RollbackTest.php @@ -28,7 +28,7 @@ class RollbackTest extends SapphireTest FakeDataObjectStub::class, ]; - protected function setUp() + protected function setUp(): void { parent::setUp(); if (class_exists(Schema::class)) { @@ -36,12 +36,10 @@ protected function setUp() } } - /** - * @expectedException InvalidArgumentException - * @expectedExceptionMessage Current user does not have permission to roll back this resource - */ public function testRollbackCannotBePerformedWithoutEditPermission() { + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessage('Current user does not have permission to roll back this resource'); // Create a fake version of our stub $stub = FakeDataObjectStub::create(); $stub->Name = 'First'; @@ -76,7 +74,7 @@ protected function doMutation(DataObject $stub, $toVersion = 1, $member = null) $mutation = new Rollback($stubClass); $scaffold = $mutation->scaffold($manager); - $this->assertInternalType('callable', $scaffold['resolve'], 'Resolve function is scaffolded correctly'); + $this->assertIsCallable($scaffold['resolve'], 'Resolve function is scaffolded correctly'); $args = [ 'ID' => $stub->ID, diff --git a/tests/php/GraphQL/Legacy/Operations/UnpublishTest.php b/tests/php/GraphQL/Legacy/Operations/UnpublishTest.php index 32474536..d3dafbca 100644 --- a/tests/php/GraphQL/Legacy/Operations/UnpublishTest.php +++ b/tests/php/GraphQL/Legacy/Operations/UnpublishTest.php @@ -30,7 +30,7 @@ class UnpublishTest extends SapphireTest Fake::class, ]; - protected function setUp() + protected function setUp(): void { parent::setUp(); if (class_exists(Schema::class)) { @@ -46,7 +46,7 @@ public function testPublish() $publish = new Unpublish(Fake::class); $scaffold = $publish->scaffold($manager); - $this->assertInternalType('callable', $scaffold['resolve']); + $this->assertIsCallable($scaffold['resolve']); $record = new Fake(); $record->Name = 'First'; @@ -76,7 +76,7 @@ public function testPublish() $record->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE); $this->expectException(Exception::class); - $this->expectExceptionMessageRegExp('/^Not allowed/'); + $this->expectExceptionMessageMatches('/^Not allowed/'); $scaffold['resolve']( null, [ diff --git a/tests/php/GraphQL/Legacy/Resolvers/ApplyVersionFiltersTest.php b/tests/php/GraphQL/Legacy/Resolvers/ApplyVersionFiltersTest.php index 3e4c5086..34726e8f 100644 --- a/tests/php/GraphQL/Legacy/Resolvers/ApplyVersionFiltersTest.php +++ b/tests/php/GraphQL/Legacy/Resolvers/ApplyVersionFiltersTest.php @@ -23,7 +23,7 @@ class ApplyVersionFiltersTest extends SapphireTest Fake::class, ]; - protected function setUp() + protected function setUp(): void { parent::setUp(); if (class_exists(Schema::class)) { @@ -34,32 +34,32 @@ protected function setUp() public function testItValidatesArchiveDate() { $filter = new ApplyVersionFilters(); - $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessageRegExp('/ArchiveDate parameter/'); + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessageMatches('/ArchiveDate parameter/'); $filter->validateArgs(['Mode' => 'archive']); } public function testItValidatesArchiveDateFormat() { $filter = new ApplyVersionFilters(); - $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessageRegExp('/Invalid date/'); + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessageMatches('/Invalid date/'); $filter->validateArgs(['Mode' => 'archive', 'ArchiveDate' => '01/12/2018']); } public function testItValidatesStatusParameter() { $filter = new ApplyVersionFilters(); - $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessageRegExp('/Status parameter/'); + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessageMatches('/Status parameter/'); $filter->validateArgs(['Mode' => 'status']); } public function testItValidatesVersionParameter() { $filter = new ApplyVersionFilters(); - $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessageRegExp('/Version parameter/'); + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessageMatches('/Version parameter/'); $filter->validateArgs(['Mode' => 'version']); } @@ -105,8 +105,8 @@ public function testItFiltersByStageOnApplyToList() public function testItThrowsIfArchiveAndNoDateOnApplyToList() { $filter = new ApplyVersionFilters(); - $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessageRegExp('/ArchiveDate parameter/'); + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessageMatches('/ArchiveDate parameter/'); $list = Fake::get(); $filter->applyToList($list, ['Mode' => 'archive']); } @@ -114,8 +114,8 @@ public function testItThrowsIfArchiveAndNoDateOnApplyToList() public function testItThrowsIfArchiveAndInvalidDateOnApplyToList() { $filter = new ApplyVersionFilters(); - $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessageRegExp('/Invalid date/'); + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessageMatches('/Invalid date/'); $list = Fake::get(); $filter->applyToList($list, ['Mode' => 'archive', 'ArchiveDate' => 'foo']); } @@ -124,8 +124,8 @@ public function testItThrowsIfArchiveAndInvalidDateOnApplyToList() public function testItThrowsIfVersionAndNoVersionOnApplyToList() { $filter = new ApplyVersionFilters(); - $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessageRegExp('/Version parameter/'); + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessageMatches('/Version parameter/'); $list = Fake::get(); $filter->applyToList($list, ['Mode' => 'version']); } @@ -193,8 +193,8 @@ public function testItSetsAllVersionsQueryParamsOnApplyToList() public function testItThrowsOnNoStatusOnApplyToList() { $filter = new ApplyVersionFilters(); - $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessageRegExp('/Status parameter/'); + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessageMatches('/Status parameter/'); $list = Fake::get(); $filter->applyToList($list, ['Mode' => 'status']); } diff --git a/tests/php/GraphQL/Plugins/VersionedDataObjectPluginTest.php b/tests/php/GraphQL/Plugins/VersionedDataObjectPluginTest.php index 6aa3a619..488e6245 100644 --- a/tests/php/GraphQL/Plugins/VersionedDataObjectPluginTest.php +++ b/tests/php/GraphQL/Plugins/VersionedDataObjectPluginTest.php @@ -40,7 +40,7 @@ class VersionedDataObjectPluginTest extends SapphireTest Fake::class, ]; - protected function setUp() + protected function setUp(): void { parent::setUp(); if (!class_exists(Schema::class)) { diff --git a/tests/php/GraphQL/Plugins/VersionedReadTest.php b/tests/php/GraphQL/Plugins/VersionedReadTest.php index 2c99c0fa..699c27bb 100644 --- a/tests/php/GraphQL/Plugins/VersionedReadTest.php +++ b/tests/php/GraphQL/Plugins/VersionedReadTest.php @@ -34,7 +34,7 @@ class VersionedReadTest extends SapphireTest { - protected function setUp() + protected function setUp(): void { parent::setUp(); if (!class_exists(Schema::class)) { diff --git a/tests/php/GraphQL/Resolvers/VersionedFiltersTest.php b/tests/php/GraphQL/Resolvers/VersionedFiltersTest.php index 88277dd6..58f04641 100644 --- a/tests/php/GraphQL/Resolvers/VersionedFiltersTest.php +++ b/tests/php/GraphQL/Resolvers/VersionedFiltersTest.php @@ -23,7 +23,7 @@ class VersionedFiltersTest extends SapphireTest Fake::class, ]; - protected function setUp() + protected function setUp(): void { parent::setUp(); if (!class_exists(Schema::class)) { @@ -34,32 +34,32 @@ protected function setUp() public function testItValidatesArchiveDate() { $filter = new VersionFilters(); - $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessageRegExp('/ArchiveDate parameter/'); + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessageMatches('/ArchiveDate parameter/'); $filter->validateArgs(['mode' => 'archive']); } public function testItValidatesArchiveDateFormat() { $filter = new VersionFilters(); - $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessageRegExp('/Invalid date/'); + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessageMatches('/Invalid date/'); $filter->validateArgs(['mode' => 'archive', 'archiveDate' => '01/12/2018']); } public function testItValidatesStatusParameter() { $filter = new VersionFilters(); - $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessageRegExp('/Status parameter/'); + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessageMatches('/Status parameter/'); $filter->validateArgs(['mode' => 'status']); } public function testItValidatesVersionParameter() { $filter = new VersionFilters(); - $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessageRegExp('/Version parameter/'); + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessageMatches('/Version parameter/'); $filter->validateArgs(['mode' => 'version']); } @@ -105,8 +105,8 @@ public function testItFiltersByStageOnApplyToList() public function testItThrowsIfArchiveAndNoDateOnApplyToList() { $filter = new VersionFilters(); - $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessageRegExp('/ArchiveDate parameter/'); + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessageMatches('/ArchiveDate parameter/'); $list = Fake::get(); $filter->applyToList($list, ['mode' => 'archive']); } @@ -114,8 +114,8 @@ public function testItThrowsIfArchiveAndNoDateOnApplyToList() public function testItThrowsIfArchiveAndInvalidDateOnApplyToList() { $filter = new VersionFilters(); - $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessageRegExp('/Invalid date/'); + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessageMatches('/Invalid date/'); $list = Fake::get(); $filter->applyToList($list, ['mode' => 'archive', 'archiveDate' => 'foo']); } @@ -124,8 +124,8 @@ public function testItThrowsIfArchiveAndInvalidDateOnApplyToList() public function testItThrowsIfVersionAndNoVersionOnApplyToList() { $filter = new VersionFilters(); - $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessageRegExp('/Version parameter/'); + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessageMatches('/Version parameter/'); $list = Fake::get(); $filter->applyToList($list, ['mode' => 'version']); } @@ -193,8 +193,8 @@ public function testItSetsAllVersionsQueryParamsOnApplyToList() public function testItThrowsOnNoStatusOnApplyToList() { $filter = new VersionFilters(); - $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessageRegExp('/Status parameter/'); + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessageMatches('/Status parameter/'); $list = Fake::get(); $filter->applyToList($list, ['mode' => 'status']); } diff --git a/tests/php/GraphQL/Resolvers/VersionedResolverTest.php b/tests/php/GraphQL/Resolvers/VersionedResolverTest.php index 20aa6d22..a803fef0 100644 --- a/tests/php/GraphQL/Resolvers/VersionedResolverTest.php +++ b/tests/php/GraphQL/Resolvers/VersionedResolverTest.php @@ -33,7 +33,7 @@ class VersionedResolverTest extends SapphireTest FakeDataObjectStub::class, ]; - protected function setUp() + protected function setUp(): void { parent::setUp(); if (!class_exists(Schema::class)) { @@ -142,7 +142,7 @@ public function testCopyToStage() $this->assertEquals('Second', $recordLive->Title); // Test error - $this->expectException(InvalidArgumentException::class); + $this->expectException(\InvalidArgumentException::class); $resolve( null, [ @@ -188,7 +188,7 @@ public function testPublish() $this->assertEquals('First', $result->Name); $this->expectException(Exception::class); - $this->expectExceptionMessageRegExp('/^Not allowed/'); + $this->expectExceptionMessageMatches('/^Not allowed/'); $resolve( null, [ @@ -233,7 +233,7 @@ public function testUnpublish() $record->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE); $this->expectException(Exception::class); - $this->expectExceptionMessageRegExp('/^Not allowed/'); + $this->expectExceptionMessageMatches('/^Not allowed/'); $doResolve( null, [ @@ -244,13 +244,12 @@ public function testUnpublish() ); } - /** - * @expectedException InvalidArgumentException - * @expectedExceptionMessage Current user does not have permission to roll back this resource - */ public function testRollbackCannotBePerformedWithoutEditPermission() { // Create a fake version of our stub + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessageMatches('/Current user does not have permission to roll back this resource/'); + $stub = FakeDataObjectStub::create(); $stub->Name = 'First'; $stub->Editable = false; diff --git a/tests/php/GridFieldArchiveActionTest.php b/tests/php/GridFieldArchiveActionTest.php index 138ba926..1bfd60c8 100644 --- a/tests/php/GridFieldArchiveActionTest.php +++ b/tests/php/GridFieldArchiveActionTest.php @@ -25,7 +25,7 @@ class GridFieldArchiveActionTest extends SapphireTest TestObject::class, ]; - protected function setUp() + protected function setUp(): void { parent::setUp(); $this->logInWithPermission('ADMIN'); diff --git a/tests/php/GridFieldRestoreActionTest.php b/tests/php/GridFieldRestoreActionTest.php index 659b4a5b..9003f15d 100644 --- a/tests/php/GridFieldRestoreActionTest.php +++ b/tests/php/GridFieldRestoreActionTest.php @@ -45,7 +45,7 @@ class GridFieldRestoreActionTest extends SapphireTest VersionedTest\TestObject::class ]; - protected function setUp() + protected function setUp(): void { parent::setUp(); $this->list = new DataList(VersionedTest\TestObject::class); diff --git a/tests/php/ReadingModeTest.php b/tests/php/ReadingModeTest.php index d2e048a8..4861a261 100644 --- a/tests/php/ReadingModeTest.php +++ b/tests/php/ReadingModeTest.php @@ -152,7 +152,7 @@ public function provideReadingModes() */ public function testInvalidStage($stage) { - $this->expectException(InvalidArgumentException::class); + $this->expectException(\InvalidArgumentException::class); ReadingMode::validateStage($stage); } diff --git a/tests/php/VersionedCascadeDeletesTest.php b/tests/php/VersionedCascadeDeletesTest.php index 1d7bd5e4..86667018 100644 --- a/tests/php/VersionedCascadeDeletesTest.php +++ b/tests/php/VersionedCascadeDeletesTest.php @@ -19,7 +19,7 @@ class VersionedCascadeDeletesTest extends SapphireTest VersionedCascadeDeletesTest\RelatedObject::class, ]; - protected function setUp() + protected function setUp(): void { parent::setUp(); Versioned::set_stage(Versioned::DRAFT); diff --git a/tests/php/VersionedManyManyThroughListTest.php b/tests/php/VersionedManyManyThroughListTest.php index 93f9526d..2bfe0aea 100644 --- a/tests/php/VersionedManyManyThroughListTest.php +++ b/tests/php/VersionedManyManyThroughListTest.php @@ -20,13 +20,13 @@ class VersionedManyManyThroughListTest extends SapphireTest VersionedManyManyThroughListTest\VersionedObject::class, ]; - public function setUp() + protected function setUp(): void { parent::setUp(); DataObject::reset(); } - public function tearDown() + protected function tearDown(): void { DataObject::reset(); parent::tearDown(); diff --git a/tests/php/VersionedNumberCacheTest.php b/tests/php/VersionedNumberCacheTest.php index cd955533..cf4bde41 100644 --- a/tests/php/VersionedNumberCacheTest.php +++ b/tests/php/VersionedNumberCacheTest.php @@ -29,7 +29,7 @@ class VersionedNumberCacheTest extends SapphireTest private static $expectedVersions = [ ]; - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { parent::setUpBeforeClass(); @@ -61,7 +61,7 @@ public static function setUpBeforeClass() ]; } - public function setUp() + protected function setUp(): void { parent::setUp(); TestObject::singleton()->flushCache(); diff --git a/tests/php/VersionedOwnershipTest.php b/tests/php/VersionedOwnershipTest.php index d2c6b66e..a1b8a0d9 100644 --- a/tests/php/VersionedOwnershipTest.php +++ b/tests/php/VersionedOwnershipTest.php @@ -39,7 +39,7 @@ class VersionedOwnershipTest extends SapphireTest protected static $fixture_file = 'VersionedOwnershipTest.yml'; - public function setUp() + protected function setUp(): void { parent::setUp(); diff --git a/tests/php/VersionedTest.php b/tests/php/VersionedTest.php index 8cb920f0..9728608a 100644 --- a/tests/php/VersionedTest.php +++ b/tests/php/VersionedTest.php @@ -5,6 +5,7 @@ use DateTime; use InvalidArgumentException; use ReflectionMethod; +use DMS\PHPUnitExtensions\ArraySubset\ArraySubsetAsserts; use SilverStripe\Control\Controller; use SilverStripe\Control\Director; use SilverStripe\Control\HTTPRequest; @@ -26,6 +27,7 @@ class VersionedTest extends SapphireTest { + use ArraySubsetAsserts; protected static $fixture_file = 'VersionedTest.yml'; @@ -172,7 +174,7 @@ public function testInvalidPublish() $obj->ExtraField = 'Foo'; // ensure that child version table gets written $obj->write(); $class = VersionedTest\TestObject::class; - $this->expectException(InvalidArgumentException::class); + $this->expectException(\InvalidArgumentException::class); $this->expectExceptionMessage("Can't find {$class}#{$obj->ID} in stage Live"); // Fail publishing from live to stage @@ -1070,7 +1072,7 @@ public function testReadingNotPersistentWhenUseSessionFalse() */ protected static $defaultController; - protected function setUp() + protected function setUp(): void { if (!static::$defaultController && Controller::has_curr()) { static::$defaultController = Controller::curr();