From dc6098c08979ec095eaded04f2c090d53d2d0fba Mon Sep 17 00:00:00 2001 From: Samuel Georges Date: Mon, 5 Jan 2015 13:22:40 +1100 Subject: [PATCH] Create unit tests for WidgetMaker trait --- modules/backend/traits/WidgetMaker.php | 4 +- .../backend/classes/WidgetManagerTest.php | 17 ------ tests/unit/backend/traits/WidgetMakerTest.php | 60 +++++++++++++++++++ 3 files changed, 63 insertions(+), 18 deletions(-) create mode 100644 tests/unit/backend/traits/WidgetMakerTest.php diff --git a/modules/backend/traits/WidgetMaker.php b/modules/backend/traits/WidgetMaker.php index d27fb745a..5ad8c50c3 100644 --- a/modules/backend/traits/WidgetMaker.php +++ b/modules/backend/traits/WidgetMaker.php @@ -24,7 +24,9 @@ trait WidgetMaker */ public function makeWidget($class, $configuration = []) { - $controller = ($this->controller) ?: $this; + $controller = property_exists($this, 'controller') && $this->controller + ? $this->controller + : $this; if (!class_exists($class)) { throw new SystemException(Lang::get('backend::lang.widget.not_registered', [ diff --git a/tests/unit/backend/classes/WidgetManagerTest.php b/tests/unit/backend/classes/WidgetManagerTest.php index 45d2b6aec..936c65779 100644 --- a/tests/unit/backend/classes/WidgetManagerTest.php +++ b/tests/unit/backend/classes/WidgetManagerTest.php @@ -5,23 +5,6 @@ use Backend\Classes\WidgetManager; class WidgetManagerTest extends TestCase { - public function testMakeWidget() - { - $manager = WidgetManager::instance(); - $widget = $manager->makeWidget('Backend\Widgets\Search'); - $this->assertTrue($widget instanceof \Backend\Widgets\Search); - - $controller = new Controller; - $widget = $manager->makeWidget('Backend\Widgets\Search', $controller); - $this->assertInstanceOf('Backend\Widgets\Search', $widget); - $this->assertInstanceOf('Backend\Classes\Controller', $widget->getController()); - - $config = ['test' => 'config']; - $widget = $manager->makeWidget('Backend\Widgets\Search', null, $config); - $this->assertInstanceOf('Backend\Widgets\Search', $widget); - $this->assertEquals('config', $widget->getConfig('test')); - } - public function testListFormWidgets() { $manager = WidgetManager::instance(); diff --git a/tests/unit/backend/traits/WidgetMakerTest.php b/tests/unit/backend/traits/WidgetMakerTest.php new file mode 100644 index 000000000..3401fe6df --- /dev/null +++ b/tests/unit/backend/traits/WidgetMakerTest.php @@ -0,0 +1,60 @@ +controller = new Controller; + } +} + +class WidgetMakerTest extends TestCase +{ + /** + * The object under test. + * + * @var object + */ + private $traitObject; + + /** + * Sets up the fixture. + * + * This method is called before a test is executed. + * + * @return void + */ + public function setUp() + { + $traitName = 'Backend\Traits\WidgetMaker'; + $this->traitObject = $this->getObjectForTrait($traitName); + } + + public function testTraitObject() + { + $maker = $this->traitObject; + + $widget = $maker->makeWidget('Backend\Widgets\Search'); + $this->assertTrue($widget instanceof \Backend\Widgets\Search); + } + + public function testMakeWidget() + { + $manager = new ExampleTraitClass; + + $controller = new Controller; + $widget = $manager->makeWidget('Backend\Widgets\Search'); + $this->assertInstanceOf('Backend\Widgets\Search', $widget); + $this->assertInstanceOf('Backend\Classes\Controller', $widget->getController()); + + $config = ['test' => 'config']; + $widget = $manager->makeWidget('Backend\Widgets\Search', $config); + $this->assertInstanceOf('Backend\Widgets\Search', $widget); + $this->assertEquals('config', $widget->getConfig('test')); + } + +} \ No newline at end of file