From cb94bbe5e0721f6ad4ae89c266cea70c138b5255 Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Fri, 1 Sep 2017 13:33:54 +1200 Subject: [PATCH] FIX Update remaining unit tests, separate stubs, add PSR-4 autoloader --- composer.json | 3 +- tests/GridFieldAddNewMultiClassTest.php | 48 +++-------- ...ieldAddNewMultiClassWithNamespacesTest.php | 32 ++------ tests/GridFieldConfigurablePaginatorTest.php | 2 + tests/GridFieldOrderableRowsTest.php | 79 ++++--------------- tests/GridFieldOrderableRowsTest.yml | 23 ++++-- tests/Stub/NamespacedClass.php | 18 +++++ tests/Stub/StubA.php | 19 +++++ tests/Stub/StubB.php | 9 +++ tests/Stub/StubC.php | 9 +++ tests/Stub/StubOrdered.php | 23 ++++++ tests/Stub/StubParent.php | 24 ++++++ tests/Stub/StubSubclass.php | 11 +++ 13 files changed, 169 insertions(+), 131 deletions(-) create mode 100644 tests/Stub/NamespacedClass.php create mode 100644 tests/Stub/StubA.php create mode 100644 tests/Stub/StubB.php create mode 100644 tests/Stub/StubC.php create mode 100644 tests/Stub/StubOrdered.php create mode 100644 tests/Stub/StubParent.php create mode 100644 tests/Stub/StubSubclass.php diff --git a/composer.json b/composer.json index ecb98fa..f8bca21 100644 --- a/composer.json +++ b/composer.json @@ -42,7 +42,8 @@ }, "autoload": { "psr-4": { - "Symbiote\\GridFieldExtensions\\": "src/" + "Symbiote\\GridFieldExtensions\\": "src/", + "Symbiote\\GridFieldExtensions\\Tests\\": "tests/" } }, "prefer-stable": true, diff --git a/tests/GridFieldAddNewMultiClassTest.php b/tests/GridFieldAddNewMultiClassTest.php index e997053..1741f08 100644 --- a/tests/GridFieldAddNewMultiClassTest.php +++ b/tests/GridFieldAddNewMultiClassTest.php @@ -1,9 +1,14 @@ setModelClass('GridFieldAddNewMultiClassTest_A'); + $grid->setModelClass(StubA::class); $component = new GridFieldAddNewMultiClass(); $this->assertEquals( array( - 'GridFieldAddNewMultiClassTest_A' => 'A', - 'GridFieldAddNewMultiClassTest_B' => 'B', - 'GridFieldAddNewMultiClassTest_C' => 'C' + 'Symbiote-GridFieldExtensions-Tests-Stub-StubA' => 'A', + 'Symbiote-GridFieldExtensions-Tests-Stub-StubB' => 'B', + 'Symbiote-GridFieldExtensions-Tests-Stub-StubC' => 'C' ), $component->getClasses($grid), 'Subclasses are populated by default and sorted' ); $component->setClasses(array( - 'GridFieldAddNewMultiClassTest_B' => 'Custom Title', - 'GridFieldAddNewMultiClassTest_A' + StubB::class => 'Custom Title', + StubA::class )); $this->assertEquals( array( - 'GridFieldAddNewMultiClassTest_B' => 'Custom Title', - 'GridFieldAddNewMultiClassTest_A' => 'A' + 'Symbiote-GridFieldExtensions-Tests-Stub-StubB' => 'Custom Title', + 'Symbiote-GridFieldExtensions-Tests-Stub-StubA' => 'A' ), $component->getClasses($grid), 'Sorting and custom titles can be specified' ); } } - -/**#@+ - * @ignore - */ - -class GridFieldAddNewMultiClassTest_A implements TestOnly -{ - public function i18n_singular_name() - { - $class = get_class($this); - return substr($class, strpos($class, '_') + 1); - } - - public function canCreate() - { - return true; - } -} - -class GridFieldAddNewMultiClassTest_B extends GridFieldAddNewMultiClassTest_A implements TestOnly -{ -} -class GridFieldAddNewMultiClassTest_C extends GridFieldAddNewMultiClassTest_A implements TestOnly -{ -} - -/**#@-*/ diff --git a/tests/GridFieldAddNewMultiClassWithNamespacesTest.php b/tests/GridFieldAddNewMultiClassWithNamespacesTest.php index e7187e2..f683379 100644 --- a/tests/GridFieldAddNewMultiClassWithNamespacesTest.php +++ b/tests/GridFieldAddNewMultiClassWithNamespacesTest.php @@ -1,6 +1,6 @@ setModelClass('Symbiote\\Test\\NamespacedClass'); + $grid->setModelClass(NamespacedClass::class); $component = new GridFieldAddNewMultiClass(); $this->assertEquals( array( - 'Symbiote-Test-NamespacedClass' => 'NamespacedClass' + 'Symbiote-GridFieldExtensions-Tests-Stub-NamespacedClass' => 'NamespacedClass' ), $component->getClasses($grid), 'Namespaced classes are sanitised' @@ -36,36 +37,17 @@ class GridFieldAddNewMultiClassWithNamespacesTest extends SapphireTest { $grid = new GridField('TestGridField'); $grid->getConfig()->addComponent(new GridFieldDetailForm()); - $grid->setModelClass('Symbiote\\Test\\NamespacedClass'); + $grid->setModelClass(NamespacedClass::class); $grid->setForm(Form::create(Controller::create(), 'test', FieldList::create(), FieldList::create())); $request = new HTTPRequest('POST', 'test'); - $request->setRouteParams(array('ClassName' => 'Symbiote-Test-NamespacedClass')); + $request->setRouteParams(array('ClassName' => 'Symbiote-GridFieldExtensions-Tests-Stub-NamespacedClass')); $component = new GridFieldAddNewMultiClass(); $response = $component->handleAdd($grid, $request); $record = new \ReflectionProperty(GridFieldAddNewMultiClassHandler::class, 'record'); $record->setAccessible(true); - $this->assertInstanceOf('Symbiote\\Test\\NamespacedClass', $record->getValue($response)); + $this->assertInstanceOf(NamespacedClass::class, $record->getValue($response)); } } - -/**#@+ - * @ignore - */ - -class NamespacedClass implements TestOnly -{ - public function i18n_singular_name() - { - return 'NamespacedClass'; - } - - public function canCreate() - { - return true; - } -} - -/**#@-*/ diff --git a/tests/GridFieldConfigurablePaginatorTest.php b/tests/GridFieldConfigurablePaginatorTest.php index 7681d78..a8b4418 100644 --- a/tests/GridFieldConfigurablePaginatorTest.php +++ b/tests/GridFieldConfigurablePaginatorTest.php @@ -1,5 +1,7 @@ markTestSkipped('Upgrade to 4.0: Needs to be re-implemented.'); - } - public function testReorderItems() { $orderable = new GridFieldOrderableRows('ManyManySort'); $reflection = new ReflectionMethod($orderable, 'executeReorder'); $reflection->setAccessible(true); - $parent = $this->objFromFixture('GridFieldOrderableRowsTest_Parent', 'parent'); + $parent = $this->objFromFixture(StubParent::class, 'parent'); $config = new GridFieldConfig_RelationEditor(); $config->addComponent($orderable); @@ -71,70 +69,27 @@ class GridFieldOrderableRowsTest extends SapphireTest { $orderable = new GridFieldOrderableRows(); - $parent = new GridFieldOrderableRowsTest_Parent(); + $parent = new StubParent(); $parent->write(); $this->assertEquals( - 'GridFieldOrderableRowsTest_Ordered', + 'StubOrdered', $orderable->getSortTable($parent->MyHasMany()) ); $this->assertEquals( - 'GridFieldOrderableRowsTest_Ordered', + 'StubOrdered', $orderable->getSortTable($parent->MyHasManySubclass()) ); $this->assertEquals( - 'GridFieldOrderableRowsTest_Ordered', + 'StubOrdered', $orderable->getSortTable($parent->MyManyMany()) ); $this->assertEquals( - 'GridFieldOrderableRowsTest_Parent_MyManyMany', + 'StubParent_MyManyMany', $orderable->setSortField('ManyManySort')->getSortTable($parent->MyManyMany()) ); } } - -/**#@+ - * @ignore - */ - -class GridFieldOrderableRowsTest_Parent extends DataObject implements TestOnly -{ - - private static $has_many = array( - 'MyHasMany' => 'GridFieldOrderableRowsTest_Ordered', - 'MyHasManySubclass' => 'GridFieldOrderableRowsTest_Subclass' - ); - - private static $many_many = array( - 'MyManyMany' => 'GridFieldOrderableRowsTest_Ordered' - ); - - private static $many_many_extraFields = array( - 'MyManyMany' => array('ManyManySort' => 'Int') - ); -} - -class GridFieldOrderableRowsTest_Ordered extends DataObject implements TestOnly -{ - - private static $db = array( - 'Sort' => 'Int' - ); - - private static $has_one = array( - 'Parent' => 'GridFieldOrderableRowsTest_Parent' - ); - - private static $belongs_many_many =array( - 'MyManyMany' => 'GridFieldOrderableRowsTest_Parent', - ); -} - -class GridFieldOrderableRowsTest_Subclass extends GridFieldOrderableRowsTest_Ordered implements TestOnly -{ -} - -/**#@-*/ diff --git a/tests/GridFieldOrderableRowsTest.yml b/tests/GridFieldOrderableRowsTest.yml index 30b7e79..c40f34c 100644 --- a/tests/GridFieldOrderableRowsTest.yml +++ b/tests/GridFieldOrderableRowsTest.yml @@ -1,22 +1,29 @@ -GridFieldOrderableRowsTest_Ordered: +Symbiote\GridFieldExtensions\Tests\Stub\StubOrdered: item1: + Sort: 1 item2: + Sort: 2 item3: + Sort: 3 item4: + Sort: 4 item5: + Sort: 5 item6: -GridFieldOrderableRowsTest_Parent: + Sort: 6 + +Symbiote\GridFieldExtensions\Tests\Stub\StubParent: parent: MyManyMany: - - 0: =>GridFieldOrderableRowsTest_Ordered.item1 + - =>Symbiote\GridFieldExtensions\Tests\Stub\StubOrdered.item1: ManyManySort: 1 - - 1: =>GridFieldOrderableRowsTest_Ordered.item2 + - =>Symbiote\GridFieldExtensions\Tests\Stub\StubOrdered.item2: ManyManySort: 1 - - 2: =>GridFieldOrderableRowsTest_Ordered.item3 + - =>Symbiote\GridFieldExtensions\Tests\Stub\StubOrdered.item3: ManyManySort: 2 - - 3: =>GridFieldOrderableRowsTest_Ordered.item4 + - =>Symbiote\GridFieldExtensions\Tests\Stub\StubOrdered.item4: ManyManySort: 2 - - 4: =>GridFieldOrderableRowsTest_Ordered.item5 + - =>Symbiote\GridFieldExtensions\Tests\Stub\StubOrdered.item5: ManyManySort: 108 - - 5: =>GridFieldOrderableRowsTest_Ordered.item6 + - =>Symbiote\GridFieldExtensions\Tests\Stub\StubOrdered.item6: ManyManySort: 108 diff --git a/tests/Stub/NamespacedClass.php b/tests/Stub/NamespacedClass.php new file mode 100644 index 0000000..4c79128 --- /dev/null +++ b/tests/Stub/NamespacedClass.php @@ -0,0 +1,18 @@ + 'Int' + ); + + private static $has_one = array( + 'Parent' => StubParent::class + ); + + private static $belongs_many_many =array( + 'MyManyMany' => StubParent::class, + ); + + private static $table_name = 'StubOrdered'; +} diff --git a/tests/Stub/StubParent.php b/tests/Stub/StubParent.php new file mode 100644 index 0000000..7d60a11 --- /dev/null +++ b/tests/Stub/StubParent.php @@ -0,0 +1,24 @@ + StubOrdered::class, + 'MyHasManySubclass' => StubSubclass::class + ); + + private static $many_many = array( + 'MyManyMany' => StubOrdered::class + ); + + private static $many_many_extraFields = array( + 'MyManyMany' => array('ManyManySort' => 'Int') + ); + + private static $table_name = 'StubParent'; +} diff --git a/tests/Stub/StubSubclass.php b/tests/Stub/StubSubclass.php new file mode 100644 index 0000000..90434f0 --- /dev/null +++ b/tests/Stub/StubSubclass.php @@ -0,0 +1,11 @@ +