/**
  * @return void
  */
 public function testAssignCustomerToExistingSubscriber()
 {
     $newsletterSubscriberTransfer = $this->createSubscriber();
     $subscriberQuery = SpyNewsletterSubscriberQuery::create();
     $subscriberQuery->filterByEmail($newsletterSubscriberTransfer->getEmail());
     $subscriberQuery->filterBySubscriberKey($newsletterSubscriberTransfer->getSubscriberKey());
     $subscriberEntity = $subscriberQuery->findOneOrCreate();
     if ($subscriberEntity->getFkCustomer()) {
         $subscriberEntity->setFkCustomer(null);
     }
     $subscriberEntity->save();
     $customerQuery = SpyCustomerQuery::create();
     $customerQuery->filterByEmail($newsletterSubscriberTransfer->getEmail());
     $customerQuery->filterByCustomerReference('123');
     $customer = $customerQuery->findOneOrCreate();
     $customer->save();
     $newsletterSubscriberTransfer->setFkCustomer($customer->getIdCustomer());
     $result = $this->newsletterFacade->assignCustomerToExistingSubscriber($newsletterSubscriberTransfer);
     $this->assertTrue($result);
     $queryContainer = new NewsletterQueryContainer();
     $subscriberEntity = $queryContainer->querySubscriber()->filterByEmail($newsletterSubscriberTransfer->getEmail())->findOne();
     $this->assertSame($customer->getIdCustomer(), $subscriberEntity->getFkCustomer());
 }
示例#2
0
 /**
  * @todo move this code to customer checkout connector, registration can only happen if we have
  * already installed customer bundle
  *
  * @return void
  */
 public function testRegistrationDoesNotCreateACustomerIfGuest()
 {
     $quoteTransfer = $this->getBaseQuoteTransfer();
     $quoteTransfer->getCustomer()->setIsGuest(true);
     $result = $this->checkoutFacade->placeOrder($quoteTransfer);
     $this->assertTrue($result->getIsSuccess());
     $this->assertEquals(0, count($result->getErrors()));
     $customerQuery = SpyCustomerQuery::create()->filterByEmail($quoteTransfer->getCustomer()->getEmail());
     $this->assertEquals(0, $customerQuery->count());
 }
 /**
  * @return \Orm\Zed\Customer\Persistence\SpyCustomerQuery
  */
 public function createSpyCustomerQuery()
 {
     return SpyCustomerQuery::create();
 }