@Test public void testMetaList() throws Exception { Map<String, Object> param = map( "LIST FLOAT", asList(1.2F, 2.1F), "LIST STRING", asList("a", "b"), "LIST CHAR", asList('a', 'a'), "LIST DATE", asList(LocalDate.of(2018,1,1), LocalDate.of(2018,2,2)), "LIST ANY", asList("test",1,"asd",isoDuration(5, 1, 43200, 0).asIsoDuration()), "LIST NULL", asList("test",null), "LIST POINT", asList(Values.pointValue(CoordinateReferenceSystem.WGS84, 56.d, 12.78), Values.pointValue(CoordinateReferenceSystem.Cartesian_3D, 2.3, 4.5, 1.2)), "LIST DURATION", asList(isoDuration(5, 1, 43200, 0).asIsoDuration(), isoDuration(2, 1, 125454, 0).asIsoDuration()), "LIST OBJECT", new Object[]{LocalDate.of(2018,1,1), "test"}, "LIST OF LIST", asList(asList("a", "b", "c"),asList("aa", "bb", "cc"),asList("aaa", "bbb", "ccc")), "LIST DOUBLE", asList(1.2D, 2.1D)); TestUtil.testCall(db, "RETURN apoc.meta.cypher.types({param}) AS value", singletonMap("param",param), row -> { Map<String, Object> r = (Map<String, Object>) row.get("value"); assertEquals("LIST OF FLOAT", r.get("LIST FLOAT")); assertEquals("LIST OF STRING", r.get("LIST STRING")); assertEquals("LIST OF ANY", r.get("LIST CHAR")); assertEquals("LIST OF DATE", r.get("LIST DATE")); assertEquals("LIST OF FLOAT", r.get("LIST DOUBLE")); assertEquals("LIST OF POINT", r.get("LIST POINT")); assertEquals("LIST OF DURATION", r.get("LIST DURATION")); assertEquals("LIST OF ANY", r.get("LIST ANY")); assertEquals("LIST OF ANY", r.get("LIST OBJECT")); assertEquals("LIST OF LIST", r.get("LIST OF LIST")); assertEquals("LIST OF ANY", r.get("LIST NULL")); }); }
@Test public void testMetaArray() throws Exception { Map<String, Object> param = map( "ARRAY", new String[]{"a","b","c"}, "ARRAY_FLOAT", new Float[]{1.2f, 2.2f}, "ARRAY_DOUBLE", new Double[]{1.2, 2.2}, "ARRAY_INT", new Integer[]{1, 2}, "ARRAY_OBJECT", new Object[]{1, "a"}, "ARRAY_POINT", new Object[]{Values.pointValue(CoordinateReferenceSystem.WGS84, 56.d, 12.78), Values.pointValue(CoordinateReferenceSystem.WGS84_3D, 56.d, 12.78, 100)}, "ARRAY_DURATION", new Object[]{isoDuration(5, 1, 43200, 0).asIsoDuration(), isoDuration(2, 1, 125454, 0).asIsoDuration()}, "ARRAY_ARRAY", new Object[]{1, "a", new Object[]{"a", 1}, isoDuration(5, 1, 43200, 0).asIsoDuration()}, "NULL", null); TestUtil.testCall(db, "RETURN apoc.meta.cypher.types({param}) AS value", singletonMap("param",param), row -> { Map<String, Object> r = (Map<String, Object>) row.get("value"); assertEquals("LIST OF STRING", r.get("ARRAY")); assertEquals("LIST OF FLOAT", r.get("ARRAY_FLOAT")); assertEquals("LIST OF FLOAT", r.get("ARRAY_DOUBLE")); assertEquals("LIST OF INTEGER", r.get("ARRAY_INT")); assertEquals("LIST OF ANY", r.get("ARRAY_OBJECT")); assertEquals("LIST OF POINT", r.get("ARRAY_POINT")); assertEquals("LIST OF DURATION", r.get("ARRAY_DURATION")); assertEquals("LIST OF ANY", r.get("ARRAY_ARRAY")); assertEquals("NULL", r.get("NULL")); }); }
@Test public void testMeta() throws Exception { Map<String, Object> param = map( "LIST", asList(1.2, 2.1), "STRING", "a", "BOOLEAN", true, "CHAR", 'a', "DURATION", 'a', "POINT_2D",Values.pointValue(CoordinateReferenceSystem.WGS84, 56.d, 12.78), "POINT_3D", Values.pointValue(CoordinateReferenceSystem.WGS84_3D, 56.7, 12.78, 100.0), "POINT_XYZ_2D", Values.pointValue(CoordinateReferenceSystem.Cartesian, 2.3, 4.5), "POINT_XYZ_3D", Values.pointValue(CoordinateReferenceSystem.Cartesian_3D, 2.3, 4.5, 1.2), "DURATION", isoDuration(5, 1, 43200, 0).asIsoDuration(), "MAP", Util.map("a", "b"), "NULL", null); TestUtil.testCall(db, "RETURN apoc.meta.cypher.types({param}) AS value", singletonMap("param",param), row -> { Map<String, Object> r = (Map<String, Object>) row.get("value"); assertEquals("LIST OF FLOAT", r.get("LIST")); assertEquals("STRING", r.get("STRING")); assertEquals("BOOLEAN", r.get("BOOLEAN")); assertEquals("Character", r.get("CHAR")); assertEquals("POINT", r.get("POINT_2D")); assertEquals("POINT", r.get("POINT_3D")); assertEquals("POINT", r.get("POINT_XYZ_2D")); assertEquals("POINT", r.get("POINT_XYZ_3D")); assertEquals("DURATION", r.get("DURATION")); assertEquals("MAP", r.get("MAP")); assertEquals("NULL", r.get("NULL")); }); }
private Value unpackDuration() throws IOException { long months = unpacker.unpackLong(); long days = unpacker.unpackLong(); long seconds = unpacker.unpackLong(); int nanoseconds = Math.toIntExact( unpacker.unpackLong() ); return isoDuration( months, days, seconds, nanoseconds ); }
assertEquals("Tom", start.getProperty("name")); assertEquals("Loagan", start.getProperty("surname")); assertEquals(isoDuration(5, 1, 43200, 0).asIsoDuration(), start.getProperty("duration")); Relationship rel = (Relationship) path.get(1); assertEquals("KNOWS", rel.getType().name());