*/ class HookTest extends BaseAction { /** @var Hook $action */ protected $action; protected $locale; public function setUp() { $this->locale = LangQuery::create()->findOne()->getLocale(); $stubContainer = $this->getMockBuilder('\Symfony\Component\DependencyInjection\ContainerInterface') ->disableOriginalConstructor() ->getMock(); $this->action = new Hook($stubContainer, $this->getMockEventDispatcher()); } public function testCreate() { $event = new HookCreateEvent(); $event ->setCode('test.hook-' . uniqid()) ->setType(TemplateDefinition::FRONT_OFFICE) ->setLocale($this->locale) ->setActive(true) ->setNative(true) ->setTitle("Hook Test"); $this->action->create($event, null, $this->getMockEventDispatcher()); $createdHook = $event->getHook(); $this->assertInstanceOf('\Thelia\Model\Hook', $createdHook); $this->assertFalse($createdHook->isNew()); $this->assertTrue($event->hasHook()); $this->assertEquals($event->getCode(), $createdHook->getCode()); $this->assertEquals($event->getType(), $createdHook->getType()); $this->assertEquals($event->getLocale(), $createdHook->getLocale()); $this->assertEquals($event->getActive(), $createdHook->getActivate()); $this->assertEquals($event->getNative(), $createdHook->getNative()); $this->assertEquals($event->getTitle(), $createdHook->getTitle()); return $createdHook; } public function createAll(HookCreateAllEvent $event) { $event = new HookCreateAllEvent(); $event ->setCode('test.hook-' . uniqid()) ->setType(TemplateDefinition::FRONT_OFFICE) ->setLocale($this->locale) ->setActive(true) ->setNative(true) ->setTitle("Hook Test") ->setDescription("Hook Description") ->setChapo("Hook Chapo") ->setBlock(false) ->setByModule(false); $this->action->createAll($event); $createdHook = $event->getHook(); $this->assertInstanceOf('\Thelia\Model\Hook', $createdHook); $this->assertFalse($createdHook->isNew()); $this->assertTrue($event->hasHook()); $this->assertEquals($event->getCode(), $createdHook->getCode()); $this->assertEquals($event->getType(), $createdHook->getType()); $this->assertEquals($event->getLocale(), $createdHook->getLocale()); $this->assertEquals($event->getActive(), $createdHook->getActivate()); $this->assertEquals($event->getNative(), $createdHook->getNative()); $this->assertEquals($event->getTitle(), $createdHook->getTitle()); $this->assertEquals($event->getDescription(), $createdHook->getDescription()); $this->assertEquals($event->getChapo(), $createdHook->getChapo()); $this->assertEquals($event->getBlock(), $createdHook->getBlock()); $this->assertEquals($event->getByModule(), $createdHook->getByModule()); } /** * @param HookModel $hook * @depends testCreate * @expectedException \Propel\Runtime\Exception\PropelException */ public function testCreateDuplicate(HookModel $hook) { $event = new HookCreateEvent(); $event ->setCode($hook->getCode()) ->setType(TemplateDefinition::FRONT_OFFICE) ->setLocale($this->locale) ->setActive(true) ->setNative(true) ->setTitle("Hook Test"); $this->action->create($event, null, $this->getMockEventDispatcher()); $createdHook = $event->getHook(); $this->assertNull($createdHook); $this->assertFalse($event->hasHook()); } /** * @param HookModel $hook * @depends testCreate * @return HookModel */ public function testDeactivation(HookModel $hook) { $event = new HookDeactivationEvent($hook->getId()); $this->action->deactivation($event); $updatedHook = $event->getHook(); $this->assertFalse($updatedHook->getActivate()); return $hook; } /** * @param HookModel $hook * @depends testDeactivation * @return HookModel */ public function testToggleActivation(HookModel $hook) { $event = new HookToggleActivationEvent($hook->getId()); $this->action->toggleActivation($event, null, $this->getMockEventDispatcher()); $updatedHook = $event->getHook(); $this->assertTrue($updatedHook->getActivate()); return $hook; } /** * @param HookModel $hook * @depends testToggleActivation * @return HookModel */ public function testUpdate(HookModel $hook) { $event = new HookUpdateEvent($hook->getId()); $event ->setCode('test.hook.' . uniqid()) ->setType(TemplateDefinition::FRONT_OFFICE) ->setLocale($this->locale) ->setActive(false) ->setNative(false) ->setTitle("Updated Hook Test") ->setDescription("Updated Hook Description") ->setChapo("Updated Hook Chapo") ->setBlock(false) ->setByModule(false); $this->action->update($event, null, $this->getMockEventDispatcher()); $updatedHook = $event->getHook(); $this->assertEquals($event->getCode(), $updatedHook->getCode()); $this->assertEquals($event->getType(), $updatedHook->getType()); $this->assertEquals($event->getLocale(), $updatedHook->getLocale()); $this->assertEquals($event->getActive(), $updatedHook->getActivate()); $this->assertEquals($event->getNative(), $updatedHook->getNative()); $this->assertEquals($event->getTitle(), $updatedHook->getTitle()); $this->assertEquals($event->getDescription(), $updatedHook->getDescription()); $this->assertEquals($event->getChapo(), $updatedHook->getChapo()); $this->assertEquals($event->getBlock(), $updatedHook->getBlock()); $this->assertEquals($event->getByModule(), $updatedHook->getByModule()); return $updatedHook; } /** * @param HookModel $hook * @depends testUpdate */ public function testDelete(HookModel $hook) { $event = new HookDeleteEvent($hook->getId()); $this->action->delete($event, null, $this->getMockEventDispatcher()); $deletedHook = $event->getHook(); $this->assertInstanceOf('Thelia\Model\Hook', $deletedHook); $this->assertTrue($deletedHook->isDeleted()); } }