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);
  }
 }