LazyEdge extends Edge { @Override public LazyProperties getProperties() { return lazyProperties; } LazyEdge(final Edge edge, final ElementValueLoader valueLoader); protected  LazyEdge(final Edge edge, final ElementValueLoader valueLoader, final LazyProperties lazyProperties); @Override void setIdentifiers(final Object source, final Object destination, final boolean directed, final MatchedVertex matchedVertex); @Override Object getProperty(final String name); @Override Object getSource(); @Override Object getDestination(); @Override boolean isDirected(); @Override void putIdentifier(final IdentifierType name, final Object value); @Override void setIdentifiers(final Object source, final Object destination, final DirectedType directedType); @Override void putProperty(final String name, final Object value); @Override String getGroup(); @Override Edge getElement(); @Override LazyProperties getProperties(); @Override Object getIdentifier(final IdentifierType identifierType); @Override MatchedVertex getMatchedVertex(); @Override boolean equals(final Object element); @Override int hashCode();  }
@Test public void shouldGetLazyProperties() { final Edge edge = new Edge.Builder().build(); final ElementValueLoader edgeLoader = mock(ElementValueLoader.class); final LazyEdge lazyEdge = new LazyEdge(edge, edgeLoader); final LazyProperties result = lazyEdge.getProperties(); assertNotNull(result); assertNotSame(edge.getProperties(), result); }