Coverage Summary for Class: TestUserSuppliedPKBulkMode (org.umlg.sqlg.test.usersuppliedpk.topology)
Class |
Method, %
|
Branch, %
|
Line, %
|
TestUserSuppliedPKBulkMode |
0%
(0/8)
|
0%
(0/20)
|
0%
(0/105)
|
TestUserSuppliedPKBulkMode$1 |
0%
(0/1)
|
0%
(0/5)
|
TestUserSuppliedPKBulkMode$2 |
0%
(0/1)
|
0%
(0/5)
|
TestUserSuppliedPKBulkMode$3 |
0%
(0/1)
|
0%
(0/2)
|
TestUserSuppliedPKBulkMode$4 |
0%
(0/1)
|
0%
(0/2)
|
TestUserSuppliedPKBulkMode$5 |
0%
(0/1)
|
0%
(0/2)
|
TestUserSuppliedPKBulkMode$6 |
0%
(0/1)
|
0%
(0/3)
|
TestUserSuppliedPKBulkMode$7 |
0%
(0/1)
|
0%
(0/3)
|
TestUserSuppliedPKBulkMode$8 |
0%
(0/1)
|
0%
(0/2)
|
TestUserSuppliedPKBulkMode$9 |
0%
(0/1)
|
0%
(0/2)
|
Total |
0%
(0/17)
|
0%
(0/20)
|
0%
(0/131)
|
package org.umlg.sqlg.test.usersuppliedpk.topology;
import org.apache.commons.collections4.set.ListOrderedSet;
import org.apache.tinkerpop.gremlin.structure.Edge;
import org.apache.tinkerpop.gremlin.structure.T;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.Test;
import org.umlg.sqlg.structure.PropertyDefinition;
import org.umlg.sqlg.structure.PropertyType;
import org.umlg.sqlg.structure.SqlgVertex;
import org.umlg.sqlg.structure.topology.VertexLabel;
import org.umlg.sqlg.test.BaseTest;
import java.util.*;
/**
* @author <a href="https://github.com/pietermartin">Pieter Martin</a>
* Date: 2018/03/31
*/
public class TestUserSuppliedPKBulkMode extends BaseTest {
@Test
public void testBulkUpdateUser() {
this.sqlgGraph.tx().normalBatchModeOn();
this.sqlgGraph.addVertex(T.label, "A", "nameA", "a1", "nameB", "b1", "nameC", "c1", "other", "a");
this.sqlgGraph.addVertex(T.label, "A", "nameA", "a2", "nameB", "b1", "nameC", "c1", "other", "b");
this.sqlgGraph.tx().commit();
this.sqlgGraph.tx().normalBatchModeOn();
List<Vertex> vertices = this.sqlgGraph.traversal().V().hasLabel("A").toList();
for (Vertex vertex : vertices) {
vertex.property("other", "c");
}
this.sqlgGraph.tx().commit();
vertices = this.sqlgGraph.traversal().V().hasLabel("A").toList();
Assert.assertEquals(2, vertices.size());
for (Vertex vertex : vertices) {
Assert.assertEquals("c", vertex.value("other"));
}
}
@Test
public void testBulkUpdateUserSuppliedBulkMode() {
this.sqlgGraph.getTopology().ensureVertexLabelExist(
"A",
new HashMap<>() {{
put("nameA", PropertyDefinition.of(PropertyType.STRING));
put("nameB", PropertyDefinition.of(PropertyType.STRING));
put("nameC", PropertyDefinition.of(PropertyType.STRING));
put("other", PropertyDefinition.of(PropertyType.STRING));
}},
ListOrderedSet.listOrderedSet(Arrays.asList("nameA", "nameB", "nameC"))
);
this.sqlgGraph.tx().commit();
this.sqlgGraph.tx().normalBatchModeOn();
this.sqlgGraph.addVertex(T.label, "A", "nameA", "a1", "nameB", "b1", "nameC", "c1", "other", "a");
this.sqlgGraph.addVertex(T.label, "A", "nameA", "a2", "nameB", "b1", "nameC", "c1", "other", "b");
this.sqlgGraph.tx().commit();
this.sqlgGraph.tx().normalBatchModeOn();
List<Vertex> vertices = this.sqlgGraph.traversal().V().hasLabel("A").toList();
for (Vertex vertex : vertices) {
vertex.property("other", "c");
}
this.sqlgGraph.tx().commit();
vertices = this.sqlgGraph.traversal().V().hasLabel("A").toList();
Assert.assertEquals(2, vertices.size());
for (Vertex vertex : vertices) {
Assert.assertEquals("c", vertex.value("other"));
}
}
@Test
public void testBulkUpdateUserSuppliedBulkModeOnEdges() {
VertexLabel aVertexLabel = this.sqlgGraph.getTopology().ensureVertexLabelExist("A");
VertexLabel bVertexLabel = this.sqlgGraph.getTopology().ensureVertexLabelExist("B");
aVertexLabel.ensureEdgeLabelExist(
"ab",
bVertexLabel,
new HashMap<>() {{
put("nameA", PropertyDefinition.of(PropertyType.STRING));
put("nameB", PropertyDefinition.of(PropertyType.STRING));
put("nameC", PropertyDefinition.of(PropertyType.STRING));
put("other", PropertyDefinition.of(PropertyType.STRING));
}},
ListOrderedSet.listOrderedSet(Arrays.asList("nameA", "nameB", "nameC"))
);
this.sqlgGraph.tx().commit();
this.sqlgGraph.tx().normalBatchModeOn();
Vertex a1 = this.sqlgGraph.addVertex(T.label, "A");
Vertex a2 = this.sqlgGraph.addVertex(T.label, "A");
Vertex b1 = this.sqlgGraph.addVertex(T.label, "B");
Vertex b2 = this.sqlgGraph.addVertex(T.label, "B");
a1.addEdge("ab", b1, "nameA", "a1", "nameB", "b1", "nameC", "c1", "other", "o1");
a1.addEdge("ab", b2, "nameA", "a2", "nameB", "b1", "nameC", "c1", "other", "o1");
a2.addEdge("ab", b1, "nameA", "a3", "nameB", "b1", "nameC", "c1", "other", "o1");
a2.addEdge("ab", b2, "nameA", "a4", "nameB", "b1", "nameC", "c1", "other", "o1");
this.sqlgGraph.tx().commit();
this.sqlgGraph.tx().normalBatchModeOn();
List<Edge> edges = this.sqlgGraph.traversal().E().hasLabel("ab").toList();
for (Edge edge : edges) {
edge.property("other", "c");
}
this.sqlgGraph.tx().commit();
edges = this.sqlgGraph.traversal().E().hasLabel("ab").toList();
Assert.assertEquals(4, edges.size());
for (Edge edge : edges) {
Assert.assertEquals("c", edge.value("other"));
}
}
@Test
public void testVertexLabelUserSuppliedBulkMode() {
//noinspection Duplicates
this.sqlgGraph.getTopology().ensureVertexLabelExist(
"A",
new HashMap<>() {{
put("name", PropertyDefinition.of(PropertyType.STRING));
}},
ListOrderedSet.listOrderedSet(Collections.singletonList("name"))
);
this.sqlgGraph.tx().commit();
this.sqlgGraph.tx().normalBatchModeOn();
this.sqlgGraph.addVertex(T.label, "A", "name", "a1");
this.sqlgGraph.addVertex(T.label, "A", "name", "a2");
this.sqlgGraph.tx().commit();
Assert.assertEquals(2, this.sqlgGraph.traversal().V().hasLabel("A").toList().size());
}
@Test
public void testVertexAndEdgeLabelUserSuppliedBulkMode() {
@SuppressWarnings("Duplicates")
VertexLabel aVertexLabel = this.sqlgGraph.getTopology().ensureVertexLabelExist(
"A",
new HashMap<>() {{
put("name", PropertyDefinition.of(PropertyType.STRING));
}},
ListOrderedSet.listOrderedSet(Collections.singletonList("name"))
);
VertexLabel bVertexLabel = this.sqlgGraph.getTopology().ensureVertexLabelExist(
"B",
new HashMap<>() {{
put("name", PropertyDefinition.of(PropertyType.STRING));
}},
ListOrderedSet.listOrderedSet(Collections.singletonList("name"))
);
aVertexLabel.ensureEdgeLabelExist(
"ab",
bVertexLabel,
new HashMap<>() {{
put("uid", PropertyDefinition.of(PropertyType.STRING));
put("country", PropertyDefinition.of(PropertyType.STRING));
}},
ListOrderedSet.listOrderedSet(Arrays.asList("uid", "country")));
this.sqlgGraph.tx().commit();
this.sqlgGraph.tx().normalBatchModeOn();
for (int i = 0; i < 100; i++) {
Vertex a1 = this.sqlgGraph.addVertex(T.label, "A", "name", "a" + i);
Vertex b1 = this.sqlgGraph.addVertex(T.label, "B", "name", "b" + i);
a1.addEdge("ab", b1, "uid", UUID.randomUUID().toString(), "country", "SA");
}
this.sqlgGraph.tx().commit();
Assert.assertEquals(100, this.sqlgGraph.traversal().V().hasLabel("A").out().toList().size());
}
@Test
public void testVertexBatchStreamMode() {
Assume.assumeTrue(this.sqlgGraph.getSqlDialect().supportsStreamingBatchMode());
this.sqlgGraph.getTopology().ensureVertexLabelExist(
"A",
new HashMap<>() {{
put("name1", PropertyDefinition.of(PropertyType.STRING));
put("name2", PropertyDefinition.of(PropertyType.STRING));
}},
ListOrderedSet.listOrderedSet(Arrays.asList("name1", "name2"))
);
this.sqlgGraph.tx().commit();
this.sqlgGraph.tx().streamingBatchModeOn();
for (int i = 0; i < 100; i++) {
this.sqlgGraph.streamVertex(T.label, "A", "name1", "a" + i, "name2", "a" + i);
}
this.sqlgGraph.tx().commit();
Assert.assertEquals(100, this.sqlgGraph.traversal().V().hasLabel("A").toList().size());
}
@Test
public void testEdgeBatchStreamMode() {
Assume.assumeTrue(this.sqlgGraph.getSqlDialect().supportsStreamingBatchMode());
VertexLabel aVertexLabel = this.sqlgGraph.getTopology().ensureVertexLabelExist(
"A",
new HashMap<>() {{
put("name", PropertyDefinition.of(PropertyType.STRING));
}},
ListOrderedSet.listOrderedSet(Collections.singletonList("name"))
);
VertexLabel bVertexLabel = this.sqlgGraph.getTopology().ensureVertexLabelExist(
"B",
new HashMap<>() {{
put("name", PropertyDefinition.of(PropertyType.STRING));
}},
ListOrderedSet.listOrderedSet(Collections.singletonList("name"))
);
aVertexLabel.ensureEdgeLabelExist("ab", bVertexLabel);
this.sqlgGraph.tx().commit();
SqlgVertex a1 = (SqlgVertex) this.sqlgGraph.addVertex(T.label, "A", "name", "a");
this.sqlgGraph.tx().commit();
this.sqlgGraph.tx().normalBatchModeOn();
Map<String, Vertex> cache = new HashMap<>();
for (int i = 0; i < 100; i++) {
cache.put("b" + i, this.sqlgGraph.addVertex(T.label, "B", "name", "b" + i));
}
this.sqlgGraph.tx().commit();
this.sqlgGraph.tx().streamingBatchModeOn();
for (String key : cache.keySet()) {
SqlgVertex sqlgVertex = (SqlgVertex) cache.get(key);
a1.streamEdge("ab", sqlgVertex);
}
this.sqlgGraph.tx().commit();
Assert.assertEquals(100, this.sqlgGraph.traversal().V().hasLabel("A").out().toList().size());
}
}