[ 
https://issues.apache.org/jira/browse/FINERACT-2576?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tofunmi Oguntibeju resolved FINERACT-2576.
------------------------------------------
    Resolution: Fixed

> Add unit tests for MoneyTest in fineract-core
> ---------------------------------------------
>
>                 Key: FINERACT-2576
>                 URL: https://issues.apache.org/jira/browse/FINERACT-2576
>             Project: Apache Fineract
>          Issue Type: Test
>          Components: Test
>            Reporter: Tofunmi Oguntibeju
>            Priority: Minor
>
> This PR adds a comprehensive {{MoneyTest}} suite covering all major 
> operations on the {{Money}} class, including parameterized edge cases for 
> floating-point precision, boundary values, and identity/immutability 
> behaviour.
> *Test coverage added:*
>  * {{plus(double)}} — parameterized cases including negative values and 
> floating-point precision edge cases
>  * {{total(Money...)}} varargs — aggregation of multiple {{Money}} instances, 
> and exception thrown on empty input
>  * {{total(Iterable<Money>)}} — iterable aggregation including single-element 
> and empty-list exception cases
>  * {{roundToMultiplesOf(double, int)}} — parameterized cases plus NaN return 
> for negative values
>  * {{roundToMultiplesOf(BigDecimal, Integer)}} — parameterized cases 
> including zero and negative multiples
>  * {{roundToMultiplesOf(Money, int)}} — with and without {{{}MathContext{}}}, 
> including zero-multiple passthrough
>  * {{ceiling(double, double)}} — NaN cases and valid cases covering zero, 
> exact multiples, and rounding up
>  * {{floor(double, double)}} — NaN cases and valid cases covering negative 
> step sizes and floating-point steps
>  * {{getAmountDefaultedToNullIfZero()}} — null for zero, non-null with 
> correct value for non-zero
>  * {{dividedBy(BigDecimal/double/long)}} — identity optimisation (returns 
> same instance when dividing by 1), correct results for division by 2
>  * {{multipliedBy(BigDecimal/double/long)}} — with and without 
> {{{}MathContext{}}}, identity optimisation for multiplier of 1
>  * {{multiplyRetainScale(BigDecimal/double)}} — scale preservation at 
> currency decimal places
>  * {{percentageOf(BigDecimal)}} — 50%, 100%, and 0% cases
>  * {{negated()}} — positive, negative, and zero (returns same instance for 
> zero)
>  * {{abs()}} — positive, negative, zero, and with {{MathContext}}
>  * {{zero()}} — instance method with and without {{MathContext}}
>  * {{getMc()}} — non-null {{MathContext}} assertion
>  * {{copy()}} — value equality, same currency, different instance; copy with 
> {{BigDecimal}} and {{double}} overrides
> Effectively increasing test coverage to 81%



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to