Coverage Summary for Class: TestPropertyCheckConstraint (org.umlg.sqlg.test.topology.propertydefinition)
  | Class | 
  Method, %
 | 
  Line, %
 | 
  | TestPropertyCheckConstraint | 
  
    100%
  
  
    (3/3)
  
 | 
  
    78.6%
  
  
    (33/42)
  
 | 
  
    | TestPropertyCheckConstraint$1 | 
  
    100%
  
  
    (1/1)
  
 | 
  
    100%
  
  
    (2/2)
  
 | 
  
  
    | TestPropertyCheckConstraint$2 | 
  
    100%
  
  
    (1/1)
  
 | 
  
    100%
  
  
    (2/2)
  
 | 
  
  
    | TestPropertyCheckConstraint$3 | 
  
    100%
  
  
    (1/1)
  
 | 
  
    100%
  
  
    (2/2)
  
 | 
  
  
    | TestPropertyCheckConstraint$4 | 
  
    100%
  
  
    (1/1)
  
 | 
  
    100%
  
  
    (2/2)
  
 | 
  
  | Total | 
  
    100%
  
  
    (7/7)
  
 | 
  
    82%
  
  
    (41/50)
  
 | 
 package org.umlg.sqlg.test.topology.propertydefinition;
 
 import org.apache.tinkerpop.gremlin.structure.T;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.junit.Assert;
 import org.junit.Test;
 import org.umlg.sqlg.structure.Multiplicity;
 import org.umlg.sqlg.structure.PropertyDefinition;
 import org.umlg.sqlg.structure.PropertyType;
 import org.umlg.sqlg.structure.topology.Schema;
 import org.umlg.sqlg.structure.topology.VertexLabel;
 import org.umlg.sqlg.test.BaseTest;
 
 import java.util.HashMap;
 
 public class TestPropertyCheckConstraint extends BaseTest {
 
     @Test
     public void testVertexLabelCheckConstraint() {
         Schema publicSchema = this.sqlgGraph.getTopology().getPublicSchema();
         publicSchema.ensureVertexLabelExist("A", new HashMap<>() {{
             put("name", PropertyDefinition.of(PropertyType.STRING, Multiplicity.of(1, 1), null, "(" + sqlgGraph.getSqlDialect().maybeWrapInQoutes("name") + " <> 'a')"));
         }});
         this.sqlgGraph.tx().commit();
         boolean failure = false;
         try {
             this.sqlgGraph.addVertex(T.label, "A", "name", "a");
             this.sqlgGraph.tx().commit();
         } catch (Exception e) {
             failure = true;
             this.sqlgGraph.tx().rollback();
         }
         Assert.assertTrue(failure);
         failure = false;
         try {
             this.sqlgGraph.addVertex(T.label, "A", "name", "b");
             this.sqlgGraph.tx().commit();
         } catch (Exception e) {
             e.printStackTrace();
             failure = true;
             this.sqlgGraph.tx().rollback();
         }
         Assert.assertFalse(failure);
     }
 
     @Test
     public void testEdgeLabelCheckConstraint() {
         Schema publicSchema = this.sqlgGraph.getTopology().getPublicSchema();
         VertexLabel aVertexLabel = publicSchema.ensureVertexLabelExist("A", new HashMap<>() {{
             put("name", PropertyDefinition.of(PropertyType.STRING, Multiplicity.of(1, 1), null, "(" + sqlgGraph.getSqlDialect().maybeWrapInQoutes("name") + " <> 'a')"));
         }});
         VertexLabel bVertexLabel = publicSchema.ensureVertexLabelExist("B", new HashMap<>() {{
             put("name", PropertyDefinition.of(PropertyType.STRING, Multiplicity.of(1, 1), null, "(" + sqlgGraph.getSqlDialect().maybeWrapInQoutes("name") + " <> 'a')"));
         }});
         aVertexLabel.ensureEdgeLabelExist("ab", bVertexLabel, new HashMap<>() {{
             put("name", PropertyDefinition.of(PropertyType.STRING, Multiplicity.of(1, 1), null, "(" + sqlgGraph.getSqlDialect().maybeWrapInQoutes("name") + "<> 'a')"));
         }});
         this.sqlgGraph.tx().commit();
         boolean failure = false;
         try {
             Vertex a = this.sqlgGraph.addVertex(T.label, "A", "name", "b");
             Vertex b = this.sqlgGraph.addVertex(T.label, "B", "name", "b");
             a.addEdge("ab", b, "name", "a");
             this.sqlgGraph.tx().commit();
         } catch (Exception e) {
             failure = true;
             this.sqlgGraph.tx().rollback();
         }
         Assert.assertTrue(failure);
         failure = false;
         try {
             Vertex a = this.sqlgGraph.addVertex(T.label, "A", "name", "b");
             Vertex b = this.sqlgGraph.addVertex(T.label, "B", "name", "b");
             a.addEdge("ab", b, "name", "b");
             this.sqlgGraph.tx().commit();
         } catch (Exception e) {
             failure = true;
             this.sqlgGraph.tx().rollback();
         }
         Assert.assertFalse(failure);
     }
 }