use of com.linkedin.data.schema.MapDataSchema in project rest.li by linkedin.
the class TestMapTemplate method testBytesMap.
@Test
public void testBytesMap() {
MapDataSchema schema = (MapDataSchema) DataTemplateUtil.parseSchema("{ \"type\" : \"map\", \"values\" : \"bytes\" }");
Map<String, ByteString> input = asMap("one", ByteString.copyAvroString("1", false), "three", ByteString.copyAvroString("3", false), "five", ByteString.copyAvroString("5", false), "seven", ByteString.copyAvroString("7", false), "eleven", ByteString.copyAvroString("11", false));
Map<String, ByteString> adds = asMap("thirteen", ByteString.copyAvroString("13", false), "seventeen", ByteString.copyAvroString("17", false), "nineteen", ByteString.copyAvroString("19", false));
Map<String, Object> badInput = asMap("boolean", true, "integer", 99, "long", 999L, "float", 88.0f, "double", 888.0, "data", "Ā", "object", new Object(), "null", null, "array", new StringArray(), "record", new FooRecord());
Map<String, Object> badOutput = asMap("boolean", true, "integer", 99, "long", 999L, "float", 88.0f, "double", 888.0, "data", "Ā", "map", new DataMap(), "list", new DataList());
testMap(BytesMap.class, schema, input, adds);
testMapBadInput(BytesMap.class, schema, input, badInput, badOutput);
}
use of com.linkedin.data.schema.MapDataSchema in project rest.li by linkedin.
the class TestMapTemplate method testLegacyConstructor.
@Test
public void testLegacyConstructor() {
Map<String, Class<?>> primitiveStringToClassMap = asMap("int", Integer.class, "long", Long.class, "float", Float.class, "double", Double.class, "boolean", Boolean.class, "string", String.class);
for (Map.Entry<String, Class<?>> e : primitiveStringToClassMap.entrySet()) {
MapDataSchema schema = (MapDataSchema) DataTemplateUtil.parseSchema("{ \"type\" : \"map\", \"values\" : \"" + e.getKey() + "\" }");
@SuppressWarnings("unchecked") PrimitiveLegacyMap<?> map = new PrimitiveLegacyMap<Object>(new DataMap(), schema, (Class) e.getValue());
}
EnumLegacyMap enumMap = new EnumLegacyMap(new DataMap());
}
use of com.linkedin.data.schema.MapDataSchema in project rest.li by linkedin.
the class TestMapTemplate method testStringMap.
@Test
public void testStringMap() {
MapDataSchema schema = (MapDataSchema) DataTemplateUtil.parseSchema("{ \"type\" : \"map\", \"values\" : \"string\" }");
Map<String, String> input = asMap("one", "1", "three", "3", "five", "5", "seven", "7", "eleven", "11");
Map<String, String> adds = asMap("thirteen", "13", "seventeen", "17", "nineteen", "19");
Map<String, Object> badInput = asMap("boolean", true, "integer", 99, "long", 999L, "float", 88.0f, "double", 888.0, "bytes", ByteString.empty(), "object", new Object(), "null", null, "array", new StringArray(), "record", new FooRecord());
Map<String, Object> badOutput = asMap("boolean", true, "integer", 99, "long", 999L, "float", 88.0f, "double", 888.0, "bytes", ByteString.empty(), "map", new DataMap(), "list", new DataList());
testMap(StringMap.class, schema, input, adds);
testMapBadInput(StringMap.class, schema, input, badInput, badOutput);
}
use of com.linkedin.data.schema.MapDataSchema in project rest.li by linkedin.
the class TestMapTemplate method testFloatMap.
@Test
public void testFloatMap() {
MapDataSchema schema = (MapDataSchema) DataTemplateUtil.parseSchema("{ \"type\" : \"map\", \"values\" : \"float\" }");
Map<String, Float> input = asMap("one", 1.0f, "three", 3.0f, "five", 5.0f, "seven", 7.0f, "eleven", 11.0f);
Map<String, Float> adds = asMap("thirteen", 13.0f, "seventeen", 17.0f, "nineteen", 19.0f);
Map<String, Object> badInput = asMap("boolean", true, "string", "hello", "bytes", ByteString.empty(), "object", new Object(), "null", null, "array", new StringArray(), "record", new FooRecord());
Map<String, Object> badOutput = asMap("boolean", true, "string", "hello", "bytes", ByteString.empty(), "map", new DataMap(), "list", new DataList());
testMap(FloatMap.class, schema, input, adds);
testMapBadInput(FloatMap.class, schema, input, badInput, badOutput);
Map<String, ? extends Number> castFrom = asMap("one", 1, "three", 3L, "five", 5.0, "seven", 7, "eleven", 11);
testNumberMap(FloatMap.class, schema, input, castFrom);
}
use of com.linkedin.data.schema.MapDataSchema in project rest.li by linkedin.
the class TestMapTemplate method testDoubleMap.
@Test
public void testDoubleMap() {
MapDataSchema schema = (MapDataSchema) DataTemplateUtil.parseSchema("{ \"type\" : \"map\", \"values\" : \"double\" }");
Map<String, Double> input = asMap("one", 1.0, "three", 3.0, "five", 5.0, "seven", 7.0, "eleven", 11.0);
Map<String, Double> adds = asMap("thirteen", 13.0, "seventeen", 17.0, "nineteen", 19.0);
Map<String, Object> badInput = asMap("boolean", true, "string", "hello", "bytes", ByteString.empty(), "object", new Object(), "null", null, "array", new StringArray(), "record", new FooRecord());
Map<String, Object> badOutput = asMap("boolean", true, "string", "hello", "bytes", ByteString.empty(), "map", new DataMap(), "list", new DataList());
testMap(DoubleMap.class, schema, input, adds);
testMapBadInput(DoubleMap.class, schema, input, badInput, badOutput);
Map<String, ? extends Number> castFrom = asMap("one", 1, "three", 3L, "five", 5.0f, "seven", 7, "eleven", 11);
testNumberMap(DoubleMap.class, schema, input, castFrom);
}
Aggregations