@Override protected void initiate() { iterator = new GradoopEdgeIterator(); handler = new AccumuloEdgeHandler(new EdgeFactory()); }
/** * Creates a new Configuration. */ @SuppressWarnings("unchecked") protected GradoopConfig() { this.graphHeadFactory = new GraphHeadFactory(); this.vertexFactory = new VertexFactory(); this.edgeFactory = new EdgeFactory(); }
@Before public void setUp() throws Exception { this.vertexFactory = new VertexFactory(); this.edgeFactory = new EdgeFactory(); }
@Test(expected = NullPointerException.class) public void createWithNullSourceIdTest() { GradoopId edgeId = GradoopId.get(); GradoopId targetId = GradoopId.get(); new EdgeFactory().initEdge(edgeId, null, targetId); }
@Test(expected = NullPointerException.class) public void createWithNullTargetIdTest() { GradoopId edgeId = GradoopId.get(); GradoopId sourceId = GradoopId.get(); new EdgeFactory().initEdge(edgeId, sourceId, null); }
@Test(expected = NullPointerException.class) public void createWithNullIDTest() { GradoopId sourceId = GradoopId.get(); GradoopId targetId = GradoopId.get(); new EdgeFactory().initEdge(null, sourceId, targetId); }
/** * Creates a default Configuration using POJO handlers for vertices, edges * and graph heads and default table names. * * @return Default Gradoop Accumulo configuration. */ public static GradoopAccumuloConfig getDefaultConfig() { GraphHeadFactory graphHeadFactory = new GraphHeadFactory(); EdgeFactory edgeFactory = new EdgeFactory(); VertexFactory vertexFactory = new VertexFactory(); return new GradoopAccumuloConfig( new AccumuloGraphHandler(graphHeadFactory), new AccumuloVertexHandler(vertexFactory), new AccumuloEdgeHandler(edgeFactory)); }
@Test(expected = NullPointerException.class) public void createWithNullLabelTest() { GradoopId edgeId = GradoopId.get(); GradoopId sourceId = GradoopId.get(); GradoopId targetId = GradoopId.get(); new EdgeFactory().initEdge(edgeId, null, sourceId, targetId); } }
@Test public void createWithMissingLabelTest() { GradoopId edgeId = GradoopId.get(); GradoopId sourceId = GradoopId.get(); GradoopId targetId = GradoopId.get(); EPGMEdge e = new EdgeFactory().initEdge(edgeId, sourceId, targetId); assertThat(e.getLabel(), is(GradoopConstants.DEFAULT_EDGE_LABEL)); }
@Test public void createWithIDTest() { GradoopId edgeId = GradoopId.get(); GradoopId sourceId = GradoopId.get(); GradoopId targetId = GradoopId.get(); EPGMEdge e = new EdgeFactory().initEdge(edgeId, sourceId, targetId); assertThat(e.getId(), is(edgeId)); assertThat(e.getSourceId(), is(sourceId)); assertThat(e.getTargetId(), is(targetId)); assertThat(e.getPropertyCount(), is(0)); assertThat(e.getGraphCount(), is(0)); }
protected DataSet<Edge> createEdgesWithProperties(List<String> propertyNames) { Properties properties = getProperties(propertyNames); EdgeFactory edgeFactory = new EdgeFactory(); List<Edge> edges = Lists.newArrayList( edgeFactory.createEdge("Label1", GradoopId.get(), GradoopId.get(), properties), edgeFactory.createEdge("Label2", GradoopId.get(), GradoopId.get(), properties) ); return getExecutionEnvironment().fromCollection(edges); }
@Test public void testFilterEdgesByLabel() throws Exception { CNF predicates = predicateFromQuery("MATCH ()-[a:likes]->()"); EdgeFactory edgeFactory = new EdgeFactory(); Edge e1 = edgeFactory.createEdge("likes", GradoopId.get(), GradoopId.get()); Edge e2 = edgeFactory.createEdge("knows", GradoopId.get(), GradoopId.get()); DataSet<Edge> edges = getExecutionEnvironment().fromElements(e1, e2); List<Embedding> result = new FilterAndProjectEdges(edges, predicates, new ArrayList<>(), false) .evaluate() .collect(); assertEquals(1, result.size()); assertEquals(result.get(0).getId(1), e1.getId()); }
@Test public void testFilterWithNoPredicates() throws Exception { CNF predicates = predicateFromQuery("MATCH ()-[a]->()"); EdgeFactory edgeFactory = new EdgeFactory(); Properties properties = Properties.create(); properties.set("name", "Anton"); Edge e1 = edgeFactory.createEdge("knows", GradoopId.get(), GradoopId.get(), properties); DataSet<Edge> edges = getExecutionEnvironment().fromElements(e1); List<Embedding> result = new FilterAndProjectEdges(edges, predicates, new ArrayList<>(), false) .evaluate() .collect(); assertEquals(1, result.size()); assertEquals(result.get(0).getId(1), e1.getId()); }
@Test public void testResultingEntryList() throws Exception { CNF predicates = predicateFromQuery("MATCH ()-[a]->() WHERE a.name = \"Alice\""); Properties properties = Properties.create(); properties.set("name", "Alice"); Edge edge = new EdgeFactory().createEdge("Label", GradoopId.get(), GradoopId.get(), properties); DataSet<Edge> edges = getExecutionEnvironment().fromElements(edge); List<Embedding> result = new FilterAndProjectEdges(edges, predicates, new ArrayList<>(), false) .evaluate() .collect(); assertEquals(edge.getSourceId(), result.get(0).getId(0)); assertEquals(edge.getId(), result.get(0).getId(1)); assertEquals(edge.getTargetId(), result.get(0).getId(2)); }
@Test public void testProjectLoop() throws Exception { GradoopId a = GradoopId.get(); Edge edge = new EdgeFactory().createEdge(a, a); DataSet<Edge> edges = getExecutionEnvironment().fromElements(edge); Embedding result = new ProjectEdges(edges, Collections.emptyList(), true) .evaluate().collect().get(0); assertEquals(result.size(), 2); assertEquals(a, result.getId(0)); assertEquals(edge.getId(), result.getId(1)); } }
@Test public void testProjectionOfAvailableValues() throws Exception { CNF predicates = predicateFromQuery("MATCH ()-[a]->() WHERE a.name = \"Alice\""); Properties properties = Properties.create(); properties.set("name", "Alice"); Edge edge = new EdgeFactory().createEdge("Label", GradoopId.get(), GradoopId.get(), properties); DataSet<Edge> edges = getExecutionEnvironment().fromElements(edge); List<String> projectionPropertyKeys = Lists.newArrayList("name"); Embedding result = new FilterAndProjectEdges(edges, predicates, projectionPropertyKeys, false) .evaluate().collect().get(0); assertEquals(result.getProperty(0), PropertyValue.create("Alice")); }
@Test public void testProjectLoop() throws Exception { CNF predicates = predicateFromQuery("MATCH (a)-[b]->(a)"); GradoopId a = GradoopId.get(); Edge edge = new EdgeFactory().createEdge(a, a); DataSet<Edge> edges = getExecutionEnvironment().fromElements(edge); Embedding result = new FilterAndProjectEdges(edges, predicates, Collections.emptyList(), true) .evaluate().collect().get(0); assertEquals(result.size(), 2); assertEquals(a, result.getId(0)); assertEquals(edge.getId(), result.getId(1)); } }
@Test public void testProjectionOfMissingValues() throws Exception { CNF predicates = predicateFromQuery("MATCH ()-[a]->() WHERE a.name = \"Alice\""); Properties properties = Properties.create(); properties.set("name", "Alice"); Edge edge = new EdgeFactory().createEdge("Label", GradoopId.get(), GradoopId.get(), properties); DataSet<Edge> edges = getExecutionEnvironment().fromElements(edge); List<String> projectionPropertyKeys = Lists.newArrayList("name", "since"); Embedding result = new FilterAndProjectEdges(edges, predicates, projectionPropertyKeys, false) .evaluate().collect().get(0); assertEquals(result.getProperty(0), PropertyValue.create("Alice")); assertEquals(result.getProperty(1), PropertyValue.NULL_VALUE); }
@Test public void testEdgeSerialization() throws Exception { EPGMEdge edgeIn = new EdgeFactory().createEdge( "knows", GradoopId.get(), GradoopId.get(), Properties.createFromMap(GradoopTestUtils.SUPPORTED_PROPERTIES), GradoopIdSet.fromExisting(GradoopId.get(), GradoopId.get())); Assert.assertEquals("EPGMEdge POJOs were not equal", edgeIn, GradoopFlinkTestUtils.writeAndRead(edgeIn)); }
@Test public void testEdge() { GradoopId edgeId = GradoopId.get(); GradoopId sourceId = GradoopId.get(); GradoopId targetId = GradoopId.get(); String label = "A"; Properties props = Properties.create(); props.set("k1", "v1"); props.set("k2", "v2"); EPGMEdge edge = new EdgeFactory().initEdge(edgeId, label, sourceId, targetId, props); String newLabel = "B"; TransformationFunction<EPGMEdge> renameFunction = new RenameLabel<>(label, newLabel); renameFunction.apply(edge, edge); assertEquals(newLabel, edge.getLabel()); assertThat(edge.getPropertyValue("k1").toString(), Is.<Object>is("v1")); assertThat(edge.getPropertyValue("k2").toString(), Is.<Object>is("v2")); }