@Test
public void testApplyForIncrementalBatchChangesBuild() {
when(localModule.getModule()).thenReturn(project);
when(buildConfig.getBuildType()).thenReturn(LocalBuildConfig.BuildType.INCREMENTAL_BATCH_CHANGES.name());
Map<String, String> resourceChanges = new HashMap<>();
resourceChanges.put(LocalBuildConfig.RESOURCE_CHANGE + RESOURCE_URI_1,
"ADD");
resourceChanges.put(LocalBuildConfig.RESOURCE_CHANGE + RESOURCE_URI_2,
"ADD,UPDATE");
resourceChanges.put(LocalBuildConfig.RESOURCE_CHANGE + RESOURCE_URI_3,
"ADD,UPDATE,DELETE");
when(buildConfig.getResourceChanges()).thenReturn(resourceChanges);
Optional<BuildConfig> result = executor.apply(localModule,
buildConfig);
assertTrue(result.isPresent());
assertEquals(LocalBuildConfig.BuildType.INCREMENTAL_BATCH_CHANGES,
((LocalBuildConfigInternal) result.get()).getBuildType());
assertHasAllChanges(((LocalBuildConfigInternal) result.get()).getResourceChanges().get(resource1VFSPath),
ResourceChangeType.ADD);
assertHasAllChanges(((LocalBuildConfigInternal) result.get()).getResourceChanges().get(resource2VFSPath),
ResourceChangeType.ADD,
ResourceChangeType.UPDATE);
assertHasAllChanges(((LocalBuildConfigInternal) result.get()).getResourceChanges().get(resource3VFSPath),
ResourceChangeType.ADD,
ResourceChangeType.UPDATE,
ResourceChangeType.DELETE);
}