Exemplo n.º 1
0
 /**
  * @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());
 }
Exemplo n.º 7
0
 /**
  * @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())];
 }