### Question:
DurationPropertyDefinition extends PropertyDefinition<Long> { public long getLowerLimit() { return lowerLimit; } private  DurationPropertyDefinition(AbstractManagedObjectDefinition<?, ?> d, String propertyName,
        EnumSet<PropertyOption> options, AdministratorAction adminAction,
        DefaultBehaviorProvider<Long> defaultBehavior, DurationUnit baseUnit, DurationUnit maximumUnit,
        Long lowerLimit, Long upperLimit, boolean allowUnlimited); static Builder createBuilder(AbstractManagedObjectDefinition<?, ?> d, String propertyName); DurationUnit getBaseUnit(); DurationUnit getMaximumUnit(); long getLowerLimit(); Long getUpperLimit(); boolean isAllowUnlimited(); @Override void validateValue(Long value); @Override String encodeValue(Long value); @Override Long decodeValue(String value); @Override R accept(PropertyDefinitionVisitor<R, P> v, P p); @Override R accept(PropertyValueVisitor<R, P> v, Long value, P p); @Override void toString(StringBuilder builder); @Override int compare(Long o1, Long o2);  }### Answer:
@Test(dataProvider = "longLimitData") public void testLowerLimitWithLong(long lowerLimit, long expectedValue) { DurationPropertyDefinition.Builder builder = createTestBuilder(); builder.setLowerLimit(lowerLimit); DurationPropertyDefinition def = buildTestDefinition(builder); assertEquals(def.getLowerLimit(), expectedValue); }
@Test(dataProvider = "stringLimitData") public void testLowerLimitWithString(String unit, String limitValue, long expected) { DurationPropertyDefinition.Builder builder = createTestBuilder(); builder.setBaseUnit(DurationUnit.getUnit(unit)); builder.setLowerLimit(limitValue); DurationPropertyDefinition def = buildTestDefinition(builder); assertEquals(def.getLowerLimit(), expected); }