Source of file ElementBlogPostsTest.php
Size: 3,186 Bytes - Last Modified: 2020-02-05T10:09:43+00:00
/var/www/docs.ssmods.com/process/src/tests/Elements/ElementBlogPostsTest.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | <?php namespace Dynamic\Elements\Blog\Elements\Tests; use Dynamic\Elements\Blog\Elements\ElementBlogPosts; use SilverStripe\Blog\Model\Blog; use SilverStripe\Blog\Model\BlogCategory; use SilverStripe\Blog\Model\BlogPost; use SilverStripe\Dev\SapphireTest; use SilverStripe\Forms\FieldList; use SilverStripe\ORM\DataList; use SilverStripe\ORM\SS_List; class ElementBlogPostsTest extends SapphireTest { /** * @var string */ protected static $fixture_file = '../fixtures.yml'; /** * */ public function testGetSummary() { $object = $this->objFromFixture(ElementBlogPosts::class, 'one'); $count = $object->getPostsList()->count(); $this->assertEquals( $object->getSummary(), _t( BlogPost::class . 'PLURALS', 'A Blog Post|{count} Blog Posts', ['count' => $count] ) ); } /** * */ public function testGetType() { $object = $this->objFromFixture(ElementBlogPosts::class, 'one'); $this->assertEquals($object->getType(), 'Blog Posts'); } /** * */ public function testGetCMSFields() { $object = $this->objFromFixture(ElementBlogPosts::class, 'one'); $fields = $object->getCMSFields(); $this->assertInstanceOf(FieldList::class, $fields); $this->assertNotNull($fields->dataFieldByName('BlogID')); } /** * */ public function testGetPostsList() { $object = $this->objFromFixture(ElementBlogPosts::class, 'one'); $this->compareList( $object->Blog()->getBlogPosts()->limit($object->Limit), $object->getPostsList(), 'Should only return blog post assign to blog page' ); $object = $this->objFromFixture(ElementBlogPosts::class, 'targetCategory'); $category = $this->objFromFixture(BlogCategory::class, 'category'); $this->compareList( $category->BlogPosts()->limit($object->Limit), $object->getPostsList(), 'Should only return blog post assign to blog category' ); $object = $this->objFromFixture(ElementBlogPosts::class, 'noTarget'); $this->compareList( BlogPost::get()->limit($object->Limit), $object->getPostsList(), 'Should return all blog posts' ); $object = $this->objFromFixture(ElementBlogPosts::class, 'badTarget'); $this->compareList( BlogPost::get()->limit($object->Limit), $object->getPostsList(), 'When ElementalBlogPost is misconfigured shoudl return all blog post' ); } /** * Compare entries in $expected to entries in actual * @param DataList $expected * @param DataList $actual * @param string $message */ private function compareList(DataList $expected, DataList $actual, $message = '') { $expectedArray = $expected->map('ID', 'ClassName')->toArray(); $actualArray = $expected->map('ID', 'ClassName')->toArray(); $this->assertEquals($expectedArray, $actualArray, $message); } } |