Make MathUtilsTest more readable

This commit is contained in:
Ruben Dijkstra 2016-01-24 21:56:28 +01:00
parent 1f1238a78d
commit a0f0262357

View File

@ -14,6 +14,7 @@
package com.querydsl.core.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
import java.math.BigDecimal;
import java.math.BigInteger;
@ -33,25 +34,37 @@ public class MathUtilsTest {
}
@Test
public void cast() {
Integer value = 1;
assertEquals(BigDecimal.class, MathUtils.cast(value, BigDecimal.class).getClass());
assertEquals(BigInteger.class, MathUtils.cast(value, BigInteger.class).getClass());
assertEquals(Double.class, MathUtils.cast(value, Double.class).getClass());
assertEquals(Float.class, MathUtils.cast(value, Float.class).getClass());
assertEquals(Integer.class, MathUtils.cast(value, Integer.class).getClass());
assertEquals(Long.class, MathUtils.cast(value, Long.class).getClass());
assertEquals(Short.class, MathUtils.cast(value, Short.class).getClass());
assertEquals(Byte.class, MathUtils.cast(value, Byte.class).getClass());
public void cast_returns_correct_type() {
checkCast(1, BigDecimal.class);
checkCast(1, BigInteger.class);
checkCast(1, Double.class);
checkCast(1, Float.class);
checkCast(1, Integer.class);
checkCast(1, Long.class);
checkCast(1, Short.class);
checkCast(1, Byte.class);
}
assertEquals(BigDecimal.ONE, MathUtils.cast(value, BigDecimal.class));
assertEquals(BigInteger.ONE, MathUtils.cast(value, BigInteger.class));
assertEquals(Double.valueOf(1), MathUtils.cast(value, Double.class));
assertEquals(Float.valueOf(1), MathUtils.cast(value, Float.class));
assertEquals(Integer.valueOf(1), MathUtils.cast(value, Integer.class));
assertEquals(Long.valueOf(1), MathUtils.cast(value, Long.class));
assertEquals(Short.valueOf((short) 1), MathUtils.cast(value, Short.class));
assertEquals(Byte.valueOf((byte) 1), MathUtils.cast(value, Byte.class));
@Test
public void cast_returns_argument_as_is_when_compatible() {
checkSame(BigDecimal.ONE, BigDecimal.class);
checkSame(BigInteger.ONE, BigInteger.class);
checkSame((double) 1, Double.class);
checkSame((float) 1, Float.class);
checkSame(1, Integer.class);
checkSame((long) 1, Long.class);
checkSame((short) 1, Short.class);
checkSame((byte) 1, Byte.class);
}
private static void checkCast(Number value, Class<? extends Number> targetClass) {
Number target = MathUtils.cast(value, targetClass);
assertSame(targetClass, target.getClass());
}
private static <N extends Number> void checkSame(N value, Class<N> targetClass) {
N target = MathUtils.cast(value, targetClass);
assertSame(value, target);
}
}