mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-10-01 11:49:04 +00:00
Polish contribution
See gh-36956
This commit is contained in:
+1
@@ -33,6 +33,7 @@ final class NumberToDataSizeConverter implements Converter<Number, DataSize> {
|
||||
@Override
|
||||
public DataSize convert(Number source) {
|
||||
long bytes = source.longValue();
|
||||
// Ensure Number is a whole number.
|
||||
if (source.doubleValue() - bytes != 0) {
|
||||
throw new IllegalArgumentException("'" + source + "' is not a valid data size");
|
||||
}
|
||||
|
||||
+13
-3
@@ -44,6 +44,7 @@ import java.util.Properties;
|
||||
import java.util.Set;
|
||||
import java.util.TimeZone;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@@ -257,19 +258,28 @@ class DefaultConversionServiceTests {
|
||||
}
|
||||
|
||||
@Test // gh-36830
|
||||
void numberToDataSizeWithDecimalNumber() {
|
||||
void numberToDataSizeConversionRejectsNumberWithFractionalPart() {
|
||||
assertThatExceptionOfType(ConversionFailedException.class)
|
||||
.isThrownBy(() -> conversionService.convert(10.5, DataSize.class));
|
||||
.isThrownBy(() -> conversionService.convert(-10.5, DataSize.class))
|
||||
.havingRootCause()
|
||||
.isInstanceOf(IllegalArgumentException.class)
|
||||
.withMessage("'-10.5' is not a valid data size");
|
||||
assertThatExceptionOfType(ConversionFailedException.class)
|
||||
.isThrownBy(() -> conversionService.convert(new BigDecimal("10.5"), DataSize.class));
|
||||
.isThrownBy(() -> conversionService.convert(new BigDecimal("10.5"), DataSize.class))
|
||||
.havingRootCause()
|
||||
.isInstanceOf(IllegalArgumentException.class)
|
||||
.withMessage("'10.5' is not a valid data size");
|
||||
}
|
||||
|
||||
@Test // gh-36830
|
||||
void numberToDataSize() {
|
||||
assertThat(conversionService.convert(10, DataSize.class)).isEqualTo(DataSize.ofBytes(10));
|
||||
assertThat(conversionService.convert(10.0, DataSize.class)).isEqualTo(DataSize.ofBytes(10));
|
||||
assertThat(conversionService.convert(-10L, DataSize.class)).isEqualTo(DataSize.ofBytes(-10));
|
||||
assertThat(conversionService.convert(-10.0, DataSize.class)).isEqualTo(DataSize.ofBytes(-10));
|
||||
assertThat(conversionService.convert(new BigDecimal("10"), DataSize.class)).isEqualTo(DataSize.ofBytes(10));
|
||||
assertThat(conversionService.convert(new BigDecimal("10.0"), DataSize.class)).isEqualTo(DataSize.ofBytes(10));
|
||||
assertThat(conversionService.convert(new AtomicInteger(1000), DataSize.class)).isEqualTo(DataSize.ofBytes(1000));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user