Add tests for DefaultFormFactory

This commit is contained in:
Robbie Averill 2018-10-20 19:47:11 +02:00
parent fd50ce6295
commit 449b2cf291
2 changed files with 39 additions and 0 deletions

View File

@ -30,6 +30,7 @@ class DefaultFormFactory implements FormFactory
* @param string $name * @param string $name
* @param array $context * @param array $context
* @return Form * @return Form
* @throws InvalidArgumentException When required context is missing
*/ */
public function getForm(RequestHandler $controller = null, $name = FormFactory::DEFAULT_NAME, $context = []) public function getForm(RequestHandler $controller = null, $name = FormFactory::DEFAULT_NAME, $context = [])
{ {

View File

@ -0,0 +1,38 @@
<?php
namespace SilverStripe\Forms\Tests;
use InvalidArgumentException;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Forms\DefaultFormFactory;
use SilverStripe\ORM\DataObject;
class DefaultFormFactoryTest extends SapphireTest
{
/**
* @expectedException InvalidArgumentException
* @expectedExceptionMessageRegExp /Missing required context/
*/
public function testGetFormThrowsExceptionOnMissingContext()
{
$factory = new DefaultFormFactory();
$factory->getForm();
}
public function testGetForm()
{
$record = new DataObject();
$record->Title = 'Test';
$factory = new DefaultFormFactory();
$form = $factory->getForm(null, null, ['Record' => $record]);
$this->assertSame($record, $form->getRecord());
}
public function testGetRequiredContext()
{
$factory = new DefaultFormFactory();
$this->assertContains('Record', $factory->getRequiredContext());
}
}