예제 #1
0
파일: CreatePage.php 프로젝트: Niiko/Sylius
 /**
  * {@inheritdoc}
  */
 public function specifyPriceForChannelAndCurrency($price, ChannelInterface $channel, CurrencyInterface $currency)
 {
     $calculatorElement = $this->getElement('calculator');
     $calculatorElement->waitFor(5, function () use($channel, $currency) {
         return $this->getElement('calculator')->hasField(sprintf('%s %s', $channel->getName(), $currency->getCode()));
     });
     $calculatorElement->fillField(sprintf('%s %s', $channel->getName(), $currency->getCode()), $price);
 }
 function it_creates_a_default_united_states_channel_with_country_zone_and_usd_as_default_currency(RepositoryInterface $channelRepository, RepositoryInterface $countryRepository, RepositoryInterface $currencyRepository, RepositoryInterface $localeRepository, RepositoryInterface $zoneMemberRepository, RepositoryInterface $zoneRepository, ChannelFactoryInterface $channelFactory, FactoryInterface $countryFactory, FactoryInterface $currencyFactory, FactoryInterface $localeFactory, FactoryInterface $zoneFactory, FactoryInterface $zoneMemberFactory, ZoneMemberInterface $zoneMember, ZoneInterface $zone, ChannelInterface $channel, CountryInterface $unitedStates, CurrencyInterface $currency, LocaleInterface $locale)
 {
     $channel->getName()->willReturn('United States');
     $channelFactory->createNamed('United States')->willReturn($channel);
     $localeFactory->createNew()->willReturn($locale);
     $locale->setCode('en_US')->shouldBeCalled();
     $zoneMemberFactory->createNew()->willReturn($zoneMember);
     $zoneFactory->createNew()->willReturn($zone);
     $channel->setCode('WEB-US')->shouldBeCalled();
     $channel->setTaxCalculationStrategy('order_items_based')->shouldBeCalled();
     $zoneMember->setCode('US')->shouldBeCalled();
     $zone->setCode('US')->shouldBeCalled();
     $zone->setName('United States')->shouldBeCalled();
     $zone->setType(ZoneInterface::TYPE_COUNTRY)->shouldBeCalled();
     $zone->addMember($zoneMember)->shouldBeCalled();
     $countryFactory->createNew()->willReturn($unitedStates);
     $unitedStates->setCode('US')->shouldBeCalled();
     $currencyFactory->createNew()->willReturn($currency);
     $currency->setCode('USD')->shouldBeCalled();
     $currency->setExchangeRate(1.0)->shouldBeCalled();
     $channel->setDefaultCurrency($currency)->shouldBeCalled();
     $channel->addCurrency($currency)->shouldBeCalled();
     $channel->setDefaultLocale($locale)->shouldBeCalled();
     $channel->addLocale($locale)->shouldBeCalled();
     $currencyRepository->findOneBy(['code' => 'USD'])->willReturn(null);
     $localeRepository->findOneBy(['code' => 'en_US'])->willReturn(null);
     $currencyRepository->add($currency)->shouldBeCalled();
     $localeRepository->add($locale)->shouldBeCalled();
     $countryRepository->add($unitedStates)->shouldBeCalled();
     $channelRepository->add($channel)->shouldBeCalled();
     $zoneRepository->add($zone)->shouldBeCalled();
     $zoneMemberRepository->add($zoneMember)->shouldBeCalled();
     $this->create();
 }
 function it_creates_default_france_channel_with_country_zone_and_eur_as_default_currency($channelRepository, $countryRepository, $currencyRepository, $zoneMemberRepository, $zoneRepository, $channelFactory, $countryFactory, $currencyFactory, $zoneMemberFactory, $zoneFactory, ZoneMemberInterface $zoneMember, ZoneInterface $zone, ChannelInterface $channel, CountryInterface $france, CurrencyInterface $euro)
 {
     $channel->getName()->willReturn('France');
     $channelFactory->createNamed('France')->willReturn($channel);
     $zoneMemberFactory->createNew()->willReturn($zoneMember);
     $zoneFactory->createNew()->willReturn($zone);
     $channel->setCode('WEB-FR')->shouldBeCalled();
     $zoneMember->setCode('FR')->shouldBeCalled();
     $zone->setCode('FR')->shouldBeCalled();
     $zone->setName('France')->shouldBeCalled();
     $zone->setType(ZoneInterface::TYPE_COUNTRY)->shouldBeCalled();
     $zone->addMember($zoneMember)->shouldBeCalled();
     $countryFactory->createNew()->willReturn($france);
     $france->setCode('FR')->shouldBeCalled();
     $currencyFactory->createNew()->willReturn($euro);
     $euro->setCode('EUR')->shouldBeCalled();
     $euro->setExchangeRate(1.0)->shouldBeCalled();
     $euro->setBase(true)->shouldBeCalled();
     $channel->setDefaultCurrency($euro)->shouldBeCalled();
     $currencyRepository->add($euro)->shouldBeCalled();
     $countryRepository->add($france)->shouldBeCalled();
     $channelRepository->add($channel)->shouldBeCalled();
     $zoneRepository->add($zone)->shouldBeCalled();
     $zoneMemberRepository->add($zoneMember)->shouldBeCalled();
     $this->create();
 }
 function it_creates_france_country_and_zone($channelRepository, $zoneMemberRepository, $zoneRepository, $channelFactory, $zoneMemberFactory, $zoneFactory, ZoneMemberInterface $zoneMember, ZoneInterface $zone, ChannelInterface $channel)
 {
     $channel->getName()->willReturn('France');
     $channelFactory->createNamed('France')->willReturn($channel);
     $zoneMemberFactory->createNew()->willReturn($zoneMember);
     $zoneFactory->createNew()->willReturn($zone);
     $channel->setCode('WEB-FR')->shouldBeCalled();
     $zoneMember->setCode('FR')->shouldBeCalled();
     $zone->setCode('FR')->shouldBeCalled();
     $zone->setName('France')->shouldBeCalled();
     $zone->setType(ZoneInterface::TYPE_COUNTRY)->shouldBeCalled();
     $zone->addMember($zoneMember)->shouldBeCalled();
     $channelRepository->add($channel)->shouldBeCalled();
     $zoneRepository->add($zone)->shouldBeCalled();
     $zoneMemberRepository->add($zoneMember)->shouldBeCalled();
     $this->create();
 }
 /**
  * @param ChannelInterface $channel
  * @param string $configuration
  * @param array $data
  *
  * @return FormInterface
  */
 private function createConfigurationFieldForChannel(ChannelInterface $channel, $configuration, array $data)
 {
     $config = ['auto_initialize' => false, 'label' => $channel->getName(), 'currency' => $channel->getBaseCurrency()->getCode()];
     $data = empty($data) ? $data : $data[$channel->getCode()];
     return $this->factory->createNamed($channel->getCode(), $configuration, $data, $config);
 }
 /**
  * @param ChannelInterface $channel
  * @param bool $state
  */
 private function assertChannelState(ChannelInterface $channel, $state)
 {
     $this->iWantToBrowseChannels();
     Assert::true($this->indexPage->isSingleResourceOnPage(['name' => $channel->getName(), 'enabled' => $state]), sprintf('Channel with name %s and state %s has not been found.', $channel->getName(), $state));
 }