@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 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 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); }