BAEL-7447: Integer to BigDecimal (#15563)
This commit is contained in:
parent
bf3b5a42f8
commit
36edee6be7
|
@ -0,0 +1,33 @@
|
|||
package com.baeldung.integertobigdecimal;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.stream.Stream;
|
||||
import org.junit.jupiter.api.extension.ExtensionContext;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.ArgumentsProvider;
|
||||
|
||||
public class BigDecimalConversionArgumentsProvider implements ArgumentsProvider {
|
||||
|
||||
@Override
|
||||
public Stream<? extends Arguments> provideArguments(ExtensionContext context) {
|
||||
return Stream.of(
|
||||
Arguments.of(Integer.valueOf(0), BigDecimal.valueOf(0)),
|
||||
Arguments.of(Integer.valueOf(1), BigDecimal.valueOf(1)),
|
||||
Arguments.of(Integer.valueOf(2), BigDecimal.valueOf(2)),
|
||||
Arguments.of(Integer.valueOf(3), BigDecimal.valueOf(3)),
|
||||
Arguments.of(Integer.valueOf(4), BigDecimal.valueOf(4)),
|
||||
Arguments.of(Integer.valueOf(5), BigDecimal.valueOf(5)),
|
||||
Arguments.of(Integer.valueOf(6), BigDecimal.valueOf(6)),
|
||||
Arguments.of(Integer.valueOf(7), BigDecimal.valueOf(7)),
|
||||
Arguments.of(Integer.valueOf(8), BigDecimal.valueOf(8)),
|
||||
Arguments.of(Integer.valueOf(9), BigDecimal.valueOf(9)),
|
||||
Arguments.of(Integer.valueOf(10), BigDecimal.valueOf(10)),
|
||||
Arguments.of(Integer.valueOf(11), BigDecimal.valueOf(11)),
|
||||
Arguments.of(Integer.valueOf(12), BigDecimal.valueOf(12)),
|
||||
Arguments.of(Integer.valueOf(13), BigDecimal.valueOf(13)),
|
||||
Arguments.of(Integer.valueOf(14), BigDecimal.valueOf(14)),
|
||||
Arguments.of(Integer.valueOf(15), BigDecimal.valueOf(15))
|
||||
);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
package com.baeldung.integertobigdecimal;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.ArgumentsSource;
|
||||
import org.junit.jupiter.params.provider.ValueSource;
|
||||
|
||||
class IntegerToBigDecimalUnitTest {
|
||||
|
||||
@ParameterizedTest
|
||||
@ArgumentsSource(BigDecimalConversionArgumentsProvider.class)
|
||||
void giveIntegerWhenConvertWithConstructorToBigDecimalThenConversionCorrect(Integer given, BigDecimal expected) {
|
||||
BigDecimal actual = new BigDecimal(given);
|
||||
assertThat(actual).isEqualTo(expected);
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@ValueSource(ints = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10})
|
||||
void giveIntegerWhenConvertWithConstructorToBigDecimalThenConversionWithoutCaching(Integer given) {
|
||||
BigDecimal firstBigDecimal = new BigDecimal(given);
|
||||
BigDecimal secondBigDecimal = new BigDecimal(given);
|
||||
assertThat(firstBigDecimal)
|
||||
.isEqualTo(secondBigDecimal)
|
||||
.isNotSameAs(secondBigDecimal);
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@ArgumentsSource(BigDecimalConversionArgumentsProvider.class)
|
||||
void giveIntegerWhenConvertWithValueOfToBigDecimalThenConversionCorrect(Integer given, BigDecimal expected) {
|
||||
BigDecimal actual = BigDecimal.valueOf(given);
|
||||
assertThat(actual).isEqualTo(expected);
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@ValueSource(ints = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10})
|
||||
void giveIntegerWhenConvertWithValueOfToBigDecimalThenConversionCachesTheResults(Integer given) {
|
||||
BigDecimal firstBigDecimal = BigDecimal.valueOf(given);
|
||||
BigDecimal secondBigDecimal = BigDecimal.valueOf(given);
|
||||
assertThat(firstBigDecimal).isSameAs(secondBigDecimal);
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@ValueSource(ints = {11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21})
|
||||
void giveIntegerWhenConvertWithValueOfToBigDecimalThenConversionWontCacheTheResults(Integer given) {
|
||||
BigDecimal firstBigDecimal = BigDecimal.valueOf(given);
|
||||
BigDecimal secondBigDecimal = BigDecimal.valueOf(given);
|
||||
assertThat(firstBigDecimal)
|
||||
.isEqualTo(secondBigDecimal)
|
||||
.isNotSameAs(secondBigDecimal);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue