public function removeCountry(AreaRemoveCountryEvent $event) { CountryAreaQuery::create()->filterByCountryId($event->getCountryId())->filterByAreaId($event->getAreaId())->delete(); if (null !== ($area = AreaQuery::create()->findPk($event->getAreaId()))) { $event->setArea($area); } }
public function removeCountry(AreaRemoveCountryEvent $event) { if (null !== ($country = CountryQuery::create()->findPk($event->getCountryId()))) { $event->setArea($country->getArea()); $country->setDispatcher($event->getDispatcher()); $country->setAreaId(null)->save(); } }
/** * @param AreaModel $area * @depends testAddCountry */ public function testRemoveCountry(AreaModel $area) { $country = CountryQuery::create()->filterByArea($area)->find()->getFirst(); $event = new AreaRemoveCountryEvent($area->getId(), $country->getId()); $event->setDispatcher($this->getMock("Symfony\\Component\\EventDispatcher\\EventDispatcherInterface")); $areaAction = new Area(); $areaAction->removeCountry($event); $updatedCountry = CountryQuery::create()->findPk($country->getId()); $updatedArea = $event->getArea(); $this->assertInstanceOf('Thelia\\Model\\Area', $updatedArea); $this->assertNull($updatedCountry->getAreaId()); return $event->getArea(); }