/** * {@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)); }