Commit 6598c749 by Mandar Ambawane Committed by Madhan Neethiraj

ATLAS-3347: fixed range-validation for primitive attribute types

parent 620861e3
...@@ -57,7 +57,10 @@ public class AtlasBuiltInTypes { ...@@ -57,7 +57,10 @@ public class AtlasBuiltInTypes {
@Override @Override
public boolean isValidValue(Object obj) { public boolean isValidValue(Object obj) {
return true; if (obj == null) {
return true;
}
return getNormalizedValue(obj) != null;
} }
@Override @Override
...@@ -65,11 +68,12 @@ public class AtlasBuiltInTypes { ...@@ -65,11 +68,12 @@ public class AtlasBuiltInTypes {
if (obj != null) { if (obj != null) {
if (obj instanceof Boolean) { if (obj instanceof Boolean) {
return (Boolean)obj; return (Boolean)obj;
} else { } else if (obj instanceof String){
return Boolean.valueOf(obj.toString()); if (obj.toString().equalsIgnoreCase("true") || obj.toString().equalsIgnoreCase("false")) {
return Boolean.valueOf(obj.toString());
}
} }
} }
return null; return null;
} }
} }
...@@ -78,7 +82,9 @@ public class AtlasBuiltInTypes { ...@@ -78,7 +82,9 @@ public class AtlasBuiltInTypes {
* class that implements behaviour of byte type. * class that implements behaviour of byte type.
*/ */
public static class AtlasByteType extends AtlasType { public static class AtlasByteType extends AtlasType {
private static final Byte DEFAULT_VALUE = (byte) 0; private static final Byte DEFAULT_VALUE = (byte) 0;
private static final BigInteger MIN_VALUE = BigInteger.valueOf(Byte.MIN_VALUE);
private static final BigInteger MAX_VALUE = BigInteger.valueOf(Byte.MAX_VALUE);
public AtlasByteType() { public AtlasByteType() {
super(AtlasBaseTypeDef.ATLAS_TYPE_BYTE, TypeCategory.PRIMITIVE, SERVICE_TYPE_ATLAS_CORE); super(AtlasBaseTypeDef.ATLAS_TYPE_BYTE, TypeCategory.PRIMITIVE, SERVICE_TYPE_ATLAS_CORE);
...@@ -91,7 +97,7 @@ public class AtlasBuiltInTypes { ...@@ -91,7 +97,7 @@ public class AtlasBuiltInTypes {
@Override @Override
public boolean isValidValue(Object obj) { public boolean isValidValue(Object obj) {
if (obj == null || obj instanceof Number) { if (obj == null || obj instanceof Byte) {
return true; return true;
} }
...@@ -100,11 +106,12 @@ public class AtlasBuiltInTypes { ...@@ -100,11 +106,12 @@ public class AtlasBuiltInTypes {
@Override @Override
public Byte getNormalizedValue(Object obj) { public Byte getNormalizedValue(Object obj) {
if (obj != null) { if (obj != null) {
if (obj instanceof Byte) { if (obj instanceof Byte) {
return (Byte) obj; return (Byte) obj;
} else if (obj instanceof Number) { } else if (obj instanceof Number) {
return ((Number) obj).byteValue(); return isValidRange((Number) obj) ? ((Number) obj).byteValue() : null;
} else { } else {
String strValue = obj.toString(); String strValue = obj.toString();
...@@ -120,13 +127,33 @@ public class AtlasBuiltInTypes { ...@@ -120,13 +127,33 @@ public class AtlasBuiltInTypes {
return null; return null;
} }
private boolean isValidRange(Number num) {
final boolean ret;
if (num instanceof Byte) {
ret = true;
} else if (num instanceof Double || num instanceof Float || num instanceof Long || num instanceof Integer || num instanceof Short) {
long longVal = num.longValue();
ret = longVal >= Byte.MIN_VALUE && longVal <= Byte.MAX_VALUE;
} else {
BigInteger bigInt = toBigInteger(num);
ret = bigInt.compareTo(MIN_VALUE) >= 0 && bigInt.compareTo(MAX_VALUE) <= 0;
}
return ret;
}
} }
/** /**
* class that implements behaviour of short type. * class that implements behaviour of short type.
*/ */
public static class AtlasShortType extends AtlasType { public static class AtlasShortType extends AtlasType {
private static final Short DEFAULT_VALUE = (short) 0; private static final Short DEFAULT_VALUE = (short) 0;
private static final BigInteger MIN_VALUE = BigInteger.valueOf(Short.MIN_VALUE);
private static final BigInteger MAX_VALUE = BigInteger.valueOf(Short.MAX_VALUE);
public AtlasShortType() { public AtlasShortType() {
super(AtlasBaseTypeDef.ATLAS_TYPE_SHORT, TypeCategory.PRIMITIVE, SERVICE_TYPE_ATLAS_CORE); super(AtlasBaseTypeDef.ATLAS_TYPE_SHORT, TypeCategory.PRIMITIVE, SERVICE_TYPE_ATLAS_CORE);
...@@ -139,7 +166,7 @@ public class AtlasBuiltInTypes { ...@@ -139,7 +166,7 @@ public class AtlasBuiltInTypes {
@Override @Override
public boolean isValidValue(Object obj) { public boolean isValidValue(Object obj) {
if (obj == null || obj instanceof Number) { if (obj == null || obj instanceof Short) {
return true; return true;
} }
...@@ -152,7 +179,7 @@ public class AtlasBuiltInTypes { ...@@ -152,7 +179,7 @@ public class AtlasBuiltInTypes {
if (obj instanceof Short) { if (obj instanceof Short) {
return (Short)obj; return (Short)obj;
} else if (obj instanceof Number) { } else if (obj instanceof Number) {
return ((Number) obj).shortValue(); return isValidRange((Number) obj) ? ((Number) obj).shortValue() : null;
} else { } else {
try { try {
return Short.valueOf(obj.toString()); return Short.valueOf(obj.toString());
...@@ -161,16 +188,35 @@ public class AtlasBuiltInTypes { ...@@ -161,16 +188,35 @@ public class AtlasBuiltInTypes {
} }
} }
} }
return null; return null;
} }
private boolean isValidRange(Number num) {
final boolean ret;
if (num instanceof Short || num instanceof Byte) {
ret = true;
} else if (num instanceof Double || num instanceof Float || num instanceof Long || num instanceof Integer) {
long longVal = num.longValue();
ret = longVal >= Short.MIN_VALUE && longVal <= Short.MAX_VALUE;
} else {
BigInteger bigInt = toBigInteger(num);
ret = bigInt.compareTo(MIN_VALUE) >= 0 && bigInt.compareTo(MAX_VALUE) <= 0;
}
return ret;
}
} }
/** /**
* class that implements behaviour of integer type. * class that implements behaviour of integer type.
*/ */
public static class AtlasIntType extends AtlasType { public static class AtlasIntType extends AtlasType {
private static final Integer DEFAULT_VALUE = 0; private static final Integer DEFAULT_VALUE = 0;
private static final BigInteger MIN_VALUE = BigInteger.valueOf(Integer.MIN_VALUE);
private static final BigInteger MAX_VALUE = BigInteger.valueOf(Integer.MAX_VALUE);
public AtlasIntType() { public AtlasIntType() {
super(AtlasBaseTypeDef.ATLAS_TYPE_INT, TypeCategory.PRIMITIVE, SERVICE_TYPE_ATLAS_CORE); super(AtlasBaseTypeDef.ATLAS_TYPE_INT, TypeCategory.PRIMITIVE, SERVICE_TYPE_ATLAS_CORE);
...@@ -183,7 +229,7 @@ public class AtlasBuiltInTypes { ...@@ -183,7 +229,7 @@ public class AtlasBuiltInTypes {
@Override @Override
public boolean isValidValue(Object obj) { public boolean isValidValue(Object obj) {
if (obj == null || obj instanceof Number) { if (obj == null || obj instanceof Integer) {
return true; return true;
} }
...@@ -192,11 +238,12 @@ public class AtlasBuiltInTypes { ...@@ -192,11 +238,12 @@ public class AtlasBuiltInTypes {
@Override @Override
public Integer getNormalizedValue(Object obj) { public Integer getNormalizedValue(Object obj) {
if (obj != null) { if (obj != null) {
if (obj instanceof Integer) { if (obj instanceof Integer) {
return (Integer) obj; return (Integer) obj;
} else if (obj instanceof Number) { } else if (obj instanceof Number) {
return ((Number) obj).intValue(); return isValidRange((Number) obj) ? ((Number) obj).intValue() : null;
} else { } else {
try { try {
return Integer.valueOf(obj.toString()); return Integer.valueOf(obj.toString());
...@@ -208,13 +255,33 @@ public class AtlasBuiltInTypes { ...@@ -208,13 +255,33 @@ public class AtlasBuiltInTypes {
return null; return null;
} }
private boolean isValidRange(Number num) {
final boolean ret;
if (num instanceof Integer || num instanceof Short || num instanceof Byte) {
ret = true;
} else if (num instanceof Double || num instanceof Float || num instanceof Long) {
long longVal = num.longValue();
ret = longVal >= Integer.MIN_VALUE && longVal <= Integer.MAX_VALUE;
} else {
BigInteger bigInt = toBigInteger(num);
ret = bigInt.compareTo(MIN_VALUE) >= 0 && bigInt.compareTo(MAX_VALUE) <= 0;
}
return ret;
}
} }
/** /**
* class that implements behaviour of long type. * class that implements behaviour of long type.
*/ */
public static class AtlasLongType extends AtlasType { public static class AtlasLongType extends AtlasType {
private static final Long DEFAULT_VALUE = 0L; private static final Long DEFAULT_VALUE = 0L;
private static final BigInteger MIN_VALUE = BigInteger.valueOf(Long.MIN_VALUE);
private static final BigInteger MAX_VALUE = BigInteger.valueOf(Long.MAX_VALUE);
public AtlasLongType() { public AtlasLongType() {
super(AtlasBaseTypeDef.ATLAS_TYPE_LONG, TypeCategory.PRIMITIVE, SERVICE_TYPE_ATLAS_CORE); super(AtlasBaseTypeDef.ATLAS_TYPE_LONG, TypeCategory.PRIMITIVE, SERVICE_TYPE_ATLAS_CORE);
...@@ -227,7 +294,7 @@ public class AtlasBuiltInTypes { ...@@ -227,7 +294,7 @@ public class AtlasBuiltInTypes {
@Override @Override
public boolean isValidValue(Object obj) { public boolean isValidValue(Object obj) {
if (obj == null || obj instanceof Number) { if (obj == null || obj instanceof Long) {
return true; return true;
} }
...@@ -240,7 +307,7 @@ public class AtlasBuiltInTypes { ...@@ -240,7 +307,7 @@ public class AtlasBuiltInTypes {
if (obj instanceof Long) { if (obj instanceof Long) {
return (Long) obj; return (Long) obj;
} else if (obj instanceof Number) { } else if (obj instanceof Number) {
return ((Number) obj).longValue(); return isValidRange((Number) obj) ? ((Number) obj).longValue() : null;
} else { } else {
try { try {
return Long.valueOf(obj.toString()); return Long.valueOf(obj.toString());
...@@ -252,14 +319,30 @@ public class AtlasBuiltInTypes { ...@@ -252,14 +319,30 @@ public class AtlasBuiltInTypes {
return null; return null;
} }
private boolean isValidRange(Number num) {
final boolean ret;
if (num instanceof Long || num instanceof Integer || num instanceof Short || num instanceof Byte) {
ret = true;
} else {
BigInteger number = toBigInteger(num);
ret = (number.compareTo(MIN_VALUE) >= 0) && (number.compareTo(MAX_VALUE) <= 0);
}
return ret;
}
} }
/** /**
* class that implements behaviour of float type. * class that implements behaviour of float type.
*/ */
public static class AtlasFloatType extends AtlasType { public static class AtlasFloatType extends AtlasType {
private static final Float DEFAULT_VALUE = 0f; private static final Float DEFAULT_VALUE = 0f;
private static final Float FLOAT_EPSILON = 0.00000001f; private static final Float FLOAT_EPSILON = 0.00000001f;
private static final BigDecimal MIN_VALUE = BigDecimal.valueOf(-Float.MAX_VALUE);
private static final BigDecimal MAX_VALUE = BigDecimal.valueOf(Float.MAX_VALUE);
public AtlasFloatType() { public AtlasFloatType() {
super(AtlasBaseTypeDef.ATLAS_TYPE_FLOAT, TypeCategory.PRIMITIVE, SERVICE_TYPE_ATLAS_CORE); super(AtlasBaseTypeDef.ATLAS_TYPE_FLOAT, TypeCategory.PRIMITIVE, SERVICE_TYPE_ATLAS_CORE);
...@@ -272,7 +355,7 @@ public class AtlasBuiltInTypes { ...@@ -272,7 +355,7 @@ public class AtlasBuiltInTypes {
@Override @Override
public boolean isValidValue(Object obj) { public boolean isValidValue(Object obj) {
if (obj == null || obj instanceof Number) { if (obj == null) {
return true; return true;
} }
...@@ -310,9 +393,13 @@ public class AtlasBuiltInTypes { ...@@ -310,9 +393,13 @@ public class AtlasBuiltInTypes {
public Float getNormalizedValue(Object obj) { public Float getNormalizedValue(Object obj) {
if (obj != null) { if (obj != null) {
if (obj instanceof Float) { if (obj instanceof Float) {
return (Float) obj; if (!Float.isInfinite((float) obj)) {
return (Float) obj;
} else {
return null;
}
} else if (obj instanceof Number) { } else if (obj instanceof Number) {
return ((Number) obj).floatValue(); return isValidRange((Number) obj) ? ((Number) obj).floatValue() : null;
} else { } else {
try { try {
Float f = Float.valueOf(obj.toString()); Float f = Float.valueOf(obj.toString());
...@@ -329,14 +416,32 @@ public class AtlasBuiltInTypes { ...@@ -329,14 +416,32 @@ public class AtlasBuiltInTypes {
return null; return null;
} }
private boolean isValidRange(Number num) {
final boolean ret;
if (num instanceof Float || num instanceof Long || num instanceof Integer || num instanceof Short || num instanceof Byte) {
ret = true;
} else if (num instanceof Double) {
ret = num.floatValue() >= MIN_VALUE.floatValue() && num.floatValue() <= MAX_VALUE.floatValue();
} else {
BigDecimal number = new BigDecimal(num.doubleValue());
ret = (number.compareTo(MIN_VALUE) >= 0) && (number.compareTo(MAX_VALUE) <= 0);
}
return ret;
}
} }
/** /**
* class that implements behaviour of double type. * class that implements behaviour of double type.
*/ */
public static class AtlasDoubleType extends AtlasType { public static class AtlasDoubleType extends AtlasType {
private static final Double DEFAULT_VALUE = 0d; private static final Double DEFAULT_VALUE = 0d;
private static final Double DOUBLE_EPSILON = 0.00000001d; private static final Double DOUBLE_EPSILON = 0.00000001d;
private static final BigDecimal MIN_VALUE = BigDecimal.valueOf(-Double.MAX_VALUE);
private static final BigDecimal MAX_VALUE = BigDecimal.valueOf(Double.MAX_VALUE);
public AtlasDoubleType() { public AtlasDoubleType() {
super(AtlasBaseTypeDef.ATLAS_TYPE_DOUBLE, TypeCategory.PRIMITIVE, SERVICE_TYPE_ATLAS_CORE); super(AtlasBaseTypeDef.ATLAS_TYPE_DOUBLE, TypeCategory.PRIMITIVE, SERVICE_TYPE_ATLAS_CORE);
...@@ -349,7 +454,7 @@ public class AtlasBuiltInTypes { ...@@ -349,7 +454,7 @@ public class AtlasBuiltInTypes {
@Override @Override
public boolean isValidValue(Object obj) { public boolean isValidValue(Object obj) {
if (obj == null || obj instanceof Number) { if (obj == null) {
return true; return true;
} }
...@@ -389,9 +494,13 @@ public class AtlasBuiltInTypes { ...@@ -389,9 +494,13 @@ public class AtlasBuiltInTypes {
if (obj != null) { if (obj != null) {
if (obj instanceof Double) { if (obj instanceof Double) {
return (Double) obj; if (!Double.isInfinite((double) obj)) {
return (Double) obj;
} else {
return null;
}
} else if (obj instanceof Number) { } else if (obj instanceof Number) {
return ((Number) obj).doubleValue(); return isValidRange((Number) obj) ? ((Number) obj).doubleValue() : null;
} else { } else {
try { try {
Double d = Double.valueOf(obj.toString()); Double d = Double.valueOf(obj.toString());
...@@ -408,6 +517,20 @@ public class AtlasBuiltInTypes { ...@@ -408,6 +517,20 @@ public class AtlasBuiltInTypes {
return null; return null;
} }
private boolean isValidRange(Number num) {
final boolean ret;
if (num instanceof Double || num instanceof Float || num instanceof Long || num instanceof Integer || num instanceof Short || num instanceof Byte) {
ret = true;
} else {
BigDecimal number = new BigDecimal(num.toString());
ret = (number.compareTo(MIN_VALUE) >= 0) && (number.compareTo(MAX_VALUE) <= 0);
}
return ret;
}
} }
/** /**
...@@ -427,7 +550,7 @@ public class AtlasBuiltInTypes { ...@@ -427,7 +550,7 @@ public class AtlasBuiltInTypes {
@Override @Override
public boolean isValidValue(Object obj) { public boolean isValidValue(Object obj) {
if (obj == null || obj instanceof Number) { if (obj == null || obj instanceof BigInteger) {
return true; return true;
} }
...@@ -713,4 +836,20 @@ public class AtlasBuiltInTypes { ...@@ -713,4 +836,20 @@ public class AtlasBuiltInTypes {
return false; return false;
} }
} }
private static BigInteger toBigInteger(Number num) {
final BigInteger ret;
if (num instanceof BigInteger) {
ret = (BigInteger) num;
} else if (num instanceof Byte || num instanceof Short || num instanceof Integer || num instanceof Long) {
ret = BigInteger.valueOf(num.longValue());
} else if (num instanceof BigDecimal) {
ret = ((BigDecimal) num).toBigInteger();
} else {
ret = new BigDecimal(num.toString()).toBigInteger();
}
return ret;
}
} }
...@@ -28,8 +28,8 @@ import static org.testng.Assert.*; ...@@ -28,8 +28,8 @@ import static org.testng.Assert.*;
public class TestAtlasBooleanType { public class TestAtlasBooleanType {
private final AtlasBooleanType booleanType = new AtlasBooleanType(); private final AtlasBooleanType booleanType = new AtlasBooleanType();
private final Object[] validValues = { null, Boolean.TRUE, Boolean.FALSE, "true", "false", "TRUE", "FALSE", }; private final Object[] validValues = { null, Boolean.TRUE, Boolean.FALSE, "true", "false", "TRUE", "FALSE", "tRue", "FaLse" };
private final Object[] invalidValues = { }; private final Object[] invalidValues = {1, 0.5,123456789, "abcd", "101010" };
@Test @Test
public void testBooleanTypeDefaultValue() { public void testBooleanTypeDefaultValue() {
......
...@@ -36,12 +36,17 @@ public class TestAtlasByteType { ...@@ -36,12 +36,17 @@ public class TestAtlasByteType {
Double.valueOf(1), BigInteger.valueOf(1), BigDecimal.valueOf(1), "1", Double.valueOf(1), BigInteger.valueOf(1), BigDecimal.valueOf(1), "1",
}; };
private final Object[] validValuesLimitCheck = {Byte.MIN_VALUE, Byte.MAX_VALUE, Float.MIN_VALUE, Double.MIN_VALUE};
private final Object[] negativeValues = { private final Object[] negativeValues = {
Byte.valueOf((byte)-1), Short.valueOf((short)-1), Integer.valueOf(-1), Long.valueOf(-1L), Float.valueOf(-1), Byte.valueOf((byte)-1), Short.valueOf((short)-1), Integer.valueOf(-1), Long.valueOf(-1L), Float.valueOf(-1),
Double.valueOf(-1), BigInteger.valueOf(-1), BigDecimal.valueOf(-1), "-1", Double.valueOf(-1), BigInteger.valueOf(-1), BigDecimal.valueOf(-1), "-1",
}; };
private final Object[] invalidValues = { "", }; private final Object[] negativeValuesLimitCheck = {-Float.MIN_VALUE, -Double.MIN_VALUE};
private final Object[] invalidValues = {"", Byte.MIN_VALUE - 1, Byte.MAX_VALUE + 1, Short.MIN_VALUE, Short.MAX_VALUE, Integer.MIN_VALUE, Integer.MAX_VALUE,
Long.MIN_VALUE, Long.MAX_VALUE, Float.MAX_VALUE, Double.MAX_VALUE, -Float.MAX_VALUE, -Double.MAX_VALUE};
@Test @Test
...@@ -57,10 +62,18 @@ public class TestAtlasByteType { ...@@ -57,10 +62,18 @@ public class TestAtlasByteType {
assertTrue(byteType.isValidValue(value), "value=" + value); assertTrue(byteType.isValidValue(value), "value=" + value);
} }
for (Object value : validValuesLimitCheck) {
assertTrue(byteType.isValidValue(value), "value=" + value);
}
for (Object value : negativeValues) { for (Object value : negativeValues) {
assertTrue(byteType.isValidValue(value), "value=" + value); assertTrue(byteType.isValidValue(value), "value=" + value);
} }
for (Object value : negativeValuesLimitCheck) {
assertTrue(byteType.isValidValue(value), "value=" + value);
}
for (Object value : invalidValues) { for (Object value : invalidValues) {
assertFalse(byteType.isValidValue(value), "value=" + value); assertFalse(byteType.isValidValue(value), "value=" + value);
} }
...@@ -81,11 +94,44 @@ public class TestAtlasByteType { ...@@ -81,11 +94,44 @@ public class TestAtlasByteType {
assertEquals(normalizedValue, Byte.valueOf((byte)1), "value=" + value); assertEquals(normalizedValue, Byte.valueOf((byte)1), "value=" + value);
} }
for (Object value : validValuesLimitCheck) {
if (value == null) {
continue;
}
Byte normalizedValue = byteType.getNormalizedValue(value);
assertNotNull(normalizedValue, "value=" + value);
byte b;
if (value instanceof Float) {
b = ((Float) value).byteValue();
assertEquals(normalizedValue, Byte.valueOf(b), "value=" + value);
} else if (value instanceof Double) {
b = ((Double) value).byteValue();
assertEquals(normalizedValue, Byte.valueOf(b), "value=" + value);
} else {
assertEquals(normalizedValue, Byte.valueOf((byte) value), "value=" + value);
}
}
for (Object value : negativeValues) { for (Object value : negativeValues) {
Byte normalizedValue = byteType.getNormalizedValue(value); Byte normalizedValue = byteType.getNormalizedValue(value);
assertNotNull(normalizedValue, "value=" + value); assertNotNull(normalizedValue, "value=" + value);
assertEquals(normalizedValue, Byte.valueOf((byte)-1), "value=" + value); assertEquals(normalizedValue, Byte.valueOf((byte) -1), "value=" + value);
}
for (Object value : negativeValuesLimitCheck) {
Byte normalizedValue = byteType.getNormalizedValue(value);
byte b;
if (value instanceof Float) {
b = ((Float) value).byteValue();
assertEquals(normalizedValue, Byte.valueOf(b), "value=" + value);
} else if (value instanceof Double) {
b = ((Double) value).byteValue();
assertEquals(normalizedValue, Byte.valueOf(b), "value=" + value);
}
} }
for (Object value : invalidValues) { for (Object value : invalidValues) {
...@@ -101,11 +147,21 @@ public class TestAtlasByteType { ...@@ -101,11 +147,21 @@ public class TestAtlasByteType {
assertEquals(messages.size(), 0, "value=" + value); assertEquals(messages.size(), 0, "value=" + value);
} }
for (Object value : validValuesLimitCheck) {
assertTrue(byteType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 0, "value=" + value);
}
for (Object value : negativeValues) { for (Object value : negativeValues) {
assertTrue(byteType.validateValue(value, "testObj", messages)); assertTrue(byteType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 0, "value=" + value); assertEquals(messages.size(), 0, "value=" + value);
} }
for (Object value : negativeValuesLimitCheck) {
assertTrue(byteType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 0, "value=" + value);
}
for (Object value : invalidValues) { for (Object value : invalidValues) {
assertFalse(byteType.validateValue(value, "testObj", messages)); assertFalse(byteType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 1, "value=" + value); assertEquals(messages.size(), 1, "value=" + value);
......
...@@ -36,12 +36,17 @@ public class TestAtlasDoubleType { ...@@ -36,12 +36,17 @@ public class TestAtlasDoubleType {
Double.valueOf(1), BigInteger.valueOf(1), BigDecimal.valueOf(1), "1", Double.valueOf(1), BigInteger.valueOf(1), BigDecimal.valueOf(1), "1",
}; };
private final Object[] validValuesLimitCheck = {Byte.MIN_VALUE, Byte.MAX_VALUE, Short.MIN_VALUE, Short.MAX_VALUE,
Integer.MIN_VALUE, Integer.MAX_VALUE, Long.MIN_VALUE, Long.MAX_VALUE, Float.MIN_VALUE, Float.MAX_VALUE, Double.MIN_VALUE, Double.MAX_VALUE};
private final Object[] negativeValues = { private final Object[] negativeValues = {
Byte.valueOf((byte)-1), Short.valueOf((short)-1), Integer.valueOf(-1), Long.valueOf(-1L), Float.valueOf(-1), Byte.valueOf((byte)-1), Short.valueOf((short)-1), Integer.valueOf(-1), Long.valueOf(-1L), Float.valueOf(-1),
Double.valueOf(-1), BigInteger.valueOf(-1), BigDecimal.valueOf(-1), "-1", Double.valueOf(-1), BigInteger.valueOf(-1), BigDecimal.valueOf(-1), "-1",
}; };
private final Object[] invalidValues = { "", "12ab", "abcd", "-12ab", }; private final Object[] negativeValuesLimitCheck = {-Double.MIN_VALUE, -Double.MAX_VALUE, -Float.MIN_VALUE, -Float.MAX_VALUE,};
private final Object[] invalidValues = { "", "12ab", "abcd", "-12ab", (Double.MAX_VALUE + Double.MAX_VALUE), -(Double.MAX_VALUE+Double.MAX_VALUE)};
@Test @Test
...@@ -57,10 +62,18 @@ public class TestAtlasDoubleType { ...@@ -57,10 +62,18 @@ public class TestAtlasDoubleType {
assertTrue(doubleType.isValidValue(value), "value=" + value); assertTrue(doubleType.isValidValue(value), "value=" + value);
} }
for (Object value : validValuesLimitCheck) {
assertTrue(doubleType.isValidValue(value), "value=" + value);
}
for (Object value : negativeValues) { for (Object value : negativeValues) {
assertTrue(doubleType.isValidValue(value), "value=" + value); assertTrue(doubleType.isValidValue(value), "value=" + value);
} }
for (Object value : negativeValuesLimitCheck) {
assertTrue(doubleType.isValidValue(value), "value=" + value);
}
for (Object value : invalidValues) { for (Object value : invalidValues) {
assertFalse(doubleType.isValidValue(value), "value=" + value); assertFalse(doubleType.isValidValue(value), "value=" + value);
} }
...@@ -81,6 +94,27 @@ public class TestAtlasDoubleType { ...@@ -81,6 +94,27 @@ public class TestAtlasDoubleType {
assertEquals(normalizedValue, Double.valueOf(1), "value=" + value); assertEquals(normalizedValue, Double.valueOf(1), "value=" + value);
} }
for (Object value : validValuesLimitCheck) {
if (value == null) {
continue;
}
Double normalizedValue = doubleType.getNormalizedValue(value);
assertNotNull(normalizedValue, "value=" + value);
double d;
if (value instanceof Float) {
d = ((Float) value).doubleValue();
assertEquals(normalizedValue, Double.valueOf(d), "value=" + value);
} else if (value instanceof Double) {
d = ((Double) value).doubleValue();
assertEquals(normalizedValue, Double.valueOf(d), "value=" + value);
} else {
assertEquals(normalizedValue, Double.valueOf(value.toString()), "value=" + value);
}
}
for (Object value : negativeValues) { for (Object value : negativeValues) {
Double normalizedValue = doubleType.getNormalizedValue(value); Double normalizedValue = doubleType.getNormalizedValue(value);
...@@ -88,6 +122,18 @@ public class TestAtlasDoubleType { ...@@ -88,6 +122,18 @@ public class TestAtlasDoubleType {
assertEquals(normalizedValue, Double.valueOf(-1), "value=" + value); assertEquals(normalizedValue, Double.valueOf(-1), "value=" + value);
} }
for (Object value : negativeValuesLimitCheck) {
Double normalizedValue = doubleType.getNormalizedValue(value);
double d;
if (value instanceof Float) {
d = ((Float) value).doubleValue();
assertEquals(normalizedValue, Double.valueOf(d), "value=" + value);
} else if (value instanceof Double) {
d = ((Double) value).doubleValue();
assertEquals(normalizedValue, Double.valueOf(d), "value=" + value);
}
}
for (Object value : invalidValues) { for (Object value : invalidValues) {
assertNull(doubleType.getNormalizedValue(value), "value=" + value); assertNull(doubleType.getNormalizedValue(value), "value=" + value);
} }
......
...@@ -36,12 +36,18 @@ public class TestAtlasFloatType { ...@@ -36,12 +36,18 @@ public class TestAtlasFloatType {
Double.valueOf(1), BigInteger.valueOf(1), BigDecimal.valueOf(1), "1", Double.valueOf(1), BigInteger.valueOf(1), BigDecimal.valueOf(1), "1",
}; };
private final Object[] validValuesLimitCheck = {Byte.MIN_VALUE, Byte.MAX_VALUE, Short.MIN_VALUE, Short.MAX_VALUE,
Integer.MIN_VALUE, Integer.MAX_VALUE, Long.MIN_VALUE, Long.MAX_VALUE, Float.MIN_VALUE, Float.MAX_VALUE, Double.MIN_VALUE};
private final Object[] negativeValues = { private final Object[] negativeValues = {
Byte.valueOf((byte)-1), Short.valueOf((short)-1), Integer.valueOf(-1), Long.valueOf(-1L), Float.valueOf(-1), Byte.valueOf((byte)-1), Short.valueOf((short)-1), Integer.valueOf(-1), Long.valueOf(-1L), Float.valueOf(-1),
Double.valueOf(-1), BigInteger.valueOf(-1), BigDecimal.valueOf(-1), "-1", Double.valueOf(-1), BigInteger.valueOf(-1), BigDecimal.valueOf(-1), "-1",
}; };
private final Object[] invalidValues = { "", "12ab", "abcd", "-12ab", }; private final Object[] negativeValuesLimitCheck = {-Float.MIN_VALUE, -Float.MAX_VALUE, -Double.MIN_VALUE};
private final Object[] invalidValues = { "", "12ab", "abcd", "-12ab", (Float.MAX_VALUE + Float.MAX_VALUE)/*+Infinity*/, -(Float.MAX_VALUE + Float.MAX_VALUE)/*-Infinity*/
, Double.MAX_VALUE, -Double.MAX_VALUE};
@Test @Test
...@@ -57,10 +63,18 @@ public class TestAtlasFloatType { ...@@ -57,10 +63,18 @@ public class TestAtlasFloatType {
assertTrue(floatType.isValidValue(value), "value=" + value); assertTrue(floatType.isValidValue(value), "value=" + value);
} }
for (Object value : validValuesLimitCheck) {
assertTrue(floatType.isValidValue(value), "value=" + value);
}
for (Object value : negativeValues) { for (Object value : negativeValues) {
assertTrue(floatType.isValidValue(value), "value=" + value); assertTrue(floatType.isValidValue(value), "value=" + value);
} }
for (Object value : negativeValuesLimitCheck) {
assertTrue(floatType.isValidValue(value), "value=" + value);
}
for (Object value : invalidValues) { for (Object value : invalidValues) {
assertFalse(floatType.isValidValue(value), "value=" + value); assertFalse(floatType.isValidValue(value), "value=" + value);
} }
...@@ -81,6 +95,27 @@ public class TestAtlasFloatType { ...@@ -81,6 +95,27 @@ public class TestAtlasFloatType {
assertEquals(normalizedValue, Float.valueOf(1), "value=" + value); assertEquals(normalizedValue, Float.valueOf(1), "value=" + value);
} }
for (Object value : validValuesLimitCheck) {
if (value == null) {
continue;
}
Float normalizedValue = floatType.getNormalizedValue(value);
assertNotNull(normalizedValue, "value=" + value);
float f;
if (value instanceof Float) {
f = ((Float) value).floatValue();
assertEquals(normalizedValue, Float.valueOf(f), "value=" + value);
} else if (value instanceof Double) {
f = ((Double) value).floatValue();
assertEquals(normalizedValue, Float.valueOf(f), "value=" + value);
} else {
assertEquals(normalizedValue, Float.valueOf(value.toString()), "value=" + value);
}
}
for (Object value : negativeValues) { for (Object value : negativeValues) {
Float normalizedValue = floatType.getNormalizedValue(value); Float normalizedValue = floatType.getNormalizedValue(value);
...@@ -88,6 +123,18 @@ public class TestAtlasFloatType { ...@@ -88,6 +123,18 @@ public class TestAtlasFloatType {
assertEquals(normalizedValue, Float.valueOf(-1), "value=" + value); assertEquals(normalizedValue, Float.valueOf(-1), "value=" + value);
} }
for (Object value : negativeValuesLimitCheck) {
Float normalizedValue = floatType.getNormalizedValue(value);
float f;
if (value instanceof Float) {
f = ((Float) value).floatValue();
assertEquals(normalizedValue, Float.valueOf(f), "value=" + value);
} else if (value instanceof Double) {
f = ((Double) value).floatValue();
assertEquals(normalizedValue, Float.valueOf(f), "value=" + value);
}
}
for (Object value : invalidValues) { for (Object value : invalidValues) {
assertNull(floatType.getNormalizedValue(value), "value=" + value); assertNull(floatType.getNormalizedValue(value), "value=" + value);
} }
...@@ -101,11 +148,21 @@ public class TestAtlasFloatType { ...@@ -101,11 +148,21 @@ public class TestAtlasFloatType {
assertEquals(messages.size(), 0, "value=" + value); assertEquals(messages.size(), 0, "value=" + value);
} }
for (Object value : validValuesLimitCheck) {
assertTrue(floatType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 0, "value=" + value);
}
for (Object value : negativeValues) { for (Object value : negativeValues) {
assertTrue(floatType.validateValue(value, "testObj", messages)); assertTrue(floatType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 0, "value=" + value); assertEquals(messages.size(), 0, "value=" + value);
} }
for (Object value : negativeValuesLimitCheck) {
assertTrue(floatType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 0, "value=" + value);
}
for (Object value : invalidValues) { for (Object value : invalidValues) {
assertFalse(floatType.validateValue(value, "testObj", messages)); assertFalse(floatType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 1, "value=" + value); assertEquals(messages.size(), 1, "value=" + value);
......
...@@ -36,12 +36,19 @@ public class TestAtlasIntType { ...@@ -36,12 +36,19 @@ public class TestAtlasIntType {
Double.valueOf(1), BigInteger.valueOf(1), BigDecimal.valueOf(1), "1", Double.valueOf(1), BigInteger.valueOf(1), BigDecimal.valueOf(1), "1",
}; };
private final Object[] validValuesLimitCheck = {Byte.MIN_VALUE, Byte.MAX_VALUE, Short.MIN_VALUE, Short.MAX_VALUE,
Integer.MIN_VALUE, Integer.MAX_VALUE, Float.MIN_VALUE, Double.MIN_VALUE};
private final Object[] negativeValues = { private final Object[] negativeValues = {
Byte.valueOf((byte)-1), Short.valueOf((short)-1), Integer.valueOf(-1), Long.valueOf(-1L), Float.valueOf(-1), Byte.valueOf((byte)-1), Short.valueOf((short)-1), Integer.valueOf(-1), Long.valueOf(-1L), Float.valueOf(-1),
Double.valueOf(-1), BigInteger.valueOf(-1), BigDecimal.valueOf(-1), "-1", Double.valueOf(-1), BigInteger.valueOf(-1), BigDecimal.valueOf(-1), "-1",
}; };
private final Object[] invalidValues = { "", "12ab", "abcd", "-12ab", }; private final Object[] negativeValuesLimitCheck = {-Float.MIN_VALUE, -Double.MIN_VALUE};
private final Object[] invalidValues = {"", "12ab", "abcd", "-12ab",
(long)Integer.MIN_VALUE - 1, (long)Integer.MAX_VALUE + 1,
Long.MIN_VALUE, Long.MAX_VALUE, Float.MAX_VALUE, Double.MAX_VALUE, -Float.MAX_VALUE, -Double.MAX_VALUE};
@Test @Test
...@@ -57,10 +64,18 @@ public class TestAtlasIntType { ...@@ -57,10 +64,18 @@ public class TestAtlasIntType {
assertTrue(intType.isValidValue(value), "value=" + value); assertTrue(intType.isValidValue(value), "value=" + value);
} }
for (Object value : validValuesLimitCheck) {
assertTrue(intType.isValidValue(value), "value=" + value);
}
for (Object value : negativeValues) { for (Object value : negativeValues) {
assertTrue(intType.isValidValue(value), "value=" + value); assertTrue(intType.isValidValue(value), "value=" + value);
} }
for (Object value : negativeValuesLimitCheck) {
assertTrue(intType.isValidValue(value), "value=" + value);
}
for (Object value : invalidValues) { for (Object value : invalidValues) {
assertFalse(intType.isValidValue(value), "value=" + value); assertFalse(intType.isValidValue(value), "value=" + value);
} }
...@@ -81,6 +96,27 @@ public class TestAtlasIntType { ...@@ -81,6 +96,27 @@ public class TestAtlasIntType {
assertEquals(normalizedValue, Integer.valueOf(1), "value=" + value); assertEquals(normalizedValue, Integer.valueOf(1), "value=" + value);
} }
for (Object value : validValuesLimitCheck) {
if (value == null) {
continue;
}
Integer normalizedValue = intType.getNormalizedValue(value);
assertNotNull(normalizedValue, "value=" + value);
int i;
if (value instanceof Float) {
i = ((Float) value).intValue();
assertEquals(normalizedValue, Integer.valueOf(i), "value=" + value);
} else if (value instanceof Double) {
i = ((Double) value).intValue();
assertEquals(normalizedValue, Integer.valueOf(i), "value=" + value);
} else {
assertEquals(normalizedValue, Integer.valueOf(value.toString()), "value=" + value);
}
}
for (Object value : negativeValues) { for (Object value : negativeValues) {
Integer normalizedValue = intType.getNormalizedValue(value); Integer normalizedValue = intType.getNormalizedValue(value);
...@@ -88,6 +124,18 @@ public class TestAtlasIntType { ...@@ -88,6 +124,18 @@ public class TestAtlasIntType {
assertEquals(normalizedValue, Integer.valueOf(-1), "value=" + value); assertEquals(normalizedValue, Integer.valueOf(-1), "value=" + value);
} }
for (Object value : negativeValuesLimitCheck) {
Integer normalizedValue = intType.getNormalizedValue(value);
int i;
if (value instanceof Float) {
i = ((Float) value).intValue();
assertEquals(normalizedValue, Integer.valueOf(i), "value=" + value);
} else if (value instanceof Double) {
i = ((Double) value).intValue();
assertEquals(normalizedValue, Integer.valueOf(i), "value=" + value);
}
}
for (Object value : invalidValues) { for (Object value : invalidValues) {
assertNull(intType.getNormalizedValue(value), "value=" + value); assertNull(intType.getNormalizedValue(value), "value=" + value);
} }
...@@ -101,11 +149,21 @@ public class TestAtlasIntType { ...@@ -101,11 +149,21 @@ public class TestAtlasIntType {
assertEquals(messages.size(), 0, "value=" + value); assertEquals(messages.size(), 0, "value=" + value);
} }
for (Object value : validValuesLimitCheck) {
assertTrue(intType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 0, "value=" + value);
}
for (Object value : negativeValues) { for (Object value : negativeValues) {
assertTrue(intType.validateValue(value, "testObj", messages)); assertTrue(intType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 0, "value=" + value); assertEquals(messages.size(), 0, "value=" + value);
} }
for (Object value : negativeValuesLimitCheck) {
assertTrue(intType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 0, "value=" + value);
}
for (Object value : invalidValues) { for (Object value : invalidValues) {
assertFalse(intType.validateValue(value, "testObj", messages)); assertFalse(intType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 1, "value=" + value); assertEquals(messages.size(), 1, "value=" + value);
......
...@@ -36,12 +36,20 @@ public class TestAtlasLongType { ...@@ -36,12 +36,20 @@ public class TestAtlasLongType {
Double.valueOf(1), BigInteger.valueOf(1), BigDecimal.valueOf(1), "1", Double.valueOf(1), BigInteger.valueOf(1), BigDecimal.valueOf(1), "1",
}; };
private final Object[] validValuesLimitCheck = {Byte.MIN_VALUE, Byte.MAX_VALUE, Short.MIN_VALUE, Short.MAX_VALUE,
Integer.MIN_VALUE, Integer.MAX_VALUE, Long.MIN_VALUE, Long.MAX_VALUE, Float.MIN_VALUE, Double.MIN_VALUE};
private final Object[] negativeValues = { private final Object[] negativeValues = {
Byte.valueOf((byte)-1), Short.valueOf((short)-1), Integer.valueOf(-1), Long.valueOf(-1L), Float.valueOf(-1), Byte.valueOf((byte)-1), Short.valueOf((short)-1), Integer.valueOf(-1), Long.valueOf(-1L), Float.valueOf(-1),
Double.valueOf(-1), BigInteger.valueOf(-1), BigDecimal.valueOf(-1), "-1", Double.valueOf(-1), BigInteger.valueOf(-1), BigDecimal.valueOf(-1), "-1",
}; };
private final Object[] invalidValues = { "", "12ab", "abcd", "-12ab", }; private final Object[] negativeValuesLimitCheck = {-Float.MIN_VALUE, -Double.MIN_VALUE};
BigInteger bgIntLongMaxPlus1 = new BigInteger("9223372036854775808");
BigInteger bgIntLongMinMinus1 = new BigInteger("-9223372036854775809");
private final Object[] invalidValues = { "", "12ab", "abcd", "-12ab"
, bgIntLongMinMinus1, bgIntLongMaxPlus1, Float.MAX_VALUE, Double.MAX_VALUE, -Float.MAX_VALUE, -Double.MAX_VALUE};
@Test @Test
...@@ -57,10 +65,18 @@ public class TestAtlasLongType { ...@@ -57,10 +65,18 @@ public class TestAtlasLongType {
assertTrue(longType.isValidValue(value), "value=" + value); assertTrue(longType.isValidValue(value), "value=" + value);
} }
for (Object value : validValuesLimitCheck) {
assertTrue(longType.isValidValue(value), "value=" + value);
}
for (Object value : negativeValues) { for (Object value : negativeValues) {
assertTrue(longType.isValidValue(value), "value=" + value); assertTrue(longType.isValidValue(value), "value=" + value);
} }
for (Object value : negativeValuesLimitCheck) {
assertTrue(longType.isValidValue(value), "value=" + value);
}
for (Object value : invalidValues) { for (Object value : invalidValues) {
assertFalse(longType.isValidValue(value), "value=" + value); assertFalse(longType.isValidValue(value), "value=" + value);
} }
...@@ -81,6 +97,27 @@ public class TestAtlasLongType { ...@@ -81,6 +97,27 @@ public class TestAtlasLongType {
assertEquals(normalizedValue, Long.valueOf(1), "value=" + value); assertEquals(normalizedValue, Long.valueOf(1), "value=" + value);
} }
for (Object value : validValuesLimitCheck) {
if (value == null) {
continue;
}
Long normalizedValue = longType.getNormalizedValue(value);
assertNotNull(normalizedValue, "value=" + value);
long l;
if (value instanceof Float) {
l = ((Float) value).longValue();
assertEquals(normalizedValue, Long.valueOf(l), "value=" + value);
} else if (value instanceof Double) {
l = ((Double) value).longValue();
assertEquals(normalizedValue, Long.valueOf(l), "value=" + value);
} else {
assertEquals(normalizedValue, Long.valueOf(value.toString()), "value=" + value);
}
}
for (Object value : negativeValues) { for (Object value : negativeValues) {
Long normalizedValue = longType.getNormalizedValue(value); Long normalizedValue = longType.getNormalizedValue(value);
...@@ -88,6 +125,18 @@ public class TestAtlasLongType { ...@@ -88,6 +125,18 @@ public class TestAtlasLongType {
assertEquals(normalizedValue, Long.valueOf(-1), "value=" + value); assertEquals(normalizedValue, Long.valueOf(-1), "value=" + value);
} }
for (Object value : negativeValuesLimitCheck) {
Long normalizedValue = longType.getNormalizedValue(value);
long l;
if (value instanceof Float) {
l = ((Float) value).longValue();
assertEquals(normalizedValue, Long.valueOf(l), "value=" + value);
} else if (value instanceof Double) {
l = ((Double) value).longValue();
assertEquals(normalizedValue, Long.valueOf(l), "value=" + value);
}
}
for (Object value : invalidValues) { for (Object value : invalidValues) {
assertNull(longType.getNormalizedValue(value), "value=" + value); assertNull(longType.getNormalizedValue(value), "value=" + value);
} }
...@@ -101,11 +150,21 @@ public class TestAtlasLongType { ...@@ -101,11 +150,21 @@ public class TestAtlasLongType {
assertEquals(messages.size(), 0, "value=" + value); assertEquals(messages.size(), 0, "value=" + value);
} }
for (Object value : validValuesLimitCheck) {
assertTrue(longType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 0, "value=" + value);
}
for (Object value : negativeValues) { for (Object value : negativeValues) {
assertTrue(longType.validateValue(value, "testObj", messages)); assertTrue(longType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 0, "value=" + value); assertEquals(messages.size(), 0, "value=" + value);
} }
for (Object value : negativeValuesLimitCheck) {
assertTrue(longType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 0, "value=" + value);
}
for (Object value : invalidValues) { for (Object value : invalidValues) {
assertFalse(longType.validateValue(value, "testObj", messages)); assertFalse(longType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 1, "value=" + value); assertEquals(messages.size(), 1, "value=" + value);
......
/** /**
* Licensed to the Apache Software Foundation (ASF) under one * Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file * or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information * distributed with this work for additional information
...@@ -36,12 +36,18 @@ public class TestAtlasShortType { ...@@ -36,12 +36,18 @@ public class TestAtlasShortType {
Double.valueOf(1), BigInteger.valueOf(1), BigDecimal.valueOf(1), "1", Double.valueOf(1), BigInteger.valueOf(1), BigDecimal.valueOf(1), "1",
}; };
private final Object[] validValuesLimitCheck = {Byte.MIN_VALUE, Byte.MAX_VALUE, Short.MIN_VALUE, Short.MAX_VALUE, Float.MIN_VALUE, Double.MIN_VALUE};
private final Object[] negativeValues = { private final Object[] negativeValues = {
Byte.valueOf((byte)-1), Short.valueOf((short)-1), Integer.valueOf(-1), Long.valueOf(-1L), Float.valueOf(-1), Byte.valueOf((byte)-1), Short.valueOf((short)-1), Integer.valueOf(-1), Long.valueOf(-1L), Float.valueOf(-1),
Double.valueOf(-1), BigInteger.valueOf(-1), BigDecimal.valueOf(-1), "-1", Double.valueOf(-1), BigInteger.valueOf(-1), BigDecimal.valueOf(-1), "-1",
}; };
private final Object[] invalidValues = { "", "12ab", "abcd", "-12ab", }; private final Object[] negativeValuesLimitCheck = {-Float.MIN_VALUE, -Double.MIN_VALUE};
private final Object[] invalidValues = {"", "12ab", "abcd", "-12ab", Short.MIN_VALUE - 1, Short.MAX_VALUE + 1, Integer.MIN_VALUE, Integer.MAX_VALUE,
Long.MIN_VALUE, Long.MAX_VALUE, Float.MAX_VALUE, Double.MAX_VALUE, -Float.MAX_VALUE, -Double.MAX_VALUE
};
@Test @Test
...@@ -57,10 +63,18 @@ public class TestAtlasShortType { ...@@ -57,10 +63,18 @@ public class TestAtlasShortType {
assertTrue(shortType.isValidValue(value), "value=" + value); assertTrue(shortType.isValidValue(value), "value=" + value);
} }
for (Object value : validValuesLimitCheck) {
assertTrue(shortType.isValidValue(value), "value=" + value);
}
for (Object value : negativeValues) { for (Object value : negativeValues) {
assertTrue(shortType.isValidValue(value), "value=" + value); assertTrue(shortType.isValidValue(value), "value=" + value);
} }
for (Object value : negativeValuesLimitCheck) {
assertTrue(shortType.isValidValue(value), "value=" + value);
}
for (Object value : invalidValues) { for (Object value : invalidValues) {
assertFalse(shortType.isValidValue(value), "value=" + value); assertFalse(shortType.isValidValue(value), "value=" + value);
} }
...@@ -81,6 +95,27 @@ public class TestAtlasShortType { ...@@ -81,6 +95,27 @@ public class TestAtlasShortType {
assertEquals(normalizedValue, Short.valueOf((short)1), "value=" + value); assertEquals(normalizedValue, Short.valueOf((short)1), "value=" + value);
} }
for (Object value : validValuesLimitCheck) {
if (value == null) {
continue;
}
Short normalizedValue = shortType.getNormalizedValue(value);
assertNotNull(normalizedValue, "value=" + value);
short s;
if (value instanceof Float) {
s = ((Float) value).shortValue();
assertEquals(normalizedValue, Short.valueOf(s), "value=" + value);
} else if (value instanceof Double) {
s = ((Double) value).shortValue();
assertEquals(normalizedValue, Short.valueOf(s), "value=" + value);
} else {
assertEquals(normalizedValue, Short.valueOf(value.toString()), "value=" + value);
}
}
for (Object value : negativeValues) { for (Object value : negativeValues) {
Short normalizedValue = shortType.getNormalizedValue(value); Short normalizedValue = shortType.getNormalizedValue(value);
...@@ -88,6 +123,18 @@ public class TestAtlasShortType { ...@@ -88,6 +123,18 @@ public class TestAtlasShortType {
assertEquals(normalizedValue, Short.valueOf((short)-1), "value=" + value); assertEquals(normalizedValue, Short.valueOf((short)-1), "value=" + value);
} }
for (Object value : negativeValuesLimitCheck) {
Short normalizedValue = shortType.getNormalizedValue(value);
short s;
if (value instanceof Float) {
s = ((Float) value).shortValue();
assertEquals(normalizedValue, Short.valueOf(s), "value=" + value);
} else if (value instanceof Double) {
s = ((Double) value).shortValue();
assertEquals(normalizedValue, Short.valueOf(s), "value=" + value);
}
}
for (Object value : invalidValues) { for (Object value : invalidValues) {
assertNull(shortType.getNormalizedValue(value), "value=" + value); assertNull(shortType.getNormalizedValue(value), "value=" + value);
} }
...@@ -101,11 +148,21 @@ public class TestAtlasShortType { ...@@ -101,11 +148,21 @@ public class TestAtlasShortType {
assertEquals(messages.size(), 0, "value=" + value); assertEquals(messages.size(), 0, "value=" + value);
} }
for (Object value : validValuesLimitCheck) {
assertTrue(shortType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 0, "value=" + value);
}
for (Object value : negativeValues) { for (Object value : negativeValues) {
assertTrue(shortType.validateValue(value, "testObj", messages)); assertTrue(shortType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 0, "value=" + value); assertEquals(messages.size(), 0, "value=" + value);
} }
for (Object value : negativeValuesLimitCheck) {
assertTrue(shortType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 0, "value=" + value);
}
for (Object value : invalidValues) { for (Object value : invalidValues) {
assertFalse(shortType.validateValue(value, "testObj", messages)); assertFalse(shortType.validateValue(value, "testObj", messages));
assertEquals(messages.size(), 1, "value=" + value); assertEquals(messages.size(), 1, "value=" + value);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment