/** Verify {@link BaseProjectProperty#getValue()} method. */ @Test public void testGetValue() { Integer propertyValue = 10; property.setValue(propertyValue); // if value is not null - return it assertEquals(propertyValue, property.getValue()); property.setValue(null); assertNull(property.getValue()); BaseProjectProperty parentProperty = new BaseProjectProperty(parent); parentProperty.setKey(propertyKey); parentProperty.setValue(propertyValue); parent.putProjectProperty(propertyKey, parentProperty); project.setCascadingProject(parent); property = new BaseProjectProperty(project); property.setKey(propertyKey); // if current value is null and is not overridden value, take from cascading assertNull(property.getOriginalValue()); assertEquals(propertyValue, property.getValue()); property.setOverridden(true); // Property is overridden - return current value even if it is null. assertNull(property.getOriginalValue()); assertNull(property.getValue()); }
/** Verify {@link BaseProjectProperty#setValue(Object)} method. */ @Test public void testSetValue() { BaseProjectProperty property = new BaseProjectProperty(project); property.setKey(propertyKey); property.setValue(null); // If project doesn't have cascading - default boolean value is used for propertyOverridden flag assertFalse(property.isOverridden()); assertNull(property.getOriginalValue()); Object value = 12345; property.setValue(value); // If project doesn't have cascading - default boolean value is used for propertyOverridden flag assertFalse(property.isOverridden()); assertEquals(value, property.getOriginalValue()); String parentValue = "equalValue"; BaseProjectProperty parentProperty = new BaseProjectProperty(parent); parentProperty.setKey(propertyKey); parentProperty.setValue(parentValue); parent.putProjectProperty(propertyKey, parentProperty); project.setCascadingProject(parent); // If value set to null, need to check whether default value is equals to cascading property.setValue(null); assertTrue(property.isOverridden()); String overriddenValue = "newValue"; property.setValue(overriddenValue); assertTrue(property.isOverridden()); // Check whether current value is not null, after setting equal-to-cascading value current will // be null assertNotNull(property.getOriginalValue()); assertTrue(property.isOverridden()); property.setValue(parentValue); // Reset current property to null assertNull(property.getOriginalValue()); // Cascading value is equal to current - reset flag to false. assertFalse(property.isOverridden()); }
/** Verify {@link BaseProjectProperty#getCascadingValue()} method. */ @Test public void testGetCascadingValue() { String parentValue = "parentValue"; // If project doesn't have cascading project - default value is used as cascading value. assertEquals(property.getDefaultValue(), property.getCascadingValue()); project.setCascadingProject(parent); property = new BaseProjectProperty(project); property.setKey(propertyKey); // If project has cascading project and cascading value is not set - default value is used. assertEquals(property.getDefaultValue(), property.getCascadingValue()); BaseProjectProperty parentProperty = new BaseProjectProperty(parent); parentProperty.setKey(propertyKey); parentProperty.setValue(parentValue); parent.putProjectProperty(propertyKey, parentProperty); project.setCascadingProject(parent); property = new BaseProjectProperty(project); property.setKey(propertyKey); property.setValue(parentValue); // If project has cascading project and cascading value is set - property value will be used. assertEquals(parentProperty.getOriginalValue(), property.getCascadingValue()); }