Пример #1
0
 /**
  * @param Customer $customer
  *
  * @return NewsletterSubscriber[]|Collection
  */
 public function getOrCreateFromCustomer(Customer $customer)
 {
     $newsletterSubscribers = $customer->getNewsletterSubscribers();
     if (count($newsletterSubscribers) === 0) {
         $newsletterSubscriber = new NewsletterSubscriber();
         $newsletterSubscriber->setCustomer($customer)->setEmail($customer->getEmail())->setChannel($customer->getChannel())->setStore($customer->getStore())->setOrganization($customer->getOrganization())->setOwner($customer->getOwner())->setStatus($this->getStatus(NewsletterSubscriber::STATUS_UNSUBSCRIBED))->setDataChannel($customer->getDataChannel());
         $newsletterSubscribers = new ArrayCollection([$newsletterSubscriber]);
     }
     return $newsletterSubscribers;
 }
 public function testCreateFromCustomer()
 {
     /** @var Channel $integration */
     $integration = $this->getReference('integration');
     /** @var Customer $customer */
     $customer = new Customer();
     $customer->setChannel($integration);
     $this->assertEmpty($customer->getNewsletterSubscribers());
     $newsletterSubscribers = $this->getContainer()->get('orocrm_magento.model.newsletter_subscriber_manager')->getOrCreateFromCustomer($customer);
     $this->assertNotEmpty($newsletterSubscribers);
     $newsletterSubscriber = $newsletterSubscribers[0];
     $this->assertEquals($customer->getEmail(), $newsletterSubscriber->getEmail());
     $this->assertEquals($customer, $newsletterSubscriber->getCustomer());
     $this->assertEquals($customer->getChannel(), $newsletterSubscriber->getChannel());
     $this->assertEquals($customer->getStore(), $newsletterSubscriber->getStore());
     $this->assertEquals($customer->getOrganization(), $newsletterSubscriber->getOrganization());
     $this->assertEquals($customer->getOwner(), $newsletterSubscriber->getOwner());
     $this->assertEquals($customer->getDataChannel(), $newsletterSubscriber->getDataChannel());
     $this->assertEquals(NewsletterSubscriber::STATUS_UNSUBSCRIBED, $newsletterSubscriber->getStatus()->getId());
 }