### Question:
ClassPropertyDefinition extends PropertyDefinition<String> { private static Class<?> loadClass(String className, boolean initialize) throws ClassNotFoundException, LinkageError { return Class.forName(className, initialize, ClassLoaderProvider .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); static boolean isAllowClassValidation(); static void setAllowClassValidation(boolean value); @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 = "testLoadClassData") public <T> void testLoadClass(String interfaceName, String loadClassName, Class<T> instanceOfClass, Class expectedClass) { ClassPropertyDefinition.Builder localBuilder = ClassPropertyDefinition.createBuilder( RootCfgDefn.getInstance(), "test-property"); localBuilder.addInstanceOf(interfaceName); ClassPropertyDefinition cpd = localBuilder.getInstance(); Class clazz = cpd.loadClass(loadClassName, instanceOfClass); assertEquals(clazz, expectedClass); }