Source of file HasOneSelectorTest.php
Size: 3,360 Bytes - Last Modified: 2018-07-19T11:46:59+00:00
/var/www/docs.ssmods.com/process/src/tests/HasOneSelectorTest.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | <?php namespace Moo\HasOneSelector\Tests; use Moo\HasOneSelector\Form\Field; use Moo\HasOneSelector\Tests\Object\PageTest; use Moo\HasOneSelector\Tests\Object\ResourceTest; use Moo\HasOneSelector\Tests\Object\ControllerTest; use SilverStripe\Control\Controller; use SilverStripe\Dev\FunctionalTest; use SilverStripe\Forms\FieldList; use SilverStripe\Forms\Form; class HasOneSelectorTest extends FunctionalTest { protected static $fixture_file = 'HasOneSelectorTest.yml'; public function testNoItemSelected() { $page = $this->getPage('page-1'); $field = $this->getField($page)->setEmptyString('No data selected'); $form = new Form(new ControllerTest, 'Form', FieldList::create($field), FieldList::create()); $html = $field->FieldHolder(); $this->assertContains('No data selected', $html); $this->assertEquals(ResourceTest::class, $field->getDataClass()); $this->assertFalse($field->getRecord()->exists()); } public function testSelectedItem() { $page = $this->getPage('page-1'); $field = $this->getField($page)->setEmptyString('No data selected'); $resource = $this->getResource('resource-1'); $page->setField('ResourceID', $resource->ID); $form = new Form(Controller::curr(), 'Form', FieldList::create($field), FieldList::create()); $this->assertInstanceOf(ResourceTest::class, $field->getRecord()); $this->assertInstanceOf(PageTest::class, $field->getOwner()); $this->assertEquals($field->getList()->first()->ID, $resource->ID); $this->assertEquals($field->getList(), $field->getManipulatedList()); $this->assertEquals($resource->Title, $field->getColumnContent($field->getRecord(), 'Title')); } public function testSelectingRemovingItem() { $page = $this->getPage('page-1'); $field = $this->getField($page); $resource = $this->getResource('resource-1'); $field->getList()->add($resource); $form = new Form(new ControllerTest, 'Form', FieldList::create($field), FieldList::create()); $this->assertInstanceOf(ResourceTest::class, $field->getRecord()); $this->assertInstanceOf(PageTest::class, $field->getOwner()); $this->assertEquals($field->getList()->first()->ID, $resource->ID); $this->assertEquals($field->getList(), $field->getManipulatedList()); $this->assertEquals($resource->Title, $field->getColumnContent($field->getRecord(), 'Title')); $field->getList()->remove($resource); $html = $field->FieldHolder(); $this->assertContains('No resource test selected', $html); $this->assertEquals(ResourceTest::class, $field->getDataClass()); $this->assertFalse($field->getRecord()->exists()); } /** * @param $name * @return PageTest */ protected function getPage($name) { return $this->objFromFixture(PageTest::class, $name); } /** * @param $name * @return ResourceTest */ protected function getResource($name) { return $this->objFromFixture(ResourceTest::class, $name); } /** * @return Field * @param mixed $page */ protected function getField($page) { return Field::create('Resource', 'Resource', $page, ResourceTest::class); } } |