/**
  * {@inheritdoc}
  */
 public function update(OrderInterface $order)
 {
     /** @var CurrencyInterface $currency */
     $currency = $this->currencyRepository->findOneBy(['code' => $this->currencyContext->getCurrencyCode()]);
     $order->setCurrencyCode($currency->getCode());
     $order->setExchangeRate($currency->getExchangeRate());
 }
 /**
  * {@inheritdoc}
  *
  * @throws \InvalidArgumentException
  */
 public function update(OrderInterface $order)
 {
     $currencyCode = $order->getCurrencyCode();
     /** @var CurrencyInterface $currency */
     $currency = $this->currencyRepository->findOneBy(['code' => $currencyCode]);
     Assert::notNull($currency);
     $order->setExchangeRate($currency->getExchangeRate());
 }
 function it_updates_orders_exchange_rate(RepositoryInterface $currencyRepository, OrderInterface $order, CurrencyInterface $currency)
 {
     $order->getCurrencyCode()->willReturn('USD');
     $currency->getCode()->willReturn('USD');
     $currency->getExchangeRate()->willReturn(2);
     $currencyRepository->findOneBy(['code' => 'USD'])->willReturn($currency);
     $order->setExchangeRate(2)->shouldBeCalled();
     $this->update($order);
 }
 function it_updates_order_exchange_rate(OrderInterface $order, CurrencyContextInterface $currencyContext, RepositoryInterface $currencyRepository, CurrencyInterface $currency, ChannelInterface $channel)
 {
     $order->getChannel()->willReturn($channel);
     $currencyContext->getCurrencyCode()->willReturn('GBP');
     $currencyRepository->findOneBy(['code' => 'GBP'])->willReturn($currency);
     $currency->getExchangeRate()->willReturn(3.5);
     $currency->getCode()->willReturn('GBP');
     $order->setCurrencyCode('GBP')->shouldBeCalled();
     $order->setExchangeRate(3.5)->shouldBeCalled();
     $this->update($order);
 }