diff --git a/core/lib/Thelia/Action/Customer.php b/core/lib/Thelia/Action/Customer.php index 4fe5d0f72..84dc8f97f 100644 --- a/core/lib/Thelia/Action/Customer.php +++ b/core/lib/Thelia/Action/Customer.php @@ -28,6 +28,7 @@ use Thelia\Core\Event\ActionEvent; use Thelia\Core\Event\Customer\CustomerCreateOrUpdateEvent; use Thelia\Core\Event\Customer\CustomerEvent; use Thelia\Core\Event\TheliaEvents; +use Thelia\Core\Security\SecurityContext; use Thelia\Model\Customer as CustomerModel; use Thelia\Core\Event\Customer\CustomerLoginEvent; @@ -39,8 +40,14 @@ use Thelia\Core\Event\Customer\CustomerLoginEvent; * @package Thelia\Action * @author Manuel Raynaud */ -class Customer extends BaseAction implements EventSubscriberInterface +class Customer implements EventSubscriberInterface { + protected $securityContext; + + public function __construct(SecurityContext $securityContext) + { + $this->securityContext = $securityContext; + } public function create(CustomerCreateOrUpdateEvent $event) { @@ -65,7 +72,7 @@ class Customer extends BaseAction implements EventSubscriberInterface $customer = $event->getCustomer(); - $customer->setDispatcher($this->getDispatcher()); + $customer->setDispatcher($event->getDispatcher()); $customer ->setTitleId($event->getTitle()) @@ -91,7 +98,7 @@ class Customer extends BaseAction implements EventSubscriberInterface private function createOrUpdateCustomer(CustomerModel $customer, CustomerCreateOrUpdateEvent $event) { - $customer->setDispatcher($this->getDispatcher()); + $customer->setDispatcher($event->getDispatcher()); $customer->createOrUpdate( $event->getTitle(), @@ -140,7 +147,7 @@ class Customer extends BaseAction implements EventSubscriberInterface */ protected function getSecurityContext() { - return $this->container->get('thelia.securityContext'); + return $this->securityContext; } /** diff --git a/core/lib/Thelia/Config/Resources/action.xml b/core/lib/Thelia/Config/Resources/action.xml index d8252f11b..118d96d2a 100644 --- a/core/lib/Thelia/Config/Resources/action.xml +++ b/core/lib/Thelia/Config/Resources/action.xml @@ -16,8 +16,8 @@ - - + + diff --git a/core/lib/Thelia/Tests/Action/CustomerTest.php b/core/lib/Thelia/Tests/Action/CustomerTest.php index 396eb5257..21918d79d 100644 --- a/core/lib/Thelia/Tests/Action/CustomerTest.php +++ b/core/lib/Thelia/Tests/Action/CustomerTest.php @@ -24,6 +24,9 @@ namespace Thelia\Tests\Action\ImageTest; use Thelia\Action\Customer; use Thelia\Core\Event\Customer\CustomerCreateOrUpdateEvent; +use Thelia\Core\HttpFoundation\Request; +use Thelia\Core\Security\SecurityContext; +use Thelia\Model\CustomerQuery; /** * Class CustomerTest @@ -32,15 +35,12 @@ use Thelia\Core\Event\Customer\CustomerCreateOrUpdateEvent; */ class CustomerTest extends \PHPUnit_Framework_TestCase { - public function getContainer() + + public static function setUpBeforeClass() { - $container = new \Symfony\Component\DependencyInjection\ContainerBuilder(); - - $dispatcher = $this->getMock("Symfony\Component\EventDispatcher\EventDispatcherInterface"); - - $container->set("event_dispatcher", $dispatcher); - - return $container; + CustomerQuery::create() + ->filterByRef('testRef') + ->delete(); } public function testCreatedCustomer() @@ -67,7 +67,9 @@ class CustomerTest extends \PHPUnit_Framework_TestCase null ); - $customerAction = new Customer($this->getContainer()); + $customerCreateEvent->setDispatcher($this->getMock("Symfony\Component\EventDispatcher\EventDispatcherInterface")); + + $customerAction = new Customer(new SecurityContext(new Request())); $customerAction->create($customerCreateEvent); @@ -126,7 +128,9 @@ class CustomerTest extends \PHPUnit_Framework_TestCase 'testRef' ); - $customerAction = new Customer($this->getContainer()); + $customerCreateEvent->setDispatcher($this->getMock("Symfony\Component\EventDispatcher\EventDispatcherInterface")); + + $customerAction = new Customer(new SecurityContext(new Request())); $customerAction->create($customerCreateEvent);