@Test public void shouldDelegateSetIdentifiersToEdge() { // Given final Edge edge = mock(Edge.class); given(edge.getProperties()).willReturn(mock(Properties.class)); final ElementValueLoader edgeLoader = mock(ElementValueLoader.class); final LazyEdge lazyEdge = new LazyEdge(edge, edgeLoader); // When lazyEdge.setIdentifiers("src", "dest", DirectedType.UNDIRECTED); // Then verify(edgeLoader, never()).loadIdentifiers(edge); verify(edge).setIdentifiers("src", "dest", DirectedType.UNDIRECTED); }
@Test public void shouldNotLoadIsDirectedWhenLoaded() { // Given final Edge edge = new Edge.Builder().build(); final ElementValueLoader edgeLoader = mock(ElementValueLoader.class); final LazyEdge lazyEdge = new LazyEdge(edge, edgeLoader); lazyEdge.setIdentifiers(null, null, DirectedType.DIRECTED); // call it to load the value. // When boolean isDirected = lazyEdge.isDirected(); boolean isDirected2 = lazyEdge.isDirected(); // Then assertTrue(isDirected); assertTrue(isDirected2); verify(edgeLoader, never()).loadIdentifiers(edge); }
@Test public void shouldNotLoadIdentifierWhenLoaded() { // Given final Edge edge = new Edge.Builder().build(); final ElementValueLoader edgeLoader = mock(ElementValueLoader.class); final LazyEdge lazyEdge = new LazyEdge(edge, edgeLoader); final IdentifierType identifierType = IdentifierType.SOURCE; final String exceptedIdentifierValue = "identifier value"; lazyEdge.setIdentifiers(exceptedIdentifierValue, "dest", DirectedType.DIRECTED); // When - should use the loaded value Object identifierValue = lazyEdge.getIdentifier(identifierType); Object identifierValue2 = lazyEdge.getIdentifier(identifierType); // Then assertEquals(exceptedIdentifierValue, identifierValue); assertEquals(exceptedIdentifierValue, identifierValue2); assertEquals(exceptedIdentifierValue, edge.getSource()); verify(edgeLoader, never()).loadIdentifiers(edge); }