percent(); $percent55 = $tax55->percent(); // THEN expect($percent20)->toBe(20.0) ->and($percent55)->toBe(5.5); }); it('returns correct rate', function () { // GIVEN $tax20 = TaxRate::TVA_20; $tax55 = TaxRate::TVA_5_5; // WHEN $rate20 = $tax20->rate(); $rate55 = $tax55->rate(); // THEN expect($rate20)->toBe(0.2) ->and($rate55)->toBe(0.055); }); it('applies tax correctly to money', function () { // GIVEN $price = new Money(10000, new Currency('EUR')); // 100.00 EUR $tax20 = TaxRate::TVA_20; $tax55 = TaxRate::TVA_5_5; // WHEN $amountWithTax20 = $tax20->applyTo($price)->getAmount(); $amountWithTax55 = $tax55->applyTo($price)->getAmount(); // THEN expect($amountWithTax20)->toBe('12000') // 120.00 EUR ->and($amountWithTax55)->toBe('10550'); // 105.50 EUR }); });