diff --git a/core/lib/Thelia/Action/Order.php b/core/lib/Thelia/Action/Order.php index 9d0da5563..3c9dd9b0b 100644 --- a/core/lib/Thelia/Action/Order.php +++ b/core/lib/Thelia/Action/Order.php @@ -42,7 +42,7 @@ use Thelia\Model\Cart as CartModel; use Thelia\Model\ConfigQuery; use Thelia\Model\Currency as CurrencyModel; use Thelia\Model\Customer as CustomerModel; -use Thelia\Model\Lang; +use Thelia\Model\Lang as LangModel; use Thelia\Model\Map\OrderTableMap; use Thelia\Model\MessageQuery; use Thelia\Model\Order as ModelOrder; @@ -149,7 +149,7 @@ class Order extends BaseAction implements EventSubscriberInterface $event->setOrder($order); } - protected function createOrder(EventDispatcherInterface $dispatcher, ModelOrder $sessionOrder, CurrencyModel $currency, Lang $lang, CartModel $cart, CustomerModel $customer) + protected function createOrder(EventDispatcherInterface $dispatcher, ModelOrder $sessionOrder, CurrencyModel $currency, LangModel $lang, CartModel $cart, CustomerModel $customer) { $con = \Propel\Runtime\Propel::getConnection( OrderTableMap::DATABASE_NAME diff --git a/core/lib/Thelia/Tests/Action/LangTest.php b/core/lib/Thelia/Tests/Action/LangTest.php new file mode 100644 index 000000000..6aff5ac69 --- /dev/null +++ b/core/lib/Thelia/Tests/Action/LangTest.php @@ -0,0 +1,173 @@ +. */ +/* */ +/*************************************************************************************/ + +namespace Thelia\Tests\Action; + +use Thelia\Action\Lang; +use Thelia\Core\Event\Lang\LangDeleteEvent; +use Thelia\Core\Event\Lang\LangToggleDefaultEvent; +use Thelia\Core\Event\Lang\LangUpdateEvent; +use Thelia\Model\LangQuery; +use Thelia\Model\Lang as LangModel; +use Thelia\Core\Event\Lang\LangCreateEvent; + + +/** + * Class LangTest + * @package Thelia\Tests\Action + * @author Manuel Raynaud + */ +class LangTest extends \PHPUnit_Framework_TestCase +{ + protected $dispatcher; + + protected static $defaultId; + + public static function setUpBeforeClass() + { + $lang = LangQuery::create() + ->filterByByDefault(1) + ->findOne(); + + self::$defaultId = $lang->getId(); + } + + public function setUp() + { + $this->dispatcher = $this->getMock("Symfony\Component\EventDispatcher\EventDispatcherInterface"); + } + + public function testCreate() + { + $event = new LangCreateEvent(); + + $event + ->setLocale('te_TE') + ->setTitle('test') + ->setCode('TES') + ->setDateFormat('Y-m-d') + ->setTimeFormat('H:i:s') + ->setDispatcher($this->dispatcher) + ; + + $action = new Lang(); + $action->create($event); + + $createdLang = $event->getLang(); + + $this->assertInstanceOf('Thelia\Model\Lang', $createdLang); + + $this->assertFalse($createdLang->isNew()); + + $this->assertEquals('te_TE', $createdLang->getLocale()); + $this->assertEquals('test', $createdLang->getTitle()); + $this->assertEquals('TES', $createdLang->getCode()); + $this->assertEquals('Y-m-d', $createdLang->getDateFormat()); + $this->assertEquals('H:i:s', $createdLang->getTimeFormat()); + + return $createdLang; + } + + /** + * @param LangModel $lang + * @depends testCreate + */ + public function testUpdate(LangModel $lang) + { + $event = new LangUpdateEvent($lang->getId()); + + $event + ->setLocale('te_TE') + ->setTitle('test update') + ->setCode('TEST') + ->setDateFormat('d-m-Y') + ->setTimeFormat('H-i-s') + ->setDispatcher($this->dispatcher) + ; + + $action = new Lang(); + $action->update($event); + + $updatedLang = $event->getLang(); + + $this->assertInstanceOf('Thelia\Model\Lang', $updatedLang); + + $this->assertEquals('te_TE', $updatedLang->getLocale()); + $this->assertEquals('TEST', $updatedLang->getCode()); + $this->assertEquals('test update', $updatedLang->getTitle()); + $this->assertEquals('d-m-Y', $updatedLang->getDateFormat()); + $this->assertEquals('H-i-s', $updatedLang->getTimeFormat()); + + return $updatedLang; + } + + /** + * @param LangModel $lang + * @depends testUpdate + */ + public function testToggleDefault(LangModel $lang) + { + $event = new LangToggleDefaultEvent($lang->getId()); + $event->setDispatcher($this->dispatcher); + + $action = new Lang(); + $action->toggleDefault($event); + + $updatedLang = $event->getLang(); + + $this->assertInstanceOf('Thelia\Model\Lang', $updatedLang); + + $this->assertEquals('1', $updatedLang->getByDefault()); + + $this->assertEquals('1', LangQuery::create()->filterByByDefault(1)->count()); + + return $updatedLang; + } + + /** + * @param LangModel $lang + * @depends testToggleDefault + */ + public function testDelete(LangModel $lang) + { + $event = new LangDeleteEvent($lang->getId()); + $event->setDispatcher($this->dispatcher); + + $action = new Lang(); + $action->delete($event); + + $deletedLang = $event->getLang(); + + $this->assertInstanceOf('Thelia\Model\Lang', $deletedLang); + + $this->assertTrue($deletedLang->isDeleted()); + } + + public static function tearDownAfterClass() + { + LangQuery::create() + ->filterById(self::$defaultId) + ->update(array('ByDefault' => true)); + } + +} \ No newline at end of file