Open Monograph Press  3.3.0
Comparator.php
1 <?php
2 
3 namespace Money\PHPUnit;
4 
9 use Money\Money;
10 use SebastianBergmann\Comparator\ComparisonFailure;
11 
19 final class Comparator extends \SebastianBergmann\Comparator\Comparator
20 {
24  private $formatter;
25 
26  public function __construct()
27  {
28  parent::__construct();
29 
30  $currencies = new AggregateCurrencies([
31  new ISOCurrencies(),
32  new BitcoinCurrencies(),
33  ]);
34 
35  $numberFormatter = new \NumberFormatter('en_US', \NumberFormatter::CURRENCY);
36  $this->formatter = new IntlMoneyFormatter($numberFormatter, $currencies);
37  }
38 
39  public function accepts($expected, $actual)
40  {
41  return $expected instanceof Money && $actual instanceof Money;
42  }
43 
52  public function assertEquals(
53  $expected,
54  $actual,
55  $delta = 0.0,
56  $canonicalize = false,
57  $ignoreCase = false,
58  array &$processed = []
59  ) {
60  if (!$expected->equals($actual)) {
61  throw new ComparisonFailure(
62  $expected,
63  $actual,
64  $this->formatter->format($expected),
65  $this->formatter->format($actual),
66  false,
67  'Failed asserting that two Money objects are equal.'
68  );
69  }
70  }
71 }
Money\Money
Definition: Money.php:16
Money\Currencies\ISOCurrencies
Definition: ISOCurrencies.php:14
Money
Money\PHPUnit\Comparator\assertEquals
assertEquals( $expected, $actual, $delta=0.0, $canonicalize=false, $ignoreCase=false, array &$processed=[])
Definition: Comparator.php:55
Money\PHPUnit
Definition: Comparator.php:3
Money\PHPUnit\Comparator
Definition: Comparator.php:19
Money\PHPUnit\Comparator\accepts
accepts($expected, $actual)
Definition: Comparator.php:42
Money\PHPUnit\Comparator\__construct
__construct()
Definition: Comparator.php:29
Money\Formatter\IntlMoneyFormatter
Definition: IntlMoneyFormatter.php:14
Money\Currencies\AggregateCurrencies
Definition: AggregateCurrencies.php:14
Money\Currencies\BitcoinCurrencies
Definition: BitcoinCurrencies.php:12