Merge pull request #44 from brendandouglas/master
Import of bazel plugin using copybara
diff --git a/aswb/2.3/tests/integrationtests/com/google/idea/blaze/android/sync/model/idea/BlazeClassJarProviderIntegrationTest.java b/aswb/2.3/tests/integrationtests/com/google/idea/blaze/android/sync/model/idea/BlazeClassJarProviderIntegrationTest.java
index 05f1ccf..0be0dc0 100644
--- a/aswb/2.3/tests/integrationtests/com/google/idea/blaze/android/sync/model/idea/BlazeClassJarProviderIntegrationTest.java
+++ b/aswb/2.3/tests/integrationtests/com/google/idea/blaze/android/sync/model/idea/BlazeClassJarProviderIntegrationTest.java
@@ -33,8 +33,11 @@
import com.google.idea.blaze.base.ideinfo.TargetMap;
import com.google.idea.blaze.base.ideinfo.TargetMapBuilder;
import com.google.idea.blaze.base.model.BlazeProjectData;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataBuilder;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataManager;
import com.google.idea.blaze.base.model.primitives.Kind;
import com.google.idea.blaze.base.model.primitives.Label;
+import com.google.idea.blaze.base.sync.data.BlazeProjectDataManager;
import com.google.idea.blaze.base.sync.workspace.ArtifactLocationDecoder;
import com.intellij.facet.FacetManager;
import com.intellij.facet.ModifiableFacetModel;
@@ -66,9 +69,13 @@
ArtifactLocationDecoder decoder =
(location) -> new File("/src", location.getExecutionRootRelativePath());
- mockBlazeProjectDataManager(
- new BlazeProjectData(
- 0L, buildTargetMap(), null, null, null, null, decoder, null, null, null));
+ BlazeProjectData blazeProjectData =
+ MockBlazeProjectDataBuilder.builder(workspaceRoot)
+ .setTargetMap(buildTargetMap())
+ .setArtifactLocationDecoder(decoder)
+ .build();
+ registerProjectService(
+ BlazeProjectDataManager.class, new MockBlazeProjectDataManager(blazeProjectData));
classJarProvider = new BlazeClassJarProvider(getProject());
}
diff --git a/aswb/2.3/tests/unittests/com/google/idea/blaze/android/project/BlazeBuildSystemServiceTest.java b/aswb/2.3/tests/unittests/com/google/idea/blaze/android/project/BlazeBuildSystemServiceTest.java
index 72541b3..9075d66 100755
--- a/aswb/2.3/tests/unittests/com/google/idea/blaze/android/project/BlazeBuildSystemServiceTest.java
+++ b/aswb/2.3/tests/unittests/com/google/idea/blaze/android/project/BlazeBuildSystemServiceTest.java
@@ -35,7 +35,10 @@
import com.google.idea.blaze.base.ideinfo.TargetMapBuilder;
import com.google.idea.blaze.base.lang.buildfile.references.BuildReferenceManager;
import com.google.idea.blaze.base.model.BlazeProjectData;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataBuilder;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataManager;
import com.google.idea.blaze.base.model.primitives.Label;
+import com.google.idea.blaze.base.model.primitives.WorkspaceRoot;
import com.google.idea.blaze.base.projectview.ProjectViewManager;
import com.google.idea.blaze.base.projectview.ProjectViewSet;
import com.google.idea.blaze.base.scope.BlazeContext;
@@ -43,7 +46,6 @@
import com.google.idea.blaze.base.settings.BlazeImportSettings;
import com.google.idea.blaze.base.settings.BlazeImportSettingsManager;
import com.google.idea.blaze.base.sync.BlazeSyncManager;
-import com.google.idea.blaze.base.sync.BlazeSyncPlugin.ModuleEditor;
import com.google.idea.blaze.base.sync.data.BlazeProjectDataManager;
import com.google.idea.blaze.base.sync.workspace.ArtifactLocationDecoder;
import com.google.idea.blaze.base.sync.workspace.WorkspacePathResolver;
@@ -71,6 +73,7 @@
/** Test cases for {@link BlazeBuildSystemService}. */
@RunWith(JUnit4.class)
public class BlazeBuildSystemServiceTest extends BlazeTestCase {
+ WorkspaceRoot workspaceRoot = new WorkspaceRoot(new File("/"));
Module module;
BuildSystemService service;
@@ -164,18 +167,20 @@
projectServices.register(BlazeImportSettingsManager.class, importSettingsManager);
}
- private static void createMocksForBuildProject(Container applicationServices) {
+ private void createMocksForBuildProject(Container applicationServices) {
applicationServices.register(BlazeBuildService.class, mock(BlazeBuildService.class));
}
- private static void createMocksForSyncProject(Container projectServices) {
+ private void createMocksForSyncProject(Container projectServices) {
projectServices.register(ProjectViewManager.class, new MockProjectViewManager());
projectServices.register(BlazeSyncManager.class, mock(BlazeSyncManager.class));
}
private void createMocksForAddDependency(
Container applicationServices, Container projectServices) {
- projectServices.register(BlazeProjectDataManager.class, new MockProjectDataManager());
+ projectServices.register(
+ BlazeProjectDataManager.class,
+ new MockBlazeProjectDataManager(createMockBlazeProjectData()));
projectServices.register(FileEditorManager.class, mock(FileEditorManager.class));
projectServices.register(BuildReferenceManager.class, mock(BuildReferenceManager.class));
projectServices.register(LazyRangeMarkerFactory.class, mock(LazyRangeMarkerFactoryImpl.class));
@@ -189,6 +194,22 @@
projectServices.register(AndroidResourceModuleRegistry.class, moduleRegistry);
}
+ private BlazeProjectData createMockBlazeProjectData() {
+ TargetMap targetMap =
+ TargetMapBuilder.builder()
+ .addTarget(
+ TargetIdeInfo.builder()
+ .setLabel(new Label("//foo:bar"))
+ .setBuildFile(ArtifactLocation.builder().setRelativePath("foo/BUILD").build())
+ .build())
+ .build();
+ ArtifactLocationDecoder decoder = (location) -> new File("/", location.getRelativePath());
+ return MockBlazeProjectDataBuilder.builder(workspaceRoot)
+ .setTargetMap(targetMap)
+ .setArtifactLocationDecoder(decoder)
+ .build();
+ }
+
private static class MockProjectViewManager extends ProjectViewManager {
private ProjectViewSet viewSet;
@@ -210,36 +231,6 @@
}
}
- private static class MockProjectDataManager implements BlazeProjectDataManager {
- private BlazeProjectData projectData;
-
- public MockProjectDataManager() {
- TargetMap targetMap =
- TargetMapBuilder.builder()
- .addTarget(
- TargetIdeInfo.builder()
- .setLabel(new Label("//foo:bar"))
- .setBuildFile(ArtifactLocation.builder().setRelativePath("foo/BUILD").build())
- .build())
- .build();
- ArtifactLocationDecoder decoder = (location) -> new File("/", location.getRelativePath());
-
- projectData =
- new BlazeProjectData(0L, targetMap, null, null, null, null, decoder, null, null, null);
- }
-
- @Nullable
- @Override
- public BlazeProjectData getBlazeProjectData() {
- return projectData;
- }
-
- @Override
- public ModuleEditor editModules() {
- return null;
- }
- }
-
private static class MockFileSystem extends TempFileSystem {
private Map<String, VirtualFile> files;
diff --git a/aswb/2.3/tests/unittests/com/google/idea/blaze/android/project/BlazeFeatureEnabledServiceTest.java b/aswb/2.3/tests/unittests/com/google/idea/blaze/android/project/BlazeFeatureEnabledServiceTest.java
index e4fe775..efd77ea 100644
--- a/aswb/2.3/tests/unittests/com/google/idea/blaze/android/project/BlazeFeatureEnabledServiceTest.java
+++ b/aswb/2.3/tests/unittests/com/google/idea/blaze/android/project/BlazeFeatureEnabledServiceTest.java
@@ -28,7 +28,6 @@
import com.google.idea.blaze.base.settings.BlazeImportSettings;
import com.google.idea.blaze.base.settings.BlazeImportSettingsManager;
import com.google.idea.blaze.base.settings.BlazeImportSettingsManagerLegacy;
-import com.google.idea.blaze.base.sync.BlazeSyncPlugin.ModuleEditor;
import com.google.idea.blaze.base.sync.data.BlazeProjectDataManager;
import com.google.idea.common.experiments.ExperimentService;
import com.intellij.openapi.extensions.ExtensionPoint;
@@ -116,11 +115,6 @@
public BlazeProjectData getBlazeProjectData() {
return blazeProjectData;
}
-
- @Override
- public ModuleEditor editModules() {
- return null;
- }
}
private static class MockExperimentService implements ExperimentService {
diff --git a/aswb/2.3/tests/unittests/com/google/idea/blaze/android/rendering/BlazeRenderErrorContributorTest.java b/aswb/2.3/tests/unittests/com/google/idea/blaze/android/rendering/BlazeRenderErrorContributorTest.java
index 5bbeec6..ffe8267 100644
--- a/aswb/2.3/tests/unittests/com/google/idea/blaze/android/rendering/BlazeRenderErrorContributorTest.java
+++ b/aswb/2.3/tests/unittests/com/google/idea/blaze/android/rendering/BlazeRenderErrorContributorTest.java
@@ -38,12 +38,13 @@
import com.google.idea.blaze.base.ideinfo.TargetMapBuilder;
import com.google.idea.blaze.base.lang.buildfile.references.BuildReferenceManager;
import com.google.idea.blaze.base.model.BlazeProjectData;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataBuilder;
import com.google.idea.blaze.base.model.primitives.Label;
+import com.google.idea.blaze.base.model.primitives.WorkspaceRoot;
import com.google.idea.blaze.base.settings.Blaze.BuildSystem;
import com.google.idea.blaze.base.settings.BlazeImportSettings;
import com.google.idea.blaze.base.settings.BlazeImportSettingsManager;
import com.google.idea.blaze.base.settings.BlazeImportSettingsManagerLegacy;
-import com.google.idea.blaze.base.sync.BlazeSyncPlugin.ModuleEditor;
import com.google.idea.blaze.base.sync.data.BlazeProjectDataManager;
import com.google.idea.blaze.base.sync.workspace.ArtifactLocationDecoder;
import com.google.idea.blaze.base.targetmaps.SourceToTargetMap;
@@ -86,6 +87,7 @@
private static final String NON_STANDARD_MANIFEST_NAME_ERROR = "Non-standard manifest name";
private static final String MISSING_CLASS_DEPENDENCIES_ERROR = "Missing class dependencies";
+ private static final WorkspaceRoot workspaceRoot = new WorkspaceRoot(new File("/"));
private Module module;
private MockBlazeProjectDataManager projectDataManager;
private BlazeRenderErrorContributor.BlazeProvider provider;
@@ -687,7 +689,10 @@
ArtifactLocationDecoder decoder =
(location) -> new File("/src", location.getExecutionRootRelativePath());
this.blazeProjectData =
- new BlazeProjectData(0L, targetMap, null, null, null, null, decoder, null, null, null);
+ MockBlazeProjectDataBuilder.builder(workspaceRoot)
+ .setTargetMap(targetMap)
+ .setArtifactLocationDecoder(decoder)
+ .build();
}
@Nullable
@@ -695,11 +700,6 @@
public BlazeProjectData getBlazeProjectData() {
return blazeProjectData;
}
-
- @Override
- public ModuleEditor editModules() {
- return null;
- }
}
private static class MockBuildReferenceManager extends BuildReferenceManager {
diff --git a/aswb/src/com/google/idea/blaze/android/sync/projectstructure/BlazeAndroidProjectStructureSyncer.java b/aswb/src/com/google/idea/blaze/android/sync/projectstructure/BlazeAndroidProjectStructureSyncer.java
index cd5ff8f..1b55ff1 100644
--- a/aswb/src/com/google/idea/blaze/android/sync/projectstructure/BlazeAndroidProjectStructureSyncer.java
+++ b/aswb/src/com/google/idea/blaze/android/sync/projectstructure/BlazeAndroidProjectStructureSyncer.java
@@ -45,8 +45,10 @@
import com.google.idea.blaze.base.projectview.section.sections.TargetSection;
import com.google.idea.blaze.base.scope.BlazeContext;
import com.google.idea.blaze.base.scope.output.PrintOutput;
+import com.google.idea.blaze.base.settings.BlazeImportSettingsManager;
import com.google.idea.blaze.base.sync.BlazeSyncPlugin;
import com.google.idea.blaze.base.sync.data.BlazeProjectDataManager;
+import com.google.idea.blaze.base.sync.projectstructure.ModuleEditorProvider;
import com.google.idea.blaze.base.sync.workspace.ArtifactLocationDecoder;
import com.intellij.execution.RunManager;
import com.intellij.execution.configurations.RunConfiguration;
@@ -240,7 +242,9 @@
}
BlazeSyncPlugin.ModuleEditor moduleEditor =
- BlazeProjectDataManager.getInstance(project).editModules();
+ ModuleEditorProvider.getInstance()
+ .getModuleEditor(
+ project, BlazeImportSettingsManager.getInstance(project).getImportSettings());
Module newModule = moduleEditor.createModule(moduleName, StdModuleTypes.JAVA);
ApplicationManager.getApplication()
.runWriteAction(
diff --git a/base/src/com/google/idea/blaze/base/model/BlazeProjectData.java b/base/src/com/google/idea/blaze/base/model/BlazeProjectData.java
index 4a401c8..77862fd 100644
--- a/base/src/com/google/idea/blaze/base/model/BlazeProjectData.java
+++ b/base/src/com/google/idea/blaze/base/model/BlazeProjectData.java
@@ -52,7 +52,8 @@
ArtifactLocationDecoder artifactLocationDecoder,
WorkspaceLanguageSettings workspaceLanguageSettings,
SyncState syncState,
- ImmutableMultimap<TargetKey, TargetKey> reverseDependencies) {
+ ImmutableMultimap<TargetKey, TargetKey> reverseDependencies,
+ Object dummy) {
this.syncTime = syncTime;
this.targetMap = targetMap;
this.blazeInfo = blazeInfo;
diff --git a/base/src/com/google/idea/blaze/base/sync/BlazeSyncTask.java b/base/src/com/google/idea/blaze/base/sync/BlazeSyncTask.java
index 1fb59c9..db199e3 100644
--- a/base/src/com/google/idea/blaze/base/sync/BlazeSyncTask.java
+++ b/base/src/com/google/idea/blaze/base/sync/BlazeSyncTask.java
@@ -392,7 +392,8 @@
artifactLocationDecoder,
workspaceLanguageSettings,
syncStateBuilder.build(),
- reverseDependencies);
+ reverseDependencies,
+ null);
FileCaches.onSync(project, context, projectViewSet, newBlazeProjectData, syncMode);
ListenableFuture<?> prefetch =
diff --git a/base/src/com/google/idea/blaze/base/sync/data/BlazeProjectDataManager.java b/base/src/com/google/idea/blaze/base/sync/data/BlazeProjectDataManager.java
index f92cf85..4109a1f 100644
--- a/base/src/com/google/idea/blaze/base/sync/data/BlazeProjectDataManager.java
+++ b/base/src/com/google/idea/blaze/base/sync/data/BlazeProjectDataManager.java
@@ -16,7 +16,6 @@
package com.google.idea.blaze.base.sync.data;
import com.google.idea.blaze.base.model.BlazeProjectData;
-import com.google.idea.blaze.base.sync.BlazeSyncPlugin;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
import javax.annotation.Nullable;
@@ -29,6 +28,4 @@
@Nullable
BlazeProjectData getBlazeProjectData();
-
- BlazeSyncPlugin.ModuleEditor editModules();
}
diff --git a/base/src/com/google/idea/blaze/base/sync/data/BlazeProjectDataManagerImpl.java b/base/src/com/google/idea/blaze/base/sync/data/BlazeProjectDataManagerImpl.java
index 821109d..754e60f 100644
--- a/base/src/com/google/idea/blaze/base/sync/data/BlazeProjectDataManagerImpl.java
+++ b/base/src/com/google/idea/blaze/base/sync/data/BlazeProjectDataManagerImpl.java
@@ -21,9 +21,7 @@
import com.google.idea.blaze.base.scope.BlazeContext;
import com.google.idea.blaze.base.scope.output.StatusOutput;
import com.google.idea.blaze.base.settings.BlazeImportSettings;
-import com.google.idea.blaze.base.settings.BlazeImportSettingsManager;
import com.google.idea.blaze.base.sync.BlazeSyncPlugin;
-import com.google.idea.blaze.base.sync.projectstructure.ModuleEditorProvider;
import com.google.idea.blaze.base.util.SerializationUtil;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.progress.ProgressIndicator;
@@ -71,13 +69,6 @@
return blazeProjectData;
}
- @Override
- public BlazeSyncPlugin.ModuleEditor editModules() {
- return ModuleEditorProvider.getInstance()
- .getModuleEditor(
- project, BlazeImportSettingsManager.getInstance(project).getImportSettings());
- }
-
@Nullable
private synchronized BlazeProjectData loadProject(
BlazeContext context, BlazeImportSettings importSettings) {
diff --git a/base/tests/integrationtests/com/google/idea/blaze/base/lang/projectview/ProjectViewIntegrationTestCase.java b/base/tests/integrationtests/com/google/idea/blaze/base/lang/projectview/ProjectViewIntegrationTestCase.java
index 960660e..63b36c6 100644
--- a/base/tests/integrationtests/com/google/idea/blaze/base/lang/projectview/ProjectViewIntegrationTestCase.java
+++ b/base/tests/integrationtests/com/google/idea/blaze/base/lang/projectview/ProjectViewIntegrationTestCase.java
@@ -15,20 +15,11 @@
*/
package com.google.idea.blaze.base.lang.projectview;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
import com.google.idea.blaze.base.BlazeIntegrationTestCase;
import com.google.idea.blaze.base.EditorTestHelper;
-import com.google.idea.blaze.base.ideinfo.TargetMap;
-import com.google.idea.blaze.base.model.BlazeProjectData;
-import com.google.idea.blaze.base.model.BlazeVersionData;
-import com.google.idea.blaze.base.model.SyncState;
-import com.google.idea.blaze.base.model.primitives.ExecutionRootPath;
-import com.google.idea.blaze.base.sync.workspace.ArtifactLocationDecoder;
-import com.google.idea.blaze.base.sync.workspace.ArtifactLocationDecoderImpl;
-import com.google.idea.blaze.base.sync.workspace.BlazeRoots;
-import com.google.idea.blaze.base.sync.workspace.WorkspacePathResolver;
-import com.google.idea.blaze.base.sync.workspace.WorkspacePathResolverImpl;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataBuilder;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataManager;
+import com.google.idea.blaze.base.sync.data.BlazeProjectDataManager;
import org.junit.Before;
/** Project view file specific integration test base */
@@ -37,32 +28,9 @@
@Before
public final void doSetup() {
- mockBlazeProjectDataManager(getMockBlazeProjectData());
+ BlazeProjectDataManager mockProjectDataManager =
+ new MockBlazeProjectDataManager(MockBlazeProjectDataBuilder.builder(workspaceRoot).build());
+ registerProjectService(BlazeProjectDataManager.class, mockProjectDataManager);
editorTest = new EditorTestHelper(getProject(), testFixture);
}
-
- private BlazeProjectData getMockBlazeProjectData() {
- BlazeRoots fakeRoots =
- new BlazeRoots(
- null,
- ImmutableList.of(workspaceRoot.directory()),
- new ExecutionRootPath("out/crosstool/bin"),
- new ExecutionRootPath("out/crosstool/gen"),
- null);
- WorkspacePathResolver workspacePathResolver =
- new WorkspacePathResolverImpl(workspaceRoot, fakeRoots);
- ArtifactLocationDecoder artifactLocationDecoder =
- new ArtifactLocationDecoderImpl(fakeRoots, workspacePathResolver);
- return new BlazeProjectData(
- 0,
- new TargetMap(ImmutableMap.of()),
- ImmutableMap.of(),
- fakeRoots,
- new BlazeVersionData(),
- workspacePathResolver,
- artifactLocationDecoder,
- null,
- new SyncState.Builder().build(),
- null);
- }
}
diff --git a/base/tests/integrationtests/com/google/idea/blaze/base/run/BlazeCommandRunConfigurationGenericHandlerIntegrationTest.java b/base/tests/integrationtests/com/google/idea/blaze/base/run/BlazeCommandRunConfigurationGenericHandlerIntegrationTest.java
index eb8d69f..b6b1c80 100644
--- a/base/tests/integrationtests/com/google/idea/blaze/base/run/BlazeCommandRunConfigurationGenericHandlerIntegrationTest.java
+++ b/base/tests/integrationtests/com/google/idea/blaze/base/run/BlazeCommandRunConfigurationGenericHandlerIntegrationTest.java
@@ -18,22 +18,15 @@
import static com.google.common.truth.Truth.assertThat;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
import com.google.idea.blaze.base.BlazeIntegrationTestCase;
import com.google.idea.blaze.base.command.BlazeCommandName;
-import com.google.idea.blaze.base.ideinfo.TargetMap;
-import com.google.idea.blaze.base.model.BlazeProjectData;
-import com.google.idea.blaze.base.model.BlazeVersionData;
-import com.google.idea.blaze.base.model.primitives.ExecutionRootPath;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataBuilder;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataManager;
import com.google.idea.blaze.base.model.primitives.TargetExpression;
import com.google.idea.blaze.base.run.BlazeCommandRunConfiguration.BlazeCommandRunConfigurationSettingsEditor;
import com.google.idea.blaze.base.run.confighandler.BlazeCommandGenericRunConfigurationHandler;
import com.google.idea.blaze.base.run.state.BlazeCommandRunConfigurationCommonState;
-import com.google.idea.blaze.base.sync.workspace.ArtifactLocationDecoder;
-import com.google.idea.blaze.base.sync.workspace.ArtifactLocationDecoderImpl;
-import com.google.idea.blaze.base.sync.workspace.BlazeRoots;
-import com.google.idea.blaze.base.sync.workspace.WorkspacePathResolver;
-import com.google.idea.blaze.base.sync.workspace.WorkspacePathResolverImpl;
+import com.google.idea.blaze.base.sync.data.BlazeProjectDataManager;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.util.Disposer;
import org.jdom.Element;
@@ -57,36 +50,13 @@
@Before
public final void doSetup() throws Exception {
// Without BlazeProjectData, the configuration editor is always disabled.
- mockBlazeProjectDataManager(getMockBlazeProjectData());
+ BlazeProjectDataManager mockProjectDataManager =
+ new MockBlazeProjectDataManager(MockBlazeProjectDataBuilder.builder(workspaceRoot).build());
+ registerProjectService(BlazeProjectDataManager.class, mockProjectDataManager);
type = BlazeCommandRunConfigurationType.getInstance();
configuration = type.getFactory().createTemplateConfiguration(getProject());
}
- private BlazeProjectData getMockBlazeProjectData() {
- BlazeRoots fakeRoots =
- new BlazeRoots(
- null,
- ImmutableList.of(workspaceRoot.directory()),
- new ExecutionRootPath("out/crosstool/bin"),
- new ExecutionRootPath("out/crosstool/gen"),
- null);
- WorkspacePathResolver workspacePathResolver =
- new WorkspacePathResolverImpl(workspaceRoot, fakeRoots);
- ArtifactLocationDecoder artifactLocationDecoder =
- new ArtifactLocationDecoderImpl(fakeRoots, workspacePathResolver);
- return new BlazeProjectData(
- 0,
- new TargetMap(ImmutableMap.of()),
- ImmutableMap.of(),
- fakeRoots,
- new BlazeVersionData(),
- workspacePathResolver,
- artifactLocationDecoder,
- null,
- null,
- null);
- }
-
@Test
public void testNewConfigurationHasGenericHandler() {
assertThat(configuration.getHandler())
diff --git a/base/tests/integrationtests/com/google/idea/blaze/base/run/BlazeCommandRunConfigurationRunManagerImplTest.java b/base/tests/integrationtests/com/google/idea/blaze/base/run/BlazeCommandRunConfigurationRunManagerImplTest.java
index 237fa7f..d1e3b7f 100644
--- a/base/tests/integrationtests/com/google/idea/blaze/base/run/BlazeCommandRunConfigurationRunManagerImplTest.java
+++ b/base/tests/integrationtests/com/google/idea/blaze/base/run/BlazeCommandRunConfigurationRunManagerImplTest.java
@@ -18,20 +18,12 @@
import static com.google.common.truth.Truth.assertThat;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
import com.google.idea.blaze.base.BlazeIntegrationTestCase;
-import com.google.idea.blaze.base.ideinfo.TargetMap;
-import com.google.idea.blaze.base.model.BlazeProjectData;
-import com.google.idea.blaze.base.model.BlazeVersionData;
-import com.google.idea.blaze.base.model.primitives.ExecutionRootPath;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataBuilder;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataManager;
import com.google.idea.blaze.base.model.primitives.Label;
import com.google.idea.blaze.base.run.BlazeCommandRunConfiguration.BlazeCommandRunConfigurationSettingsEditor;
-import com.google.idea.blaze.base.sync.workspace.ArtifactLocationDecoder;
-import com.google.idea.blaze.base.sync.workspace.ArtifactLocationDecoderImpl;
-import com.google.idea.blaze.base.sync.workspace.BlazeRoots;
-import com.google.idea.blaze.base.sync.workspace.WorkspacePathResolver;
-import com.google.idea.blaze.base.sync.workspace.WorkspacePathResolverImpl;
+import com.google.idea.blaze.base.sync.data.BlazeProjectDataManager;
import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.execution.configurations.ConfigurationType;
import com.intellij.execution.configurations.RunConfiguration;
@@ -62,7 +54,9 @@
public final void doSetup() {
runManager = RunManagerImpl.getInstanceImpl(getProject());
// Without BlazeProjectData, the configuration editor is always disabled.
- mockBlazeProjectDataManager(getMockBlazeProjectData());
+ BlazeProjectDataManager mockProjectDataManager =
+ new MockBlazeProjectDataManager(MockBlazeProjectDataBuilder.builder(workspaceRoot).build());
+ registerProjectService(BlazeProjectDataManager.class, mockProjectDataManager);
type = BlazeCommandRunConfigurationType.getInstance();
RunnerAndConfigurationSettings runnerAndConfigurationSettings =
@@ -72,31 +66,6 @@
(BlazeCommandRunConfiguration) runnerAndConfigurationSettings.getConfiguration();
}
- private BlazeProjectData getMockBlazeProjectData() {
- BlazeRoots fakeRoots =
- new BlazeRoots(
- null,
- ImmutableList.of(workspaceRoot.directory()),
- new ExecutionRootPath("out/crosstool/bin"),
- new ExecutionRootPath("out/crosstool/gen"),
- null);
- WorkspacePathResolver workspacePathResolver =
- new WorkspacePathResolverImpl(workspaceRoot, fakeRoots);
- ArtifactLocationDecoder artifactLocationDecoder =
- new ArtifactLocationDecoderImpl(fakeRoots, workspacePathResolver);
- return new BlazeProjectData(
- 0,
- new TargetMap(ImmutableMap.of()),
- ImmutableMap.of(),
- fakeRoots,
- new BlazeVersionData(),
- workspacePathResolver,
- artifactLocationDecoder,
- null,
- null,
- null);
- }
-
@After
public final void doTeardown() {
runManager.clearAll();
diff --git a/base/tests/integrationtests/com/google/idea/blaze/base/run/BlazeCommandRunConfigurationSettingsEditorTest.java b/base/tests/integrationtests/com/google/idea/blaze/base/run/BlazeCommandRunConfigurationSettingsEditorTest.java
index b9a2b48..61b71f5 100644
--- a/base/tests/integrationtests/com/google/idea/blaze/base/run/BlazeCommandRunConfigurationSettingsEditorTest.java
+++ b/base/tests/integrationtests/com/google/idea/blaze/base/run/BlazeCommandRunConfigurationSettingsEditorTest.java
@@ -17,20 +17,12 @@
import static com.google.common.truth.Truth.assertThat;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
import com.google.idea.blaze.base.BlazeIntegrationTestCase;
-import com.google.idea.blaze.base.ideinfo.TargetMap;
-import com.google.idea.blaze.base.model.BlazeProjectData;
-import com.google.idea.blaze.base.model.BlazeVersionData;
-import com.google.idea.blaze.base.model.primitives.ExecutionRootPath;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataBuilder;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataManager;
import com.google.idea.blaze.base.model.primitives.Label;
import com.google.idea.blaze.base.run.BlazeCommandRunConfiguration.BlazeCommandRunConfigurationSettingsEditor;
-import com.google.idea.blaze.base.sync.workspace.ArtifactLocationDecoder;
-import com.google.idea.blaze.base.sync.workspace.ArtifactLocationDecoderImpl;
-import com.google.idea.blaze.base.sync.workspace.BlazeRoots;
-import com.google.idea.blaze.base.sync.workspace.WorkspacePathResolver;
-import com.google.idea.blaze.base.sync.workspace.WorkspacePathResolverImpl;
+import com.google.idea.blaze.base.sync.data.BlazeProjectDataManager;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.util.Disposer;
import org.junit.Before;
@@ -48,36 +40,13 @@
@Before
public final void doSetup() throws Exception {
// Without BlazeProjectData, the configuration editor is always disabled.
- mockBlazeProjectDataManager(getMockBlazeProjectData());
+ BlazeProjectDataManager mockProjectDataManager =
+ new MockBlazeProjectDataManager(MockBlazeProjectDataBuilder.builder(workspaceRoot).build());
+ registerProjectService(BlazeProjectDataManager.class, mockProjectDataManager);
type = BlazeCommandRunConfigurationType.getInstance();
configuration = type.getFactory().createTemplateConfiguration(getProject());
}
- private BlazeProjectData getMockBlazeProjectData() {
- BlazeRoots fakeRoots =
- new BlazeRoots(
- null,
- ImmutableList.of(workspaceRoot.directory()),
- new ExecutionRootPath("out/crosstool/bin"),
- new ExecutionRootPath("out/crosstool/gen"),
- null);
- WorkspacePathResolver workspacePathResolver =
- new WorkspacePathResolverImpl(workspaceRoot, fakeRoots);
- ArtifactLocationDecoder artifactLocationDecoder =
- new ArtifactLocationDecoderImpl(fakeRoots, workspacePathResolver);
- return new BlazeProjectData(
- 0,
- new TargetMap(ImmutableMap.of()),
- ImmutableMap.of(),
- fakeRoots,
- new BlazeVersionData(),
- workspacePathResolver,
- artifactLocationDecoder,
- null,
- null,
- null);
- }
-
@Test
public void testEditorApplyToAndResetFromMatches() throws ConfigurationException {
BlazeCommandRunConfigurationSettingsEditor editor =
diff --git a/base/tests/integrationtests/com/google/idea/blaze/base/run/exporter/RunConfigurationSerializerTest.java b/base/tests/integrationtests/com/google/idea/blaze/base/run/exporter/RunConfigurationSerializerTest.java
index fd5896b..775e65f 100644
--- a/base/tests/integrationtests/com/google/idea/blaze/base/run/exporter/RunConfigurationSerializerTest.java
+++ b/base/tests/integrationtests/com/google/idea/blaze/base/run/exporter/RunConfigurationSerializerTest.java
@@ -17,21 +17,13 @@
import static com.google.common.truth.Truth.assertThat;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
import com.google.idea.blaze.base.BlazeIntegrationTestCase;
-import com.google.idea.blaze.base.ideinfo.TargetMap;
-import com.google.idea.blaze.base.model.BlazeProjectData;
-import com.google.idea.blaze.base.model.BlazeVersionData;
-import com.google.idea.blaze.base.model.primitives.ExecutionRootPath;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataBuilder;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataManager;
import com.google.idea.blaze.base.model.primitives.Label;
import com.google.idea.blaze.base.run.BlazeCommandRunConfiguration;
import com.google.idea.blaze.base.run.BlazeCommandRunConfigurationType;
-import com.google.idea.blaze.base.sync.workspace.ArtifactLocationDecoder;
-import com.google.idea.blaze.base.sync.workspace.ArtifactLocationDecoderImpl;
-import com.google.idea.blaze.base.sync.workspace.BlazeRoots;
-import com.google.idea.blaze.base.sync.workspace.WorkspacePathResolver;
-import com.google.idea.blaze.base.sync.workspace.WorkspacePathResolverImpl;
+import com.google.idea.blaze.base.sync.data.BlazeProjectDataManager;
import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.execution.configurations.ConfigurationType;
import com.intellij.execution.configurations.RunConfiguration;
@@ -61,7 +53,9 @@
public final void doSetup() {
runManager = RunManagerImpl.getInstanceImpl(getProject());
// Without BlazeProjectData, the configuration editor is always disabled.
- mockBlazeProjectDataManager(getMockBlazeProjectData());
+ BlazeProjectDataManager mockProjectDataManager =
+ new MockBlazeProjectDataManager(MockBlazeProjectDataBuilder.builder(workspaceRoot).build());
+ registerProjectService(BlazeProjectDataManager.class, mockProjectDataManager);
type = BlazeCommandRunConfigurationType.getInstance();
RunnerAndConfigurationSettings runnerAndConfigurationSettings =
@@ -71,31 +65,6 @@
(BlazeCommandRunConfiguration) runnerAndConfigurationSettings.getConfiguration();
}
- private BlazeProjectData getMockBlazeProjectData() {
- BlazeRoots fakeRoots =
- new BlazeRoots(
- null,
- ImmutableList.of(workspaceRoot.directory()),
- new ExecutionRootPath("out/crosstool/bin"),
- new ExecutionRootPath("out/crosstool/gen"),
- null);
- WorkspacePathResolver workspacePathResolver =
- new WorkspacePathResolverImpl(workspaceRoot, fakeRoots);
- ArtifactLocationDecoder artifactLocationDecoder =
- new ArtifactLocationDecoderImpl(fakeRoots, workspacePathResolver);
- return new BlazeProjectData(
- 0,
- new TargetMap(ImmutableMap.of()),
- ImmutableMap.of(),
- fakeRoots,
- new BlazeVersionData(),
- workspacePathResolver,
- artifactLocationDecoder,
- null,
- null,
- null);
- }
-
@After
public final void doTeardown() {
clearRunManager();
diff --git a/base/tests/unittests/com/google/idea/blaze/base/actions/BlazeBuildServiceTest.java b/base/tests/unittests/com/google/idea/blaze/base/actions/BlazeBuildServiceTest.java
index e86bd3f..6ca947d 100644
--- a/base/tests/unittests/com/google/idea/blaze/base/actions/BlazeBuildServiceTest.java
+++ b/base/tests/unittests/com/google/idea/blaze/base/actions/BlazeBuildServiceTest.java
@@ -27,8 +27,11 @@
import com.google.common.collect.Lists;
import com.google.idea.blaze.base.BlazeTestCase;
import com.google.idea.blaze.base.model.BlazeProjectData;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataBuilder;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataManager;
import com.google.idea.blaze.base.model.primitives.Label;
import com.google.idea.blaze.base.model.primitives.TargetExpression;
+import com.google.idea.blaze.base.model.primitives.WorkspaceRoot;
import com.google.idea.blaze.base.projectview.ProjectView;
import com.google.idea.blaze.base.projectview.ProjectViewManager;
import com.google.idea.blaze.base.projectview.ProjectViewSet;
@@ -38,7 +41,6 @@
import com.google.idea.blaze.base.settings.Blaze;
import com.google.idea.blaze.base.settings.BlazeImportSettings;
import com.google.idea.blaze.base.settings.BlazeImportSettingsManager;
-import com.google.idea.blaze.base.sync.BlazeSyncPlugin.ModuleEditor;
import com.google.idea.blaze.base.sync.data.BlazeProjectDataManager;
import com.google.idea.blaze.base.sync.workspace.WorkspacePathResolver;
import java.io.File;
@@ -51,8 +53,9 @@
/** Test cases for {@link BlazeBuildService}. */
@RunWith(JUnit4.class)
public class BlazeBuildServiceTest extends BlazeTestCase {
- BlazeBuildService service;
- ProjectViewSet viewSet;
+ private BlazeBuildService service;
+ private ProjectViewSet viewSet;
+ private final WorkspaceRoot workspaceRoot = new WorkspaceRoot(new File("/"));
@Override
protected void initTest(Container applicationServices, Container projectServices) {
@@ -72,7 +75,9 @@
ProjectViewManager viewManager = new MockProjectViewManager(viewSet);
projectServices.register(ProjectViewManager.class, viewManager);
- projectServices.register(BlazeProjectDataManager.class, new MockProjectDataManager());
+ BlazeProjectData blazeProjectData = MockBlazeProjectDataBuilder.builder(workspaceRoot).build();
+ projectServices.register(
+ BlazeProjectDataManager.class, new MockBlazeProjectDataManager(blazeProjectData));
applicationServices.register(BlazeBuildService.class, spy(new BlazeBuildService()));
@@ -122,24 +127,4 @@
return viewSet;
}
}
-
- private static class MockProjectDataManager implements BlazeProjectDataManager {
- private final BlazeProjectData projectData;
-
- public MockProjectDataManager() {
- this.projectData =
- new BlazeProjectData(0L, null, null, null, null, null, null, null, null, null);
- }
-
- @Nullable
- @Override
- public BlazeProjectData getBlazeProjectData() {
- return projectData;
- }
-
- @Override
- public ModuleEditor editModules() {
- return null;
- }
- }
}
diff --git a/base/tests/unittests/com/google/idea/blaze/base/targetmaps/TransitiveDependencyMapTest.java b/base/tests/unittests/com/google/idea/blaze/base/targetmaps/TransitiveDependencyMapTest.java
index 3037ff1..922cbd1 100644
--- a/base/tests/unittests/com/google/idea/blaze/base/targetmaps/TransitiveDependencyMapTest.java
+++ b/base/tests/unittests/com/google/idea/blaze/base/targetmaps/TransitiveDependencyMapTest.java
@@ -22,11 +22,12 @@
import com.google.idea.blaze.base.ideinfo.TargetKey;
import com.google.idea.blaze.base.ideinfo.TargetMap;
import com.google.idea.blaze.base.ideinfo.TargetMapBuilder;
-import com.google.idea.blaze.base.model.BlazeProjectData;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataBuilder;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataManager;
import com.google.idea.blaze.base.model.primitives.Label;
-import com.google.idea.blaze.base.sync.BlazeSyncPlugin.ModuleEditor;
+import com.google.idea.blaze.base.model.primitives.WorkspaceRoot;
import com.google.idea.blaze.base.sync.data.BlazeProjectDataManager;
-import javax.annotation.Nullable;
+import java.io.File;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -35,6 +36,7 @@
@RunWith(JUnit4.class)
public class TransitiveDependencyMapTest extends BlazeTestCase {
private TransitiveDependencyMap transitiveDependencyMap;
+ private final WorkspaceRoot workspaceRoot = new WorkspaceRoot(new File("/"));
@Override
protected void initTest(Container applicationServices, Container projectServices) {
@@ -42,8 +44,9 @@
projectServices.register(
BlazeProjectDataManager.class,
new MockBlazeProjectDataManager(
- new BlazeProjectData(
- 0L, buildTargetMap(), null, null, null, null, null, null, null, null)));
+ MockBlazeProjectDataBuilder.builder(workspaceRoot)
+ .setTargetMap(buildTargetMap())
+ .build()));
projectServices.register(TransitiveDependencyMap.class, new TransitiveDependencyMap(project));
transitiveDependencyMap = TransitiveDependencyMap.getInstance(project);
}
@@ -145,23 +148,4 @@
.addTarget(TargetIdeInfo.builder().setLabel(diamondCCC))
.build();
}
-
- private static class MockBlazeProjectDataManager implements BlazeProjectDataManager {
- private final BlazeProjectData blazeProjectData;
-
- public MockBlazeProjectDataManager(BlazeProjectData blazeProjectData) {
- this.blazeProjectData = blazeProjectData;
- }
-
- @Nullable
- @Override
- public BlazeProjectData getBlazeProjectData() {
- return blazeProjectData;
- }
-
- @Override
- public ModuleEditor editModules() {
- return null;
- }
- }
}
diff --git a/base/tests/utils/integration/com/google/idea/blaze/base/BlazeIntegrationTestCase.java b/base/tests/utils/integration/com/google/idea/blaze/base/BlazeIntegrationTestCase.java
index 81d3e75..bd21294 100644
--- a/base/tests/utils/integration/com/google/idea/blaze/base/BlazeIntegrationTestCase.java
+++ b/base/tests/utils/integration/com/google/idea/blaze/base/BlazeIntegrationTestCase.java
@@ -17,15 +17,11 @@
import com.google.idea.blaze.base.io.FileAttributeProvider;
import com.google.idea.blaze.base.io.InputStreamProvider;
-import com.google.idea.blaze.base.model.BlazeProjectData;
import com.google.idea.blaze.base.model.primitives.WorkspacePath;
import com.google.idea.blaze.base.model.primitives.WorkspaceRoot;
import com.google.idea.blaze.base.settings.Blaze.BuildSystem;
import com.google.idea.blaze.base.settings.BlazeImportSettings;
import com.google.idea.blaze.base.settings.BlazeImportSettingsManager;
-import com.google.idea.blaze.base.sync.BlazeSyncPlugin;
-import com.google.idea.blaze.base.sync.data.BlazeProjectDataManager;
-import com.google.idea.blaze.base.sync.projectstructure.ModuleEditorProvider;
import com.google.idea.testing.EdtRule;
import com.google.idea.testing.IntellijTestSetupRule;
import com.google.idea.testing.ServiceHelper;
@@ -48,7 +44,6 @@
import com.intellij.util.ThrowableRunnable;
import java.io.File;
import java.io.FileNotFoundException;
-import javax.annotation.Nullable;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
@@ -176,24 +171,4 @@
protected <T> void registerExtension(ExtensionPointName<T> name, T instance) {
ServiceHelper.registerExtension(name, instance, getTestRootDisposable());
}
-
- protected void mockBlazeProjectDataManager(BlazeProjectData data) {
- BlazeProjectDataManager mockProjectDataManager =
- new BlazeProjectDataManager() {
- @Nullable
- @Override
- public BlazeProjectData getBlazeProjectData() {
- return data;
- }
-
- @Override
- public BlazeSyncPlugin.ModuleEditor editModules() {
- return ModuleEditorProvider.getInstance()
- .getModuleEditor(
- getProject(),
- BlazeImportSettingsManager.getInstance(getProject()).getImportSettings());
- }
- };
- registerProjectService(BlazeProjectDataManager.class, mockProjectDataManager);
- }
}
diff --git a/base/tests/utils/integration/com/google/idea/blaze/base/lang/buildfile/BuildFileIntegrationTestCase.java b/base/tests/utils/integration/com/google/idea/blaze/base/lang/buildfile/BuildFileIntegrationTestCase.java
index 78d1ec3..44ce8c1 100644
--- a/base/tests/utils/integration/com/google/idea/blaze/base/lang/buildfile/BuildFileIntegrationTestCase.java
+++ b/base/tests/utils/integration/com/google/idea/blaze/base/lang/buildfile/BuildFileIntegrationTestCase.java
@@ -18,22 +18,13 @@
import static com.google.common.truth.Truth.assertThat;
import com.google.common.base.Joiner;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
import com.google.idea.blaze.base.BlazeIntegrationTestCase;
import com.google.idea.blaze.base.EditorTestHelper;
-import com.google.idea.blaze.base.ideinfo.TargetMap;
import com.google.idea.blaze.base.lang.buildfile.psi.BuildFile;
-import com.google.idea.blaze.base.model.BlazeProjectData;
-import com.google.idea.blaze.base.model.BlazeVersionData;
-import com.google.idea.blaze.base.model.SyncState;
-import com.google.idea.blaze.base.model.primitives.ExecutionRootPath;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataBuilder;
+import com.google.idea.blaze.base.model.MockBlazeProjectDataManager;
import com.google.idea.blaze.base.model.primitives.WorkspacePath;
-import com.google.idea.blaze.base.sync.workspace.ArtifactLocationDecoder;
-import com.google.idea.blaze.base.sync.workspace.ArtifactLocationDecoderImpl;
-import com.google.idea.blaze.base.sync.workspace.BlazeRoots;
-import com.google.idea.blaze.base.sync.workspace.WorkspacePathResolver;
-import com.google.idea.blaze.base.sync.workspace.WorkspacePathResolverImpl;
+import com.google.idea.blaze.base.sync.data.BlazeProjectDataManager;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFile;
import org.junit.Before;
@@ -44,7 +35,9 @@
@Before
public final void doSetup() {
- mockBlazeProjectDataManager(getMockBlazeProjectData());
+ BlazeProjectDataManager mockProjectDataManager =
+ new MockBlazeProjectDataManager(MockBlazeProjectDataBuilder.builder(workspaceRoot).build());
+ registerProjectService(BlazeProjectDataManager.class, mockProjectDataManager);
editorTest = new EditorTestHelper(getProject(), testFixture);
}
@@ -66,29 +59,4 @@
String contents = Joiner.on("\n").join(contentLines);
assertThat(file.getText()).isEqualTo(contents);
}
-
- private BlazeProjectData getMockBlazeProjectData() {
- BlazeRoots fakeRoots =
- new BlazeRoots(
- null,
- ImmutableList.of(workspaceRoot.directory()),
- new ExecutionRootPath("out/crosstool/bin"),
- new ExecutionRootPath("out/crosstool/gen"),
- null);
- WorkspacePathResolver workspacePathResolver =
- new WorkspacePathResolverImpl(workspaceRoot, fakeRoots);
- ArtifactLocationDecoder artifactLocationDecoder =
- new ArtifactLocationDecoderImpl(fakeRoots, workspacePathResolver);
- return new BlazeProjectData(
- 0,
- new TargetMap(ImmutableMap.of()),
- ImmutableMap.of(),
- fakeRoots,
- new BlazeVersionData(),
- workspacePathResolver,
- artifactLocationDecoder,
- null,
- new SyncState.Builder().build(),
- null);
- }
}
diff --git a/base/tests/utils/unit/com/google/idea/blaze/base/model/MockBlazeProjectDataBuilder.java b/base/tests/utils/unit/com/google/idea/blaze/base/model/MockBlazeProjectDataBuilder.java
new file mode 100644
index 0000000..25bd08d
--- /dev/null
+++ b/base/tests/utils/unit/com/google/idea/blaze/base/model/MockBlazeProjectDataBuilder.java
@@ -0,0 +1,162 @@
+/*
+ * Copyright 2016 The Bazel Authors. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.google.idea.blaze.base.model;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableMultimap;
+import com.google.common.collect.ImmutableSet;
+import com.google.idea.blaze.base.ideinfo.TargetKey;
+import com.google.idea.blaze.base.ideinfo.TargetMap;
+import com.google.idea.blaze.base.model.primitives.ExecutionRootPath;
+import com.google.idea.blaze.base.model.primitives.WorkspaceRoot;
+import com.google.idea.blaze.base.model.primitives.WorkspaceType;
+import com.google.idea.blaze.base.sync.projectview.WorkspaceLanguageSettings;
+import com.google.idea.blaze.base.sync.workspace.ArtifactLocationDecoder;
+import com.google.idea.blaze.base.sync.workspace.ArtifactLocationDecoderImpl;
+import com.google.idea.blaze.base.sync.workspace.BlazeRoots;
+import com.google.idea.blaze.base.sync.workspace.WorkspacePathResolver;
+import com.google.idea.blaze.base.sync.workspace.WorkspacePathResolverImpl;
+
+/**
+ * Use to build mock praject data for tests.
+ *
+ * <p>For any data you don't supply, the builder make a best-effort attempt to create default
+ * objects using whatever data you have supplied if applicable.
+ */
+public class MockBlazeProjectDataBuilder {
+ private final WorkspaceRoot workspaceRoot;
+
+ private long syncTime = 0;
+ private TargetMap targetMap;
+ private ImmutableMap<String, String> blazeInfo;
+ private BlazeRoots blazeRoots;
+ private BlazeVersionData blazeVersionData;
+ private WorkspacePathResolver workspacePathResolver;
+ private ArtifactLocationDecoder artifactLocationDecoder;
+ private WorkspaceLanguageSettings workspaceLanguageSettings;
+ private SyncState syncState;
+ private ImmutableMultimap<TargetKey, TargetKey> reverseDependencies;
+
+ public MockBlazeProjectDataBuilder(WorkspaceRoot workspaceRoot) {
+ this.workspaceRoot = workspaceRoot;
+ }
+
+ public static MockBlazeProjectDataBuilder builder(WorkspaceRoot workspaceRoot) {
+ return new MockBlazeProjectDataBuilder(workspaceRoot);
+ }
+
+ public MockBlazeProjectDataBuilder setSyncTime(long syncTime) {
+ this.syncTime = syncTime;
+ return this;
+ }
+
+ public MockBlazeProjectDataBuilder setTargetMap(TargetMap targetMap) {
+ this.targetMap = targetMap;
+ return this;
+ }
+
+ public MockBlazeProjectDataBuilder setBlazeInfo(ImmutableMap<String, String> blazeInfo) {
+ this.blazeInfo = blazeInfo;
+ return this;
+ }
+
+ public MockBlazeProjectDataBuilder setBlazeRoots(BlazeRoots blazeRoots) {
+ this.blazeRoots = blazeRoots;
+ return this;
+ }
+
+ public MockBlazeProjectDataBuilder setBlazeVersionData(BlazeVersionData blazeVersionData) {
+ this.blazeVersionData = blazeVersionData;
+ return this;
+ }
+
+ public MockBlazeProjectDataBuilder setWorkspacePathResolver(
+ WorkspacePathResolver workspacePathResolver) {
+ this.workspacePathResolver = workspacePathResolver;
+ return this;
+ }
+
+ public MockBlazeProjectDataBuilder setArtifactLocationDecoder(
+ ArtifactLocationDecoder artifactLocationDecoder) {
+ this.artifactLocationDecoder = artifactLocationDecoder;
+ return this;
+ }
+
+ public MockBlazeProjectDataBuilder setWorkspaceLanguageSettings(
+ WorkspaceLanguageSettings workspaceLanguageSettings) {
+ this.workspaceLanguageSettings = workspaceLanguageSettings;
+ return this;
+ }
+
+ public MockBlazeProjectDataBuilder setSyncState(SyncState syncState) {
+ this.syncState = syncState;
+ return this;
+ }
+
+ public MockBlazeProjectDataBuilder setReverseDependencies(
+ ImmutableMultimap<TargetKey, TargetKey> reverseDependencies) {
+ this.reverseDependencies = reverseDependencies;
+ return this;
+ }
+
+ public BlazeProjectData build() {
+ TargetMap targetMap =
+ this.targetMap != null ? this.targetMap : new TargetMap(ImmutableMap.of());
+ ImmutableMap<String, String> blazeInfo =
+ this.blazeInfo != null ? this.blazeInfo : ImmutableMap.of();
+ BlazeRoots blazeRoots =
+ this.blazeRoots != null
+ ? this.blazeRoots
+ : new BlazeRoots(
+ null,
+ ImmutableList.of(workspaceRoot.directory()),
+ new ExecutionRootPath("bin"),
+ new ExecutionRootPath("gen"),
+ null);
+ BlazeVersionData blazeVersionData =
+ this.blazeVersionData != null ? this.blazeVersionData : new BlazeVersionData();
+ WorkspacePathResolver workspacePathResolver =
+ this.workspacePathResolver != null
+ ? this.workspacePathResolver
+ : new WorkspacePathResolverImpl(workspaceRoot, blazeRoots);
+ ArtifactLocationDecoder artifactLocationDecoder =
+ this.artifactLocationDecoder != null
+ ? this.artifactLocationDecoder
+ : new ArtifactLocationDecoderImpl(blazeRoots, workspacePathResolver);
+ WorkspaceLanguageSettings workspaceLanguageSettings =
+ this.workspaceLanguageSettings != null
+ ? this.workspaceLanguageSettings
+ : new WorkspaceLanguageSettings(WorkspaceType.JAVA, ImmutableSet.of());
+ SyncState syncState =
+ this.syncState != null ? this.syncState : new SyncState(ImmutableMap.of());
+ ImmutableMultimap<TargetKey, TargetKey> reverseDependencies =
+ this.reverseDependencies != null ? this.reverseDependencies : ImmutableMultimap.of();
+
+ return new BlazeProjectData(
+ syncTime,
+ targetMap,
+ blazeInfo,
+ blazeRoots,
+ blazeVersionData,
+ workspacePathResolver,
+ artifactLocationDecoder,
+ workspaceLanguageSettings,
+ syncState,
+ reverseDependencies,
+ null);
+ }
+}
diff --git a/base/tests/utils/unit/com/google/idea/blaze/base/model/MockBlazeProjectDataManager.java b/base/tests/utils/unit/com/google/idea/blaze/base/model/MockBlazeProjectDataManager.java
new file mode 100644
index 0000000..97d1b3d
--- /dev/null
+++ b/base/tests/utils/unit/com/google/idea/blaze/base/model/MockBlazeProjectDataManager.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2016 The Bazel Authors. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.google.idea.blaze.base.model;
+
+import com.google.idea.blaze.base.sync.data.BlazeProjectDataManager;
+import javax.annotation.Nullable;
+
+/** Mocks the blaze project data manager. */
+public class MockBlazeProjectDataManager implements BlazeProjectDataManager {
+ private final BlazeProjectData blazeProjectData;
+
+ public MockBlazeProjectDataManager(BlazeProjectData blazeProjectData) {
+ this.blazeProjectData = blazeProjectData;
+ }
+
+ @Nullable
+ @Override
+ public BlazeProjectData getBlazeProjectData() {
+ return blazeProjectData;
+ }
+}
diff --git a/intellij_platform_sdk/BUILD.android_studio b/intellij_platform_sdk/BUILD.android_studio
index f768640..1a8a88c 100644
--- a/intellij_platform_sdk/BUILD.android_studio
+++ b/intellij_platform_sdk/BUILD.android_studio
@@ -22,6 +22,13 @@
)
java_import(
+ name = "test_recorder",
+ jars = glob([
+ "android-studio/plugins/test-recorder/lib/*.jar",
+ ]),
+)
+
+java_import(
name = "junit",
jars = glob(["android-studio/plugins/junit/lib/*.jar"]),
)
@@ -30,14 +37,20 @@
# when running integration tests.
java_import(
name = "bundled_plugins",
- jars = glob([
- "android-studio/plugins/gradle/lib/*.jar",
- "android-studio/plugins/Groovy/lib/*.jar",
- "android-studio/plugins/java-i18n/lib/*.jar",
- "android-studio/plugins/junit/lib/*.jar",
- "android-studio/plugins/ndk-workspace/lib/*.jar",
- "android-studio/plugins/properties/lib/*.jar",
- ]),
+ jars = glob(
+ [
+ "android-studio/plugins/gradle/lib/*.jar",
+ "android-studio/plugins/Groovy/lib/*.jar",
+ "android-studio/plugins/java-i18n/lib/*.jar",
+ "android-studio/plugins/junit/lib/*.jar",
+ "android-studio/plugins/ndk-workspace/lib/*.jar",
+ "android-studio/plugins/properties/lib/*.jar",
+ ],
+ exclude = [
+ # Conflict with lib/guava-*.jar
+ "android-studio/plugins/gradle/lib/guava-*.jar",
+ ],
+ ),
tags = ["intellij-provided-by-sdk"],
)
diff --git a/intellij_platform_sdk/missing/src/dummy/pkg/DummyClassToAvoidAnEmptyJavaLibrary.java b/intellij_platform_sdk/missing/src/dummy/pkg/DummyClassToAvoidAnEmptyJavaLibrary.java
new file mode 100644
index 0000000..73ba9b6
--- /dev/null
+++ b/intellij_platform_sdk/missing/src/dummy/pkg/DummyClassToAvoidAnEmptyJavaLibrary.java
@@ -0,0 +1,18 @@
+/*
+ * Copyright 2016 The Bazel Authors. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package dummy.pkg;
+
+class DummyClassToAvoidAnEmptyJavaLibrary {}
diff --git a/intellij_platform_sdk/missing/tests/com/jetbrains/cidr/modulemap/resolve/MockModuleMapManagerImpl.java b/intellij_platform_sdk/missing/tests/com/jetbrains/cidr/modulemap/resolve/MockModuleMapManagerImpl.java
new file mode 100644
index 0000000..e22d36e
--- /dev/null
+++ b/intellij_platform_sdk/missing/tests/com/jetbrains/cidr/modulemap/resolve/MockModuleMapManagerImpl.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2016 The Bazel Authors. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.jetbrains.cidr.modulemap.resolve;
+
+import com.jetbrains.cidr.lang.workspace.OCResolveConfiguration;
+import com.jetbrains.cidr.lang.workspace.headerRoots.HeadersSearchRoot;
+import com.jetbrains.cidr.modulemap.ModuleMapModules;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Dummy class that integration tests depend on, but missing from Android Studio 2.3.
+ *
+ * <p>Android Studio 2.3 added a ModuleMapManager projectService with MockModuleMapManagerImpl as
+ * testServiceImplementation to CidrLangPlugin.xml. We don't use this service at all, but since
+ * Android Studio releases don't contain test classes, trying to load the cidr-lang plugin during
+ * integration tests will fail due to the missing test service implementation.
+ */
+public class MockModuleMapManagerImpl extends ModuleMapManager {
+ @Override
+ public ModuleMapModules getModules(OCResolveConfiguration ocResolveConfiguration) {
+ return ModuleMapModules.Companion.getEMPTY();
+ }
+
+ @Override
+ public List<HeadersSearchRoot> getHeaderSearchRoots(
+ OCResolveConfiguration ocResolveConfiguration) {
+ return Collections.emptyList();
+ }
+}