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