/**
  * @test
  */
 public function itShouldReturnACurrencyPairAfterGettingTheRatioFromTheRepository()
 {
     $currencyFrom = new Currency(Currency::CURRENCY_CODE_EURO);
     $currencyTo = new Currency(Currency::CURRENCY_CODE_US_DOLLAR);
     $ratio = 1.5;
     $this->repository->shouldReceive('findRatio')->andReturn($ratio);
     $expectedCurrencyPair = new CurrencyPair($currencyFrom, $currencyTo, $ratio);
     $currencyPair = $this->service->execute($currencyFrom, $currencyTo);
     $this->assertEquals($expectedCurrencyPair, $currencyPair);
 }
 /**
  * @param Currency $currencyFrom
  * @param Currency $currencyTo
  *
  * @return CurrencyPair
  */
 public function execute(Currency $currencyFrom, Currency $currencyTo)
 {
     $ratio = $this->currencyPairRepository->findRatio($currencyFrom, $currencyTo);
     return new CurrencyPair($currencyFrom, $currencyTo, $ratio);
 }