Esempio n. 1
0
 /**
  * @param FormBuilderInterface $builder
  */
 protected function addTransport(FormBuilderInterface $builder)
 {
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
         $options = ['label' => 'orocrm.campaign.emailcampaign.transport.label', 'required' => true, 'mapped' => false];
         /** @var EmailCampaign $data */
         $data = $event->getData();
         if ($data) {
             $choices = $this->emailTransportProvider->getVisibleTransportChoices();
             $currentTransportName = $data->getTransport();
             if (!array_key_exists($currentTransportName, $choices)) {
                 $currentTransport = $this->emailTransportProvider->getTransportByName($currentTransportName);
                 $choices[$currentTransport->getName()] = $currentTransport->getLabel();
                 $options['choices'] = $choices;
             }
         }
         $form = $event->getForm();
         $form->add('transport', 'orocrm_campaign_email_transport_select', $options);
     });
 }
 public function testTransportActualChoices()
 {
     $choices = ['t1' => 'Transport 1', 't2' => 'Transport 2'];
     $provider = new EmailTransportProvider();
     $transportOne = $this->getMock('OroCRM\\Bundle\\CampaignBundle\\Transport\\TransportInterface');
     $transportOne->expects($this->exactly(2))->method('getName')->will($this->returnValue('t1'));
     $transportOne->expects($this->once())->method('getLabel')->will($this->returnValue('Transport 1'));
     $transportTwo = $this->getMock('OroCRM\\Bundle\\CampaignBundle\\Transport\\TransportInterface');
     $transportTwo->expects($this->exactly(2))->method('getName')->will($this->returnValue('t2'));
     $transportTwo->expects($this->once())->method('getLabel')->will($this->returnValue('Transport 2'));
     $transportTree = $this->getMock('OroCRM\\Bundle\\CampaignBundle\\Tests\\Unit\\Provider\\TransportStub');
     $transportTree->expects($this->once())->method('getName')->will($this->returnValue('t3'));
     $transportTree->expects($this->never())->method('getLabel')->will($this->returnValue('Transport 3'));
     $transportTree->expects($this->once())->method('isVisibleInForm')->will($this->returnValue(false));
     $provider->addTransport($transportOne);
     $provider->addTransport($transportTwo);
     $provider->addTransport($transportTree);
     $this->assertEquals($choices, $provider->getVisibleTransportChoices());
 }
Esempio n. 3
0
 /**
  * {@inheritdoc}
  */
 public function setDefaultOptions(OptionsResolverInterface $resolver)
 {
     $resolver->setDefaults(['choices' => $this->emailTransportProvider->getVisibleTransportChoices()]);
 }