### Question:
ActGraph implements Graph { @Override public Iterator<Edge> edges(Object... edgeIds) { if (SetUtils.set(edgeIds).isEmpty()) throw new GraphOperationException("E() is not supported!"); return SetUtils.set(this::resolveEdge, edgeIds).iterator(); } private  ActGraph(ObjectManager objectManager, FactManager factManager, Predicate<FactEntity> hasFactAccess); @Override Vertex addVertex(Object... keyValues); @Override C compute(Class<C> graphComputerClass); @Override GraphComputer compute(); @Override Iterator<Vertex> vertices(Object... vertexIds); @Override Iterator<Edge> edges(Object... edgeIds); @Override Transaction tx(); @Override void close(); @Override Variables variables(); @Override Configuration configuration(); @Override Features features(); @Override String toString(); boolean hasFactAccess(FactEntity fact); ObjectManager getObjectManager(); FactManager getFactManager(); static Builder builder();  }### Answer:
@Test(expected = GraphOperationException.class) public void testFetchingAllEdgesNotAllowed() { getActGraph().edges(); }
@Test(expected = NoSuchElementException.class) public void testHaveExceptionConsistencyWhenFindEdgeByIdThatIsNonExistent() { getActGraph().edges(UUID.randomUUID()); }
@Test public void testIterateEdgesWithUuidIdSupportUsingEdge() { Edge edge1 = createEdge(); Edge edge2 = getActGraph().edges(edge1).next(); assertEquals(edge1.id(), edge2.id()); }
@Test public void testIterateEdgesWithUuidIdSupportUsingDetachedEdge() { Edge edge1 = createEdge(); Edge edge2 = getActGraph().edges(DetachedFactory.detach(edge1, true)).next(); assertEquals(edge1.id(), edge2.id()); assertFalse(edge2 instanceof DetachedEdge); }
@Test public void testIterateEdgesWithUuidIdSupportUsingReferenceEdge() { Edge edge1 = createEdge(); Edge edge2 = getActGraph().edges(ReferenceFactory.detach(edge1)).next(); assertEquals(edge1.id(), edge2.id()); assertFalse(edge2 instanceof ReferenceEdge); }
@Test public void testIterateEdgesWithUuidIdSupportUsingEdgeId() { Edge edge1 = createEdge(); Edge edge2 = getActGraph().edges(edge1.id()).next(); assertEquals(edge1.id(), edge2.id()); }
@Test public void testIterateEdgesWithUuidIdSupportUsingEdges() { Edge edge1 = createEdge(); Edge edge2 = createEdge(); assertEquals(2, IteratorUtils.count(getActGraph().edges(edge1, edge2))); }
@Test public void testIterateEdgesWithUuidIdSupportUsingEdgeIds() { Edge edge1 = createEdge(); Edge edge2 = createEdge(); assertEquals(2, IteratorUtils.count(getActGraph().edges(edge1.id(), edge2.id()))); }