Coverage Summary for Class: TestDetachedEdge (org.umlg.sqlg.test.edges)

Class Class, % Method, % Line, %
TestDetachedEdge 100% (1/1) 100% (4/4) 100% (20/20)


 package org.umlg.sqlg.test.edges;
 
 import org.apache.tinkerpop.gremlin.structure.Direction;
 import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedEdge;
 import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedFactory;
 import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 import org.junit.Assert;
 import org.junit.Test;
 import org.umlg.sqlg.test.BaseTest;
 
 import static org.junit.Assert.assertEquals;
 
 /**
  * Date: 2016/11/17
  * Time: 10:15 PM
  */
 public class TestDetachedEdge extends BaseTest {
 
 
  @Test
  public void shouldConstructDetachedEdge() {
  loadModern();
  Object edgeId = convertToEdgeId();
  this.sqlgGraph.traversal().E(edgeId).next().property("year", 2002);
  Edge next = this.sqlgGraph.traversal().E(edgeId).next();
 
  Assert.assertNotNull(this.sqlgGraph.traversal().E(edgeId).next().property("year").value());
 
  final DetachedEdge detachedEdge = DetachedFactory.detach(next, true);
  assertEquals(convertToEdgeId(), detachedEdge.id());
  assertEquals("knows", detachedEdge.label());
  assertEquals(DetachedVertex.class, detachedEdge.vertices(Direction.OUT).next().getClass());
  assertEquals(convertToVertexId("marko"), detachedEdge.vertices(Direction.OUT).next().id());
  assertEquals("person", detachedEdge.vertices(Direction.IN).next().label());
  assertEquals(DetachedVertex.class, detachedEdge.vertices(Direction.IN).next().getClass());
  assertEquals(convertToVertexId("vadas"), detachedEdge.vertices(Direction.IN).next().id());
  assertEquals("person", detachedEdge.vertices(Direction.IN).next().label());
 
  assertEquals(2, IteratorUtils.count(detachedEdge.properties()));
  assertEquals(1, IteratorUtils.count(detachedEdge.properties("year")));
  assertEquals(0.5d, detachedEdge.properties("weight").next().value());
  }
 
  private Object convertToEdgeId() {
  return convertToEdgeId(this.sqlgGraph, "marko", "knows", "vadas");
  }
 
  public Object convertToEdgeId(final Graph graph, final String outVertexName, String edgeLabel, final String inVertexName) {
  return graph.traversal().V().has("name", outVertexName).outE(edgeLabel).as("e").inV().has("name", inVertexName).<Edge>select("e").next().id();
  }
 
 }