From cde9dc917ad9a93ca4955e608c4a08ad14c5b88e Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Thu, 22 Jun 2017 17:15:17 +1200 Subject: [PATCH] FIX SS4 compatibility updates, PSR-4 in tests, table_name in stubs --- src/.upgrade.yml => .upgrade.yml | 0 composer.json | 3 +- tests/StringTagFieldTest.php | 60 ++--------- tests/StringTagFieldTest.yml | 4 +- tests/Stub/StringTagFieldTestBlogPost.php | 17 +++ tests/Stub/StringTagFieldTestController.php | 32 ++++++ tests/Stub/TagFieldTestBlogPost.php | 21 ++++ tests/Stub/TagFieldTestBlogTag.php | 22 ++++ tests/Stub/TagFieldTestController.php | 33 ++++++ tests/TagFieldTest.php | 112 ++++---------------- tests/TagFieldTest.yml | 6 +- 11 files changed, 161 insertions(+), 149 deletions(-) rename src/.upgrade.yml => .upgrade.yml (100%) create mode 100644 tests/Stub/StringTagFieldTestBlogPost.php create mode 100644 tests/Stub/StringTagFieldTestController.php create mode 100644 tests/Stub/TagFieldTestBlogPost.php create mode 100644 tests/Stub/TagFieldTestBlogTag.php create mode 100644 tests/Stub/TagFieldTestController.php diff --git a/src/.upgrade.yml b/.upgrade.yml similarity index 100% rename from src/.upgrade.yml rename to .upgrade.yml diff --git a/composer.json b/composer.json index 7f49a93..b26e860 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,8 @@ }, "autoload": { "psr-4": { - "SilverStripe\\TagField\\": "src/" + "SilverStripe\\TagField\\": "src/", + "SilverStripe\\TagField\\Tests\\": "tests/" } }, "extra": { diff --git a/tests/StringTagFieldTest.php b/tests/StringTagFieldTest.php index 7f39e70..0840b3e 100755 --- a/tests/StringTagFieldTest.php +++ b/tests/StringTagFieldTest.php @@ -1,14 +1,11 @@ objFromFixture( - 'StringTagFieldTestBlogPost', + StringTagFieldTestBlogPost::class, $name ); } @@ -124,46 +121,3 @@ class StringTagFieldTest extends SapphireTest ); } } - -/** - * @property string $Tags - */ -class StringTagFieldTestBlogPost extends DataObject implements TestOnly -{ - /** - * @var array - */ - private static $db = array( - 'Title' => 'Text', - 'Content' => 'Text', - 'Tags' => 'Text', - ); -} - -class StringTagFieldTestController extends Controller implements TestOnly -{ - /** - * @return Form - */ - public function StringTagFieldTestForm() - { - $fields = new FieldList( - $tagField = new StringTagField('Tags') - ); - - $actions = new FieldList( - new FormAction('StringTagFieldTestFormSubmit') - ); - - return new Form($this, 'StringTagFieldTestForm', $fields, $actions); - } - - /** - * @param DataObject $dataObject - * @param Form $form - */ - public function StringTagFieldTestFormSubmit(DataObject $dataObject, Form $form) - { - $form->saveInto($dataObject); - } -} diff --git a/tests/StringTagFieldTest.yml b/tests/StringTagFieldTest.yml index f69456e..e0163b9 100755 --- a/tests/StringTagFieldTest.yml +++ b/tests/StringTagFieldTest.yml @@ -1,6 +1,6 @@ -StringTagFieldTestBlogPost: +SilverStripe\TagField\Tests\Stub\StringTagFieldTestBlogPost: BlogPost1: Title: BlogPost1 BlogPost2: Title: BlogPost2 - Tags: Tag1,Tag2 \ No newline at end of file + Tags: Tag1,Tag2 diff --git a/tests/Stub/StringTagFieldTestBlogPost.php b/tests/Stub/StringTagFieldTestBlogPost.php new file mode 100644 index 0000000..d12ff30 --- /dev/null +++ b/tests/Stub/StringTagFieldTestBlogPost.php @@ -0,0 +1,17 @@ + 'Text', + 'Content' => 'Text', + 'Tags' => 'Text', + ]; +} diff --git a/tests/Stub/StringTagFieldTestController.php b/tests/Stub/StringTagFieldTestController.php new file mode 100644 index 0000000..9265183 --- /dev/null +++ b/tests/Stub/StringTagFieldTestController.php @@ -0,0 +1,32 @@ +saveInto($dataObject); + } +} diff --git a/tests/Stub/TagFieldTestBlogPost.php b/tests/Stub/TagFieldTestBlogPost.php new file mode 100644 index 0000000..e999297 --- /dev/null +++ b/tests/Stub/TagFieldTestBlogPost.php @@ -0,0 +1,21 @@ + 'Text', + 'Content' => 'Text' + ]; + + private static $many_many = [ + 'Tags' => TagFieldTestBlogTag::class + ]; +} diff --git a/tests/Stub/TagFieldTestBlogTag.php b/tests/Stub/TagFieldTestBlogTag.php new file mode 100644 index 0000000..e01ea4b --- /dev/null +++ b/tests/Stub/TagFieldTestBlogTag.php @@ -0,0 +1,22 @@ + 'Varchar(200)' + ]; + + private static $belongs_many_many = [ + 'BlogPosts' => TagFieldTestBlogPost::class + ]; +} diff --git a/tests/Stub/TagFieldTestController.php b/tests/Stub/TagFieldTestController.php new file mode 100644 index 0000000..af5df39 --- /dev/null +++ b/tests/Stub/TagFieldTestController.php @@ -0,0 +1,33 @@ +saveInto($dataObject); + } +} diff --git a/tests/TagFieldTest.php b/tests/TagFieldTest.php index e26b2ba..50c27d8 100755 --- a/tests/TagFieldTest.php +++ b/tests/TagFieldTest.php @@ -1,15 +1,18 @@ getNewTagFieldTestBlogPost('BlogPost1'); - $field = new TagField('Tags', '', new DataList('TagFieldTestBlogTag')); + $field = new TagField('Tags', '', new DataList(TagFieldTestBlogTag::class)); $field->setValue(array('Tag3', 'Tag4')); $field->saveInto($record); $record->write(); @@ -50,7 +53,7 @@ class TagFieldTest extends SapphireTest protected function getNewTagFieldTestBlogPost($name) { return $this->objFromFixture( - 'TagFieldTestBlogPost', + TagFieldTestBlogPost::class, $name ); } @@ -87,7 +90,7 @@ class TagFieldTest extends SapphireTest $record = $this->getNewTagFieldTestBlogPost('BlogPost1'); $record->write(); - $field = new TagField('Tags', '', new DataList('TagFieldTestBlogTag')); + $field = new TagField('Tags', '', new DataList(TagFieldTestBlogTag::class)); $field->setValue(array('Tag3', 'Tag4')); $field->saveInto($record); @@ -101,7 +104,7 @@ class TagFieldTest extends SapphireTest { $record = $this->getNewTagFieldTestBlogPost('BlogPost1'); - $field = new TagField('Tags', '', new DataList('TagFieldTestBlogTag')); + $field = new TagField('Tags', '', new DataList(TagFieldTestBlogTag::class)); $field->setValue(array('Tag1', 'Tag2')); $field->saveInto($record); @@ -118,7 +121,7 @@ class TagFieldTest extends SapphireTest $record = $this->getNewTagFieldTestBlogPost('BlogPost1'); $record->write(); - $field = new TagField('Tags', '', new DataList('TagFieldTestBlogTag')); + $field = new TagField('Tags', '', new DataList(TagFieldTestBlogTag::class)); $field->setValue(array('Tag1', 'Tag2')); $field->saveInto($record); @@ -135,7 +138,7 @@ class TagFieldTest extends SapphireTest { $record = $this->getNewTagFieldTestBlogPost('BlogPost2'); $record->write(); - $tag2ID = $this->idFromFixture('TagFieldTestBlogTag', 'Tag2'); + $tag2ID = $this->idFromFixture(TagFieldTestBlogTag::class, 'Tag2'); // Check tags before write $this->compareExpectedAndActualTags( @@ -149,7 +152,7 @@ class TagFieldTest extends SapphireTest $this->assertContains($tag2ID, TagFieldTestBlogTag::get()->column('ID')); // Write new tags - $field = new TagField('Tags', '', new DataList('TagFieldTestBlogTag')); + $field = new TagField('Tags', '', new DataList(TagFieldTestBlogTag::class)); $field->setValue(array('222', 'Tag3')); $field->saveInto($record); @@ -169,7 +172,7 @@ class TagFieldTest extends SapphireTest public function testItSuggestsTags() { - $field = new TagField('Tags', '', new DataList('TagFieldTestBlogTag')); + $field = new TagField('Tags', '', new DataList(TagFieldTestBlogTag::class)); /** * Partial tag title match. @@ -274,13 +277,13 @@ class TagFieldTest extends SapphireTest new TagFieldTestController($record), 'Form', new FieldList( - $field = new TagField('Tags', '', new DataList('TagFieldTestBlogTag')) + $field = new TagField('Tags', '', new DataList(TagFieldTestBlogTag::class)) ), new FieldList() ); $form->loadDataFrom( - $this->objFromFixture('TagFieldTestBlogPost', 'BlogPost2') + $this->objFromFixture(TagFieldTestBlogPost::class, 'BlogPost2') ); $ids = TagFieldTestBlogTag::get()->column('Title'); @@ -299,14 +302,14 @@ class TagFieldTest extends SapphireTest $tag = TagFieldTestBlogTag::get()->filter('Title', 'Tag1')->first(); - $field = new TagField('Tags', '', new DataList('TagFieldTestBlogTag'), array($tag->Title, 'Tag3')); + $field = new TagField('Tags', '', new DataList(TagFieldTestBlogTag::class), array($tag->Title, 'Tag3')); $field->setCanCreate(false); $field->saveInto($record); /** * @var TagFieldTestBlogPost $record */ - $record = DataObject::get_by_id('TagFieldTestBlogPost', $record->ID); + $record = DataObject::get_by_id(TagFieldTestBlogPost::class, $record->ID); $this->compareExpectedAndActualTags( array('Tag1'), @@ -340,74 +343,3 @@ class TagFieldTest extends SapphireTest ); } } - -class TagFieldTestBlogTag extends DataObject implements TestOnly -{ - /** - * @var string - */ - private static $default_sort = '"TagFieldTestBlogTag"."ID" ASC'; - - /** - * @var array - */ - private static $db = array( - 'Title' => 'Varchar(200)' - ); - - /** - * @var array - */ - private static $belongs_many_many = array( - 'BlogPosts' => 'TagFieldTestBlogPost' - ); -} - -/** - * @method ManyManyList Tags() - */ -class TagFieldTestBlogPost extends DataObject implements TestOnly -{ - /** - * @var array - */ - private static $db = array( - 'Title' => 'Text', - 'Content' => 'Text' - ); - - /** - * @var array - */ - private static $many_many = array( - 'Tags' => 'TagFieldTestBlogTag' - ); -} - -class TagFieldTestController extends Controller implements TestOnly -{ - /** - * @return Form - */ - public function TagFieldTestForm() - { - $fields = new FieldList( - $tagField = new TagField('Tags', '', new DataList('TagFieldTestBlogTag')) - ); - - $actions = new FieldList( - new FormAction('TagFieldTestFormSubmit') - ); - - return new Form($this, 'TagFieldTestForm', $fields, $actions); - } - - /** - * @param DataObject $dataObject - * @param Form $form - */ - public function TagFieldTestFormSubmit(DataObject $dataObject, Form $form) - { - $form->saveInto($dataObject); - } -} diff --git a/tests/TagFieldTest.yml b/tests/TagFieldTest.yml index 00607a8..750e0a0 100755 --- a/tests/TagFieldTest.yml +++ b/tests/TagFieldTest.yml @@ -1,11 +1,11 @@ -TagFieldTestBlogTag: +SilverStripe\TagField\Tests\Stub\TagFieldTestBlogTag: Tag1: Title: Tag1 Tag2: Title: 222 -TagFieldTestBlogPost: +SilverStripe\TagField\Tests\Stub\TagFieldTestBlogPost: BlogPost1: Title: BlogPost1 BlogPost2: Title: BlogPost2 - Tags: =>TagFieldTestBlogTag.Tag1,=>TagFieldTestBlogTag.Tag2 + Tags: =>SilverStripe\TagField\Tests\Stub\TagFieldTestBlogTag.Tag1,=>SilverStripe\TagField\Tests\Stub\TagFieldTestBlogTag.Tag2