### Question:
ClassPropertyDefinition extends PropertyDefinition<String> { private static Class<?> loadClass(String className, boolean initialize) throws ClassNotFoundException { return Class.forName(className, initialize, ConfigurationFramework.getInstance().getClassLoader()); } private  ClassPropertyDefinition(AbstractManagedObjectDefinition<?, ?> d, String propertyName,
        EnumSet<PropertyOption> options, AdministratorAction adminAction,
        DefaultBehaviorProvider<String> defaultBehavior, List<String> instanceOfInterfaces); static Builder createBuilder(AbstractManagedObjectDefinition<?, ?> d, String propertyName); @Override R accept(PropertyDefinitionVisitor<R, P> v, P p); @Override R accept(PropertyValueVisitor<R, P> v, String value, P p); @Override String decodeValue(String value); List<String> getInstanceOfInterface(); Class<? extends T> loadClass(String className, Class<T> instanceOf); @Override String normalizeValue(String value); @Override void validateValue(String value);  }### Answer:
@Test(dataProvider = "loadClasses") public <T> void testLoadClass(String interfaceName, String loadClassName, Class<T> instanceOfClass, Class<?> expectedClass) { ClassPropertyDefinition.Builder localBuilder = createBuilder(RootCfgDefn.getInstance(), "test-property"); localBuilder.addInstanceOf(interfaceName); ClassPropertyDefinition propertyDef = localBuilder.getInstance(); Class<?> clazz = propertyDef.loadClass(loadClassName, instanceOfClass); assertEquals(clazz, expectedClass); }