/** * @param Customer $customer * * @return NewsletterSubscriber */ public function getOrCreateFromCustomer(Customer $customer) { $newsletterSubscriber = $customer->getNewsletterSubscriber(); if (null === $newsletterSubscriber) { $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()); } return $newsletterSubscriber; }
public function testCreateFromCustomer() { /** @var Channel $integration */ $integration = $this->getReference('integration'); /** @var Customer $customer */ $customer = new Customer(); $customer->setChannel($integration); $this->assertEmpty($customer->getNewsletterSubscriber()); $newsletterSubscriber = $this->getContainer()->get('orocrm_magento.model.newsletter_subscriber_manager')->getOrCreateFromCustomer($customer); $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()); }