/** * Create an instance of configuration * @param classesToMock classes that should be modified by {@link MockClassLoader}. * @param packagesToDefer classes/packages that should be deferred to system class loader. */ public MockClassLoaderConfiguration(String[] classesToMock, String[] packagesToDefer) { deferPackages = getPackagesToDefer(packagesToDefer); addClassesToModify(classesToMock); }
private void updateClassLoaderConfiguration(MockClassLoaderConfiguration configuration) { MockPolicyClassLoadingSettings classLoadingSettings = getClassLoadingSettings(); String[] fullyQualifiedNamesOfClassesToLoadByMockClassloader = classLoadingSettings.getFullyQualifiedNamesOfClassesToLoadByMockClassloader(); configuration.addClassesToModify(fullyQualifiedNamesOfClassesToLoadByMockClassloader); if (testClass == null) { throw new IllegalStateException("Internal error: testClass should never be null when calling initialize on a mock policy"); } configuration.addClassesToModify(testClass.getName()); Class<?>[] classes = testClass.getDeclaredClasses(); for (Class<?> clazz : classes) { configuration.addClassesToModify(clazz.getName()); } Class<?>[] declaredClasses = testClass.getClasses(); for (Class<?> clazz : declaredClasses) { configuration.addClassesToModify(clazz.getName()); } for (String string : classLoadingSettings.getStaticInitializersToSuppress()) { configuration.addClassesToModify(string); MockRepository.addSuppressStaticInitializer(string); } }