forked from plusone/plusone-commons
206 lines
5.9 KiB
Java
206 lines
5.9 KiB
Java
/*
|
|
* Copyright 2024 the original author or authors.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* https://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package xyz.zhouxy.plusone.commons.util;
|
|
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
@Slf4j
|
|
public class BigDecimalsTests {
|
|
|
|
@Test
|
|
void equalsValue_NullValues_ReturnsTrue() {
|
|
assertTrue(BigDecimals.equalsValue(null, null));
|
|
}
|
|
|
|
@Test
|
|
void equalsValue_SameNonNullableValues_ReturnsTrue() {
|
|
BigDecimal bd1 = new BigDecimal("10");
|
|
BigDecimal bd2 = new BigDecimal("10.0");
|
|
assertTrue(BigDecimals.equalsValue(bd1, bd2));
|
|
}
|
|
|
|
@Test
|
|
void equalsValue_DifferentNonNullableValues_ReturnsFalse() {
|
|
BigDecimal bd1 = new BigDecimal("10");
|
|
BigDecimal bd2 = new BigDecimal("20");
|
|
assertFalse(BigDecimals.equalsValue(bd1, bd2));
|
|
}
|
|
|
|
@Test
|
|
void equalsValue_OneNullOneNonNullValue_ReturnsFalse() {
|
|
BigDecimal bd = new BigDecimal("10");
|
|
assertFalse(BigDecimals.equalsValue(bd, null));
|
|
assertFalse(BigDecimals.equalsValue(null, bd));
|
|
}
|
|
|
|
@Test
|
|
void gt_NullFirstValue_ThrowsException() {
|
|
BigDecimal bd = new BigDecimal("10");
|
|
assertThrows(NullPointerException.class, () -> BigDecimals.gt(null, bd));
|
|
}
|
|
|
|
@Test
|
|
void gt_NullSecondValue_ThrowsException() {
|
|
BigDecimal bd = new BigDecimal("10");
|
|
assertThrows(NullPointerException.class, () -> BigDecimals.gt(bd, null));
|
|
}
|
|
|
|
@Test
|
|
void gt_SameValues_ReturnsFalse() {
|
|
BigDecimal bd = new BigDecimal("10");
|
|
assertFalse(BigDecimals.gt(bd, bd));
|
|
}
|
|
|
|
@Test
|
|
void gt_FirstGreaterThanSecond_ReturnsTrue() {
|
|
BigDecimal bd1 = new BigDecimal("20");
|
|
BigDecimal bd2 = new BigDecimal("10");
|
|
assertTrue(BigDecimals.gt(bd1, bd2));
|
|
}
|
|
|
|
@Test
|
|
void ge_NullFirstValue_ThrowsException() {
|
|
BigDecimal bd = new BigDecimal("10");
|
|
assertThrows(NullPointerException.class, () -> BigDecimals.ge(null, bd));
|
|
}
|
|
|
|
@Test
|
|
void ge_NullSecondValue_ThrowsException() {
|
|
BigDecimal bd = new BigDecimal("10");
|
|
assertThrows(NullPointerException.class, () -> BigDecimals.ge(bd, null));
|
|
}
|
|
|
|
@Test
|
|
void ge_SameValues_ReturnsTrue() {
|
|
BigDecimal bd = new BigDecimal("10");
|
|
assertTrue(BigDecimals.ge(bd, bd));
|
|
}
|
|
|
|
@Test
|
|
void ge_FirstGreaterThanSecond_ReturnsTrue() {
|
|
BigDecimal bd1 = new BigDecimal("20");
|
|
BigDecimal bd2 = new BigDecimal("10");
|
|
assertTrue(BigDecimals.ge(bd1, bd2));
|
|
}
|
|
|
|
@Test
|
|
void lt_NullFirstValue_ThrowsException() {
|
|
BigDecimal bd = new BigDecimal("10");
|
|
assertThrows(NullPointerException.class, () -> BigDecimals.lt(null, bd));
|
|
}
|
|
|
|
@Test
|
|
void lt_NullSecondValue_ThrowsException() {
|
|
BigDecimal bd = new BigDecimal("10");
|
|
assertThrows(NullPointerException.class, () -> BigDecimals.lt(bd, null));
|
|
}
|
|
|
|
@Test
|
|
void lt_SameValues_ReturnsFalse() {
|
|
BigDecimal bd = new BigDecimal("10");
|
|
assertFalse(BigDecimals.lt(bd, bd));
|
|
}
|
|
|
|
@Test
|
|
void lt_FirstLessThanSecond_ReturnsTrue() {
|
|
BigDecimal bd1 = new BigDecimal("10");
|
|
BigDecimal bd2 = new BigDecimal("20");
|
|
assertTrue(BigDecimals.lt(bd1, bd2));
|
|
}
|
|
|
|
@Test
|
|
void le_NullFirstValue_ThrowsException() {
|
|
BigDecimal bd = new BigDecimal("10");
|
|
assertThrows(NullPointerException.class, () -> BigDecimals.le(null, bd));
|
|
}
|
|
|
|
@Test
|
|
void le_NullSecondValue_ThrowsException() {
|
|
BigDecimal bd = new BigDecimal("10");
|
|
assertThrows(NullPointerException.class, () -> BigDecimals.le(bd, null));
|
|
}
|
|
|
|
@Test
|
|
void le_SameValues_ReturnsTrue() {
|
|
BigDecimal bd = new BigDecimal("10");
|
|
assertTrue(BigDecimals.le(bd, bd));
|
|
}
|
|
|
|
@Test
|
|
void le_FirstLessThanSecond_ReturnsTrue() {
|
|
BigDecimal bd1 = new BigDecimal("10");
|
|
BigDecimal bd2 = new BigDecimal("20");
|
|
assertTrue(BigDecimals.le(bd1, bd2));
|
|
}
|
|
|
|
@Test
|
|
void sum_NullArray_ReturnsZero() {
|
|
assertEquals(BigDecimal.ZERO, BigDecimals.sum());
|
|
}
|
|
|
|
@Test
|
|
void sum_SingleNonNullValue_ReturnsSameValue() {
|
|
BigDecimal bd = new BigDecimal("10");
|
|
assertEquals(bd, BigDecimals.sum(bd));
|
|
}
|
|
|
|
@Test
|
|
void sum_SingleNullValue_ReturnsZero() {
|
|
assertEquals(BigDecimal.ZERO, BigDecimals.sum((BigDecimal) null));
|
|
}
|
|
|
|
@Test
|
|
void sum_MultipleValues_ReturnsCorrectSum() {
|
|
BigDecimal bd1 = new BigDecimal("10");
|
|
BigDecimal bd2 = new BigDecimal("20");
|
|
BigDecimal bd3 = new BigDecimal("30");
|
|
BigDecimal bd4 = null;
|
|
assertEquals(new BigDecimal("60"), BigDecimals.sum(bd1, bd2, bd3, bd4));
|
|
}
|
|
|
|
@Test
|
|
void nullToZero_NullValue_ReturnsZero() {
|
|
assertEquals(BigDecimal.ZERO, BigDecimals.nullToZero(null));
|
|
}
|
|
|
|
@Test
|
|
void nullToZero_NonNullValue_ReturnsSameValue() {
|
|
BigDecimal bd = new BigDecimal("10");
|
|
assertEquals(bd, BigDecimals.nullToZero(bd));
|
|
}
|
|
|
|
@Test
|
|
void of_BlankString_ReturnsZero() {
|
|
assertEquals(BigDecimal.ZERO, BigDecimals.of(null));
|
|
assertEquals(BigDecimal.ZERO, BigDecimals.of(""));
|
|
assertEquals(BigDecimal.ZERO, BigDecimals.of(" "));
|
|
}
|
|
|
|
@Test
|
|
void of_NonBlankString_ReturnsCorrectBigDecimal() {
|
|
BigDecimal bd = new BigDecimal("10");
|
|
assertEquals(bd, BigDecimals.of("10"));
|
|
}
|
|
|
|
}
|