Coverage Summary for Class: TestDeletedVertex (org.umlg.sqlg.test.mod)

Class Method, % Branch, % Line, %
TestDeletedVertex 100% (10/10) 100% (4/4) 100% (93/93)
TestDeletedVertex$1 100% (1/1) 100% (2/2)
TestDeletedVertex$2 100% (1/1) 100% (3/3)
TestDeletedVertex$3 100% (1/1) 100% (4/4)
TestDeletedVertex$4 100% (1/1) 100% (4/4)
TestDeletedVertex$5 100% (1/1) 100% (2/2)
TestDeletedVertex$6 100% (1/1) 100% (4/4)
TestDeletedVertex$7 100% (1/1) 100% (4/4)
TestDeletedVertex$8 100% (1/1) 100% (2/2)
Total 100% (18/18) 100% (4/4) 100% (118/118)


 package org.umlg.sqlg.test.mod;
 
 import org.apache.commons.collections4.set.ListOrderedSet;
 import org.apache.commons.lang3.time.StopWatch;
 import org.apache.tinkerpop.gremlin.structure.T;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.junit.Assert;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.umlg.sqlg.structure.PropertyDefinition;
 import org.umlg.sqlg.structure.PropertyType;
 import org.umlg.sqlg.structure.topology.VertexLabel;
 import org.umlg.sqlg.test.BaseTest;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.UUID;
 
 /**
  * Date: 2014/07/26
  * Time: 4:40 PM
  */
 public class TestDeletedVertex extends BaseTest {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(TestDeletedVertex.class);
 
     @Test
     public void testDeletedVertex() {
         Vertex v1 = this.sqlgGraph.addVertex(T.label, "Person", "name", "marko");
         Vertex v2 = this.sqlgGraph.addVertex(T.label, "Person", "name", "pieter");
         this.sqlgGraph.tx().commit();
         this.sqlgGraph.tx().close();
         v1.remove();
         this.sqlgGraph.tx().commit();
         Assert.assertFalse(this.sqlgGraph.traversal().V(v1.id()).hasNext());
         Assert.assertTrue(this.sqlgGraph.traversal().V(v2.id()).hasNext());
     }
 
     @Test
     public void testDeletedVertexUserSuppliedPK() {
         this.sqlgGraph.getTopology().getPublicSchema()
                 .ensureVertexLabelExist(
                         "Person",
                         new HashMap<>() {{
                             put("name", PropertyDefinition.of(PropertyType.varChar(100)));
                         }},
                         ListOrderedSet.listOrderedSet(Collections.singletonList("name"))
                 );
         Vertex v1 = this.sqlgGraph.addVertex(T.label, "Person", "name", "marko");
         Vertex v2 = this.sqlgGraph.addVertex(T.label, "Person", "name", "pieter");
         this.sqlgGraph.tx().commit();
         this.sqlgGraph.tx().close();
         v1.remove();
         this.sqlgGraph.tx().commit();
         Assert.assertFalse(this.sqlgGraph.traversal().V(v1.id()).hasNext());
         Assert.assertTrue(this.sqlgGraph.traversal().V(v2.id()).hasNext());
     }
 
     @Test
     public void testDeletedVertexUserSuppliedPK_with2PK() {
         this.sqlgGraph.getTopology().getPublicSchema()
                 .ensureVertexLabelExist(
                         "Person",
                         new HashMap<>() {{
                             put("name", PropertyDefinition.of(PropertyType.varChar(100)));
                             put("uid", PropertyDefinition.of(PropertyType.varChar(100)));
                         }},
                         ListOrderedSet.listOrderedSet(Arrays.asList("name", "uid"))
                 );
         String uid1 = UUID.randomUUID().toString();
         String uid2 = UUID.randomUUID().toString();
         Vertex v1 = this.sqlgGraph.addVertex(T.label, "Person", "name", "marko", "uid", uid1);
         Vertex v2 = this.sqlgGraph.addVertex(T.label, "Person", "name", "pieter", "uid", uid2);
         this.sqlgGraph.tx().commit();
         this.sqlgGraph.tx().close();
         v1.remove();
         this.sqlgGraph.tx().commit();
         Assert.assertFalse(this.sqlgGraph.traversal().V(v1.id()).hasNext());
         Assert.assertTrue(this.sqlgGraph.traversal().V(v2.id()).hasNext());
     }
 
     @Test
     public void testRemoveOutVertexRemovesEdges() {
         Vertex person = this.sqlgGraph.addVertex(T.label, "Person", "name", "marko");
         Vertex dog = this.sqlgGraph.addVertex(T.label, "Dog", "name", "snowy");
         person.addEdge("friend", dog);
         this.sqlgGraph.tx().commit();
         person.remove();
         Assert.assertEquals(0, this.sqlgGraph.traversal().E().toList().size());
     }
 
     @Test
     public void testRemoveOutVertexRemovesEdgesUserSuppliedPK() {
         VertexLabel personVertexLabel = this.sqlgGraph.getTopology().getPublicSchema()
                 .ensureVertexLabelExist(
                         "Person",
                         new HashMap<>() {{
                             put("uid1", PropertyDefinition.of(PropertyType.varChar(100)));
                             put("uid2", PropertyDefinition.of(PropertyType.varChar(100)));
                             put("name", PropertyDefinition.of(PropertyType.STRING));
                         }},
                         ListOrderedSet.listOrderedSet(Arrays.asList("uid1", "uid2"))
                 );
         VertexLabel dogVertexLabel = this.sqlgGraph.getTopology().getPublicSchema()
                 .ensureVertexLabelExist(
                         "Dog",
                         new HashMap<>() {{
                             put("uid1", PropertyDefinition.of(PropertyType.varChar(100)));
                             put("uid2", PropertyDefinition.of(PropertyType.varChar(100)));
                             put("name", PropertyDefinition.of(PropertyType.STRING));
                         }},
                         ListOrderedSet.listOrderedSet(Arrays.asList("uid1", "uid2"))
                 );
         personVertexLabel.ensureEdgeLabelExist(
                 "friend",
                 dogVertexLabel,
                 new HashMap<>() {{
                     put("uid", PropertyDefinition.of(PropertyType.varChar(100)));
                 }},
                 ListOrderedSet.listOrderedSet(Collections.singletonList("uid"))
         );
 
         Vertex person = this.sqlgGraph.addVertex(T.label, "Person", "uid1", UUID.randomUUID().toString(), "uid2", UUID.randomUUID().toString(), "name", "marko");
         Vertex dog = this.sqlgGraph.addVertex(T.label, "Dog", "uid1", UUID.randomUUID().toString(), "uid2", UUID.randomUUID().toString(), "name", "snowy");
         person.addEdge("friend", dog, "uid", UUID.randomUUID().toString());
         this.sqlgGraph.tx().commit();
         person.remove();
         Assert.assertEquals(0, this.sqlgGraph.traversal().E().toList().size());
     }
 
     @Test
     public void testRemoveInVertexRemovesEdges() {
         Vertex person = this.sqlgGraph.addVertex(T.label, "Person", "name", "marko");
         Vertex dog = this.sqlgGraph.addVertex(T.label, "Dog", "name", "snowy");
         person.addEdge("friend", dog);
         this.sqlgGraph.tx().commit();
         dog.remove();
         Assert.assertEquals(0, this.sqlgGraph.traversal().E().toList().size());
     }
 
     @Test
     public void testRemoveInVertexRemovesEdgesUserSuppliedPK() {
         VertexLabel personVertexLabel = this.sqlgGraph.getTopology().getPublicSchema()
                 .ensureVertexLabelExist(
                         "Person",
                         new HashMap<>() {{
                             put("uid1", PropertyDefinition.of(PropertyType.varChar(100)));
                             put("uid2", PropertyDefinition.of(PropertyType.varChar(100)));
                             put("name", PropertyDefinition.of(PropertyType.STRING));
                         }},
                         ListOrderedSet.listOrderedSet(Arrays.asList("uid1", "uid2"))
                 );
         VertexLabel dogVertexLabel = this.sqlgGraph.getTopology().getPublicSchema()
                 .ensureVertexLabelExist(
                         "Dog",
                         new HashMap<>() {{
                             put("uid1", PropertyDefinition.of(PropertyType.varChar(100)));
                             put("uid2", PropertyDefinition.of(PropertyType.varChar(100)));
                             put("name", PropertyDefinition.of(PropertyType.STRING));
                         }},
                         ListOrderedSet.listOrderedSet(Arrays.asList("uid1", "uid2"))
                 );
         personVertexLabel.ensureEdgeLabelExist(
                 "friend",
                 dogVertexLabel,
                 new HashMap<>() {{
                     put("uid", PropertyDefinition.of(PropertyType.varChar(100)));
                 }},
                 ListOrderedSet.listOrderedSet(Collections.singletonList("uid"))
         );
 
         Vertex person = this.sqlgGraph.addVertex(T.label, "Person", "uid1", UUID.randomUUID().toString(), "uid2", UUID.randomUUID().toString(), "name", "marko");
         Vertex dog = this.sqlgGraph.addVertex(T.label, "Dog", "uid1", UUID.randomUUID().toString(), "uid2", UUID.randomUUID().toString(), "name", "snowy");
         person.addEdge("friend", dog, "uid", UUID.randomUUID().toString());
         this.sqlgGraph.tx().commit();
         dog.remove();
         Assert.assertEquals(0, this.sqlgGraph.traversal().E().toList().size());
     }
 
     @Test
     public void testPerf() {
         StopWatch stopWatch = new StopWatch();
         stopWatch.start();
         this.sqlgGraph.tx().normalBatchModeOn();
         Vertex person = this.sqlgGraph.addVertex(T.label, "Person");
         for (int i = 0; i < 1_000_000; i++) {
             Vertex dog = this.sqlgGraph.addVertex(T.label, "Dog");
             person.addEdge("friend", dog);
             if (i % 10_000 == 0) {
                 LOGGER.info("added {} of 1 000 000", i);
                 this.sqlgGraph.tx().flush();
             }
         }
         this.sqlgGraph.tx().commit();
         stopWatch.stop();
         LOGGER.debug(stopWatch.toString());
         stopWatch.reset();
         stopWatch.start();
         person.remove();
         this.sqlgGraph.tx().commit();
         stopWatch.stop();
         LOGGER.debug(stopWatch.toString());
     }
 }