1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-11 13:42:49 +01:00
invoiceninja/tests/Unit/CurrencyApiTest.php

74 lines
1.7 KiB
PHP
Raw Normal View History

<?php
2020-09-14 13:11:46 +02:00
/**
* Invoice Ninja (https://invoiceninja.com).
*
* @link https://github.com/invoiceninja/invoiceninja source repository
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
2020-09-14 13:11:46 +02:00
*
* @license https://www.elastic.co/licensing/elastic-license
2020-09-14 13:11:46 +02:00
*/
namespace Tests\Unit;
use App\Libraries\Currency\Conversion\CurrencyApi;
2024-01-09 11:29:32 +01:00
use App\Models\Currency;
use Illuminate\Support\Carbon;
use Tests\TestCase;
/**
* @test
* @covers App\Libraries\Currency\Conversion\CurrencyApi
*/
class CurrencyApiTest extends TestCase
{
protected function setUp() :void
{
parent::setUp();
}
2024-01-09 11:29:32 +01:00
public function testConversionAudToEur()
{
$converter = new CurrencyApi();
$converted_amount = $converter->convert(100, 12, 3);
$aud_currency = Currency::find(12);
$eur_currency = Currency::find(3);
$converted_synthetic = 100 / ($aud_currency->exchange_rate / $eur_currency->exchange_rate);
$this->assertEquals(round($converted_synthetic, 2), round($converted_amount, 2));
2024-01-09 11:49:29 +01:00
2024-01-09 11:29:32 +01:00
}
public function testCurrencyConversionWorking()
{
$converter = new CurrencyApi();
$converted_amount = $converter->convert(100, 1, 2);
$this->assertIsFloat($converted_amount);
}
public function testExchangeRate()
{
$converter = new CurrencyApi();
$exchange_rate = $converter->exchangeRate(1, 2);
$this->assertIsNumeric($exchange_rate);
}
public function testExchangeRateWithDate()
{
$date = Carbon::parse('2020-03-08');
$converter = new CurrencyApi();
$exchange_rate = $converter->exchangeRate(1, 2, $date);
$this->assertIsNumeric($exchange_rate);
}
}