/
CurrencyPairTest.php
79 lines (68 loc) · 1.87 KB
/
CurrencyPairTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
declare(strict_types=1);
namespace Tests\Money;
use Money\Currency;
use Money\CurrencyPair;
use PHPUnit\Framework\TestCase;
use function json_encode;
/** @covers \Money\CurrencyPair */
final class CurrencyPairTest extends TestCase
{
/**
* @test
*/
public function itProvidesGetters(): void
{
$pair = new CurrencyPair(
new Currency('USD'),
new Currency('EUR'),
'1.0'
);
self::assertEquals('USD', $pair->getBaseCurrency()->getCode());
self::assertEquals('EUR', $pair->getCounterCurrency()->getCode());
self::assertEquals('1.0', $pair->getConversionRatio());
}
/**
* @test
*/
public function itProvidesEquality(): void
{
$pair1 = new CurrencyPair(
new Currency('USD'),
new Currency('EUR'),
'1.0'
);
self::assertTrue($pair1->equals(new CurrencyPair(
new Currency('USD'),
new Currency('EUR'),
'1.0'
)));
self::assertFalse($pair1->equals(new CurrencyPair(
new Currency('USD'),
new Currency('EUR'),
'2.0'
)));
}
/**
* @test
*/
public function itConvertsToJson(): void
{
$pair = new CurrencyPair(
new Currency('USD'),
new Currency('EUR'),
'1.0'
);
self::assertEquals('{"baseCurrency":"USD","counterCurrency":"EUR","ratio":"1.0"}', json_encode($pair));
}
/**
* @test
*/
public function itCanBeCreatedWithAnIsoString(): void
{
$pair = CurrencyPair::createFromIso('EUR/USD 1.2500');
self::assertEquals('EUR', $pair->getBaseCurrency()->getCode());
self::assertEquals('USD', $pair->getCounterCurrency()->getCode());
self::assertEquals('1.2500', $pair->getConversionRatio());
}
}