@Test public void shouldDelegatePutPropertyToLazyProperties() { // Given final Entity entity = new Entity("group"); final ElementValueLoader entityLoader = mock(ElementValueLoader.class); final LazyEntity lazyEntity = new LazyEntity(entity, entityLoader); final String propertyName = "property name"; final String propertyValue = "property value"; // When lazyEntity.putProperty(propertyName, propertyValue); // Then verify(entityLoader, never()).getProperty(propertyName, lazyEntity.getProperties()); assertEquals(propertyValue, entity.getProperty(propertyName)); assertEquals(propertyValue, lazyEntity.getProperty(propertyName)); }
@Test public void shouldUnwrapEntity() { // Given final Entity entity = new Entity("group"); final ElementValueLoader entityLoader = mock(ElementValueLoader.class); final LazyEntity lazyEntity = new LazyEntity(entity, entityLoader); // When final Entity result = lazyEntity.getElement(); // Then assertSame(entity, result); } }
@Test public void shouldDelegateGetGroupToEntity() { // Given final String group = "group"; final Entity entity = new Entity(group); final ElementValueLoader entityLoader = mock(ElementValueLoader.class); final LazyEntity lazyEntity = new LazyEntity(entity, entityLoader); // When final String groupResult = lazyEntity.getGroup(); // Then assertEquals(group, groupResult); }
@Test public void shouldNotLoadIdentifierWhenLoaded() { // Given final Entity entity = new Entity("group"); final ElementValueLoader entityLoader = mock(ElementValueLoader.class); final LazyEntity lazyEntity = new LazyEntity(entity, entityLoader); final IdentifierType identifierType = IdentifierType.VERTEX; final String exceptedIdentifierValue = "identifier value"; lazyEntity.setVertex(exceptedIdentifierValue); // When - should use the loaded value Object identifierValue = lazyEntity.getIdentifier(identifierType); Object identifierValue2 = lazyEntity.getIdentifier(identifierType); // Then assertEquals(exceptedIdentifierValue, identifierValue); assertEquals(exceptedIdentifierValue, identifierValue2); assertEquals(exceptedIdentifierValue, entity.getVertex()); verify(entityLoader, never()).loadIdentifiers(entity); }
@Test public void shouldLoadPropertyFromLoader() { // Given final Entity entity = new Entity("group"); final ElementValueLoader entityLoader = mock(ElementValueLoader.class); final LazyEntity lazyEntity = new LazyEntity(entity, entityLoader); final String propertyName = "property name"; final String exceptedPropertyValue = "property value"; given(entityLoader.getProperty(propertyName, lazyEntity.getProperties())).willReturn(exceptedPropertyValue); // When Object propertyValue = lazyEntity.getProperty(propertyName); // Then assertEquals(exceptedPropertyValue, propertyValue); }
@Test public void shouldDelegateSetIdentifierToEntity() { // Given final Entity entity = new Entity("group"); final ElementValueLoader entityLoader = mock(ElementValueLoader.class); final LazyEntity lazyEntity = new LazyEntity(entity, entityLoader); final String vertex = "vertex"; // When lazyEntity.setVertex(vertex); // Then verify(entityLoader, never()).loadIdentifiers(entity); assertEquals(vertex, entity.getVertex()); }
@Test public void shouldGetLazyProperties() { // Given final Entity entity = new Entity("group"); final ElementValueLoader entityLoader = mock(ElementValueLoader.class); final LazyEntity lazyEntity = new LazyEntity(entity, entityLoader); // When final LazyProperties result = lazyEntity.getProperties(); // Then assertNotNull(result); assertNotSame(entity.getProperties(), result); }
@Test public void shouldLoadIdentifierWhenNotLoaded() { // Given final Entity entity = mock(Entity.class); given(entity.getProperties()).willReturn(mock(Properties.class)); final ElementValueLoader entityLoader = mock(ElementValueLoader.class); final LazyEntity lazyEntity = new LazyEntity(entity, entityLoader); final IdentifierType identifierType = IdentifierType.VERTEX; final String exceptedIdentifierValue = "identifier value"; given(entity.getVertex()).willReturn(exceptedIdentifierValue); // When Object identifierValue = lazyEntity.getIdentifier(identifierType); // Then assertEquals(exceptedIdentifierValue, identifierValue); assertEquals(identifierValue, entity.getVertex()); verify(entityLoader).loadIdentifiers(entity); }
@Override public boolean accept(final Key key, final Value value) { final String group = elementConverter.getGroupFromColumnFamily(key.getColumnFamilyData().getBackingArray()); if (groupsWithoutFilters.contains(group)) { return true; } final Element element; if (schema.isEntity(group)) { element = new LazyEntity(new Entity(group), new AccumuloEntityValueLoader(group, key, value, elementConverter, schema)); } else { element = new LazyEdge(new Edge(group, null, null, false), new AccumuloEdgeValueLoader(group, key, value, elementConverter, schema, true)); } return elementPredicate.test(element); }
@Override public Object getVertex() { loadIdentifiers(); return entity.getVertex(); }
@Override public Object getVertex() { loadIdentifiers(); return entity.getVertex(); }