Fix rounding when checking total mismatch

This commit is contained in:
Alex P 2022-06-14 19:27:15 +03:00
parent ff19c78d3a
commit 0e82a5f6c9
2 changed files with 5 additions and 3 deletions

View file

@ -393,8 +393,9 @@ class PurchaseUnit {
$amount_total += $insurance->value();
}
$amount_value = $amount->value();
$needs_to_ditch = (string) $amount_total !== (string) $amount_value;
$amount_str = (string) $amount->to_array()['value'];
$amount_total_str = (string) ( new Money( $amount_total, $amount->currency_code() ) )->to_array()['value'];
$needs_to_ditch = $amount_str !== $amount_total_str;
return $needs_to_ditch;
}
}

View file

@ -443,8 +443,9 @@ class PurchaseUnitTest extends TestCase
}
}
$amount = Mockery::mock(Amount::class);
$amount->shouldReceive('to_array')->andReturn(['value' => [], 'breakdown' => []]);
$amount->shouldReceive('to_array')->andReturn(['value' => number_format( $test['amount'], 2, '.', '' ), 'breakdown' => []]);
$amount->shouldReceive('value')->andReturn($test['amount']);
$amount->shouldReceive('currency_code')->andReturn('EUR');
$amount->shouldReceive('breakdown')->andReturn($breakdown);
$values[$testKey] = [