/** * @param NewsletterModel $model * @return int * @throws \UthandoCommon\Service\ServiceException */ public function toggleVisible(NewsletterModel $model) { $this->removeCacheItem($model->getNewsletterId()); $visible = true === $model->isVisible() ? false : true; $model->setVisible($visible); return parent::save($model); }
public function setUp() { parent::setUp(); $subscriptionModel = new Subscription(); $subscriptionModel->setSubscriptionId(1)->setNewsletterId(1)->setSubscriberId(1); $subscriptions = [$subscriptionModel]; $subscriber = new SubscriberModel(); $subscriber->setSubscriberId(1)->setEmail('*****@*****.**')->setName('Joe Bloggs')->setSubscriptions($subscriptions); $subscriberMapperMock = $this->getMock('UthandoNewsletter\\Mapper\\Subscriber'); $subscriberMapperMock->expects($this->any())->method('getById')->willReturn($subscriber); $subscriberMapperMock->expects($this->any())->method('getByEmail')->willReturn($subscriber); $subscriberMapperMock->expects($this->any())->method('getPrimaryKey')->willReturn('subscriberId'); $subscriberMapperMock->expects($this->any())->method('delete')->willReturn(1); $this->serviceManager->get('UthandoMapperManager')->setAllowOverride(true); $this->serviceManager->get('UthandoMapperManager')->setService('UthandoNewsletterSubscriber', $subscriberMapperMock); $subscriptionServiceMock = $this->getMock('UthandoNewsletter\\Service\\Subscription'); $subscriptionServiceMock->expects($this->any())->method('getSubscriptionsBySubscriberId')->willReturn($subscriptions); $subscriptionServiceMock->expects($this->any())->method('delete')->willReturn(1); $this->serviceManager->get('UthandoServiceManager')->setAllowOverride(true); $this->serviceManager->get('UthandoServiceManager')->setService('UthandoNewsletterSubscription', $subscriptionServiceMock); $newsletterModel = new Newsletter(); $newsletterModel->setNewsletterId(1); $newsletterServiceMock = $this->getMock('UthandoNewsletter\\Service\\Newsletter'); $newsletterServiceMock->expects($this->any())->method('fetchAll')->willReturn([$newsletterModel]); $this->serviceManager->get('UthandoServiceManager')->setService('UthandoNewsletter', $newsletterServiceMock); }
public function testGetNewsletters() { $model = new Newsletter(); $model->setNewsletterId(1)->setName('Test'); $mapperMock = $this->getMockBuilder('UthandoNewsletter\\Mapper\\Newsletter')->disableOriginalConstructor()->getMock(); $serviceManagerMock = $this->getMockBuilder('UthandoCommon\\Service\\ServiceManager')->disableOriginalConstructor()->getMock(); $mapperMock->expects($this->once())->method('fetchAll')->will($this->returnValue(array($model))); $serviceManagerMock->expects($this->once())->method('get')->with('UthandoNewsletter')->will($this->returnValue($mapperMock)); $this->serviceManager->setAllowOverride(true); $this->serviceManager->setService('UthandoServiceManager', $serviceManagerMock); /* @var $form NewsletterList */ $form = $this->serviceManager->get('FormElementManager')->get('UthandoNewsLetterList'); $this->assertSame([1 => 'Test'], $form->getValueOptions()); }
public function testToggleVisible() { $model = new NewsletterModel(); $model->setNewsletterId(1)->setDescription('Test newsletter')->setName('Test')->setVisible(true); $newsletterMapperMock = $this->getMock('UthandoNewsletter\\Mapper\\Newsletter'); $newsletterMapperMock->expects($this->once())->method('update')->willReturn(1); $newsletterMapperMock->expects($this->once())->method('getPrimaryKey')->willReturn('newsletterId'); $newsletterMapperMock->expects($this->once())->method('getById')->willReturn($model); $this->serviceManager->get('UthandoMapperManager')->setAllowOverride(true); $this->serviceManager->get('UthandoMapperManager')->setService('UthandoNewsletter', $newsletterMapperMock); /* @var Newsletter $service */ $service = $this->serviceManager->get('UthandoServiceManager')->get('UthandoNewsletter'); $service->setUseCache(false); $result = $service->toggleVisible($model); $this->assertSame(1, $result); }
public function testGetSubscribers() { $newsletterModel = new Newsletter(); $subscriptionModel = new Subscription(); $newsletterModel->setName('Test')->setNewsletterId(1); $subscriptionModel->setNewsletterId(1)->setSubscriberId(1); $newsletterReturnArray = [$newsletterModel]; $subscriptionReturnArray = [$subscriptionModel]; $newsletterServiceMock = $this->getMockBuilder('UthandoNewsletter\\Service\\Newsletter')->disableOriginalConstructor()->getMock(); $subscriptionServiceMock = $this->getMockBuilder('UthandoNewsletter\\Service\\Subscription')->disableOriginalConstructor()->getMock(); $subscriptionMapperMock = $this->getMockBuilder('UthandoNewsletter\\Mapper\\Subscription')->disableOriginalConstructor()->getMock(); $newsletterServiceMock->expects($this->once())->method('fetchVisibleNewsletters')->will($this->returnValue($newsletterReturnArray)); $subscriptionMapperMock->expects($this->once())->method('getSubscriptionsBySubscriberId')->will($this->returnValue($subscriptionReturnArray)); $subscriptionServiceMock->expects($this->once())->method('getMapper')->will($this->returnValue($subscriptionMapperMock)); $this->serviceManager->setAllowOverride(true); $serviceManagerMock = $this->getMockBuilder('UthandoCommon\\Service\\ServiceManager')->disableOriginalConstructor()->getMock(); $serviceManagerMock->expects($this->exactly(2))->method('get')->with($this->logicalOr($this->equalTo('UthandoNewsletter'), $this->equalTo('UthandoNewsletterSubscription')))->will($this->returnValueMap([['UthandoNewsletter', [], true, $newsletterServiceMock], ['UthandoNewsletterSubscription', [], true, $subscriptionServiceMock]])); $this->serviceManager->setService('UthandoServiceManager', $serviceManagerMock); /* @var $form SubscriptionList */ $form = $this->serviceManager->get('FormElementManager')->get('UthandoNewsLetterSubscriptionList'); $form->setOptions($this->options); $form->setLabelPrepend(true); $this->assertSame($this->valueOptions, $form->getSubscribers()); }
public function testSetGetVisible() { $this->model->setVisible(true); $this->assertTrue($this->model->isVisible()); }
/** * @param \UthandoNewsletter\Model\Newsletter $object * @return array */ public function extract($object) { return ['newsletterId' => $object->getNewsletterId(), 'name' => $object->getName(), 'description' => $object->getDescription(), 'visible' => $this->extractValue('visible', $object->isVisible())]; }