in hugegraph-test/src/main/java/org/apache/hugegraph/core/EdgeCoreTest.java [6180:6318]
public void testUpdateEdgePropertyOfAggregateType() {
Assume.assumeTrue("Not support aggregate property",
storeFeatures().supportsAggregateProperty());
HugeGraph graph = graph();
SchemaManager schema = graph.schema();
schema.propertyKey("startTime")
.asDate().valueSingle().calcMin()
.ifNotExist().create();
schema.propertyKey("endTime")
.asDate().valueSingle().calcMax()
.ifNotExist().create();
schema.propertyKey("times")
.asLong().valueSingle().calcSum()
.ifNotExist().create();
schema.propertyKey("port")
.asInt().valueSet().calcSet()
.ifNotExist().create();
schema.propertyKey("type")
.asInt().valueList().calcList()
.ifNotExist().create();
schema.vertexLabel("ip").useCustomizeStringId().ifNotExist().create();
schema.edgeLabel("attack").sourceLabel("ip").targetLabel("ip")
.properties("startTime", "endTime", "times", "port", "type")
.ifNotExist().create();
Vertex ip1 = graph.addVertex(T.label, "ip", T.id, "10.0.0.1");
Vertex ip2 = graph.addVertex(T.label, "ip", T.id, "10.0.0.2");
ip1.addEdge("attack", ip2,
"startTime", "2019-1-1 00:00:30",
"endTime", "2019-1-1 00:01:00",
"times", 3, "port", 21, "type", 21);
graph.tx().commit();
Edge edge = graph.traversal().V("10.0.0.1").outE().next();
Assert.assertEquals(Utils.date("2019-1-1 00:00:30"),
edge.value("startTime"));
Assert.assertEquals(Utils.date("2019-1-1 00:01:00"),
edge.value("endTime"));
Assert.assertEquals(3L, edge.value("times"));
Assert.assertEquals(ImmutableSet.of(21), edge.value("port"));
Assert.assertEquals(ImmutableList.of(21), edge.value("type"));
edge = graph.traversal().V("10.0.0.2").inE().next();
Assert.assertEquals(Utils.date("2019-1-1 00:00:30"),
edge.value("startTime"));
Assert.assertEquals(Utils.date("2019-1-1 00:01:00"),
edge.value("endTime"));
Assert.assertEquals(3L, edge.value("times"));
Assert.assertEquals(ImmutableSet.of(21), edge.value("port"));
Assert.assertEquals(ImmutableList.of(21), edge.value("type"));
edge.property("startTime", "2019-1-1 00:04:00");
edge.property("endTime", "2019-1-1 00:08:00");
edge.property("times", 10);
edge.property("port", 22);
edge.property("type", 22);
graph.tx().commit();
edge = graph.traversal().V("10.0.0.1").outE().next();
Assert.assertEquals(Utils.date("2019-1-1 00:00:30"),
edge.value("startTime"));
Assert.assertEquals(Utils.date("2019-1-1 00:08:00"),
edge.value("endTime"));
Assert.assertEquals(13L, edge.value("times"));
Assert.assertEquals(ImmutableSet.of(21, 22), edge.value("port"));
Assert.assertEquals(ImmutableList.of(21, 22), edge.value("type"));
edge = graph.traversal().V("10.0.0.2").inE().next();
Assert.assertEquals(Utils.date("2019-1-1 00:00:30"),
edge.value("startTime"));
Assert.assertEquals(Utils.date("2019-1-1 00:08:00"),
edge.value("endTime"));
Assert.assertEquals(13L, edge.value("times"));
Assert.assertEquals(ImmutableSet.of(21, 22), edge.value("port"));
Assert.assertEquals(ImmutableList.of(21, 22), edge.value("type"));
edge.property("startTime", "2019-1-2 00:04:00");
edge.property("endTime", "2019-1-2 00:08:00");
edge.property("times", 7);
edge.property("port", 23);
edge.property("type", 23);
graph.tx().commit();
edge = graph.traversal().V("10.0.0.1").outE().next();
Assert.assertEquals(Utils.date("2019-1-1 00:00:30"),
edge.value("startTime"));
Assert.assertEquals(Utils.date("2019-1-2 00:08:00"),
edge.value("endTime"));
Assert.assertEquals(20L, edge.value("times"));
Assert.assertEquals(ImmutableSet.of(21, 22, 23),
edge.value("port"));
Assert.assertEquals(ImmutableList.of(21, 22, 23),
edge.value("type"));
edge = graph.traversal().V("10.0.0.2").inE().next();
Assert.assertEquals(Utils.date("2019-1-1 00:00:30"),
edge.value("startTime"));
Assert.assertEquals(Utils.date("2019-1-2 00:08:00"),
edge.value("endTime"));
Assert.assertEquals(20L, edge.value("times"));
Assert.assertEquals(ImmutableSet.of(21, 22, 23),
edge.value("port"));
Assert.assertEquals(ImmutableList.of(21, 22, 23),
edge.value("type"));
edge.property("startTime", "2019-1-1 00:00:00");
edge.property("endTime", "2019-2-1 00:20:00");
edge.property("times", 100);
edge.property("port", 23);
edge.property("type", 23);
graph.tx().commit();
edge = graph.traversal().V("10.0.0.1").outE().next();
Assert.assertEquals(Utils.date("2019-1-1 00:00:00"),
edge.value("startTime"));
Assert.assertEquals(Utils.date("2019-2-1 00:20:00"),
edge.value("endTime"));
Assert.assertEquals(120L, edge.value("times"));
Assert.assertEquals(ImmutableSet.of(21, 22, 23),
edge.value("port"));
Assert.assertEquals(ImmutableList.of(21, 22, 23, 23),
edge.value("type"));
edge = graph.traversal().V("10.0.0.2").inE().next();
Assert.assertEquals(Utils.date("2019-1-1 00:00:00"),
edge.value("startTime"));
Assert.assertEquals(Utils.date("2019-2-1 00:20:00"),
edge.value("endTime"));
Assert.assertEquals(120L, edge.value("times"));
Assert.assertEquals(ImmutableSet.of(21, 22, 23),
edge.value("port"));
Assert.assertEquals(ImmutableList.of(21, 22, 23, 23),
edge.value("type"));
}