diff options
author | Yuriy Solodkyy <solodkyy@google.com> | 2022-02-10 10:42:36 +0000 |
---|---|---|
committer | Yuriy Solodkyy <solodkyy@google.com> | 2022-02-14 18:47:00 +0000 |
commit | 57a206cb7989b70eefb8d8087c7d40dbbff4dbc0 (patch) | |
tree | 49d68c2bfe5c91330ada3e7eea7ca341638924a4 /android/testSrc | |
parent | cda2ea9dff5a168d21ac39b41514b200d046fa4a (diff) | |
download | idea-57a206cb7989b70eefb8d8087c7d40dbbff4dbc0.tar.gz |
Prepare IDE library models to be moved out of modules
(1) Introduce an IDE library resolver which maps core library interfaces
to their full counterparts. This will be later replaced with an
implementation which looks up library cores by their index in a
global library table.
(2) Implement full interfaces as wrappers around core interfaces that
also have a reference to a resolver.
(3) Create a shared resolver instance for AndroidGradleProjectResolver
and later when models are attached to facets an instance for
in-memory models.
Bug: 197066729
Test: existing test project snapshots unchanged
Change-Id: Ied00a982cd3c93a2fc452afd49ae34354e003dcf
Diffstat (limited to 'android/testSrc')
5 files changed, 16 insertions, 97 deletions
diff --git a/android/testSrc/com/android/tools/idea/gradle/project/model/IdeJavaArtifactTest.java b/android/testSrc/com/android/tools/idea/gradle/project/model/IdeJavaArtifactTest.java deleted file mode 100644 index 89c0cbffafc..00000000000 --- a/android/testSrc/com/android/tools/idea/gradle/project/model/IdeJavaArtifactTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2021 The Android Open Source Project - * - * 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.android.tools.idea.gradle.project.model; - -import static com.android.tools.idea.gradle.project.model.IdeModelTestUtils.assertEqualsOrSimilar; - -import com.android.builder.model.AndroidProject; -import com.android.builder.model.JavaArtifact; -import com.android.tools.idea.gradle.model.IdeArtifactName; -import com.android.tools.idea.gradle.model.IdeJavaArtifact; -import com.android.tools.idea.gradle.model.impl.IdeDependenciesImpl; -import com.android.tools.idea.gradle.model.impl.IdeJavaArtifactImpl; -import com.android.tools.idea.gradle.model.stubs.JavaArtifactStub; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import org.junit.Test; - -/** Tests for {@link IdeJavaArtifact}. */ -public class IdeJavaArtifactTest { - - @Test - public void constructor() throws Throwable { - JavaArtifact original = new JavaArtifactStub(); - IdeJavaArtifact copy = new IdeJavaArtifactImpl( - convertArtifactName(original.getName()), - original.getCompileTaskName(), - original.getAssembleTaskName(), - Arrays.asList(original.getClassesFolder()), - null, - null, - original.getIdeSetupTaskNames(), - (List)original.getGeneratedSourceFolders(), - false, - new IdeDependenciesImpl(Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), Collections.emptyList()), - Collections.emptyList(), - original.getMockablePlatformJar() - ); - assertEqualsOrSimilar(original, copy); - } - - private IdeArtifactName convertArtifactName(String name) { - switch (name) { - case AndroidProject.ARTIFACT_MAIN: - return IdeArtifactName.MAIN; - case AndroidProject.ARTIFACT_ANDROID_TEST: - return IdeArtifactName.ANDROID_TEST; - case AndroidProject.ARTIFACT_UNIT_TEST: - return IdeArtifactName.UNIT_TEST; - case AndroidProject.ARTIFACT_TEST_FIXTURES: - return IdeArtifactName.TEST_FIXTURES; - } - return null; - } -} diff --git a/android/testSrc/com/android/tools/idea/gradle/project/model/ModelSerializationTest.kt b/android/testSrc/com/android/tools/idea/gradle/project/model/ModelSerializationTest.kt index 416e41653ae..9605c55cdb4 100644 --- a/android/testSrc/com/android/tools/idea/gradle/project/model/ModelSerializationTest.kt +++ b/android/testSrc/com/android/tools/idea/gradle/project/model/ModelSerializationTest.kt @@ -18,7 +18,7 @@ package com.android.tools.idea.gradle.project.model import com.android.ide.common.repository.GradleVersion import com.android.tools.idea.Projects import com.android.tools.idea.gradle.model.impl.IdeAaptOptionsImpl -import com.android.tools.idea.gradle.model.impl.IdeAndroidArtifactImpl +import com.android.tools.idea.gradle.model.impl.IdeAndroidArtifactCoreImpl import com.android.tools.idea.gradle.model.impl.IdeAndroidArtifactOutputImpl import com.android.tools.idea.gradle.model.impl.IdeAndroidGradlePluginProjectFlagsImpl import com.android.tools.idea.gradle.model.impl.IdeAndroidLibraryDependencyImpl @@ -28,9 +28,9 @@ import com.android.tools.idea.gradle.model.impl.IdeApiVersionImpl import com.android.tools.idea.gradle.model.impl.IdeBuildTypeContainerImpl import com.android.tools.idea.gradle.model.impl.IdeBuildTypeImpl import com.android.tools.idea.gradle.model.impl.IdeClassFieldImpl -import com.android.tools.idea.gradle.model.impl.IdeDependenciesImpl +import com.android.tools.idea.gradle.model.impl.IdeDependenciesCoreImpl import com.android.tools.idea.gradle.model.impl.IdeFilterDataImpl -import com.android.tools.idea.gradle.model.impl.IdeJavaArtifactImpl +import com.android.tools.idea.gradle.model.impl.IdeJavaArtifactCoreImpl import com.android.tools.idea.gradle.model.impl.IdeJavaCompileOptionsImpl import com.android.tools.idea.gradle.model.impl.IdeJavaLibraryImpl import com.android.tools.idea.gradle.model.impl.IdeLintOptionsImpl @@ -42,7 +42,7 @@ import com.android.tools.idea.gradle.model.impl.IdeSourceProviderContainerImpl import com.android.tools.idea.gradle.model.impl.IdeSourceProviderImpl import com.android.tools.idea.gradle.model.impl.IdeTestOptionsImpl import com.android.tools.idea.gradle.model.impl.IdeTestedTargetVariantImpl -import com.android.tools.idea.gradle.model.impl.IdeVariantImpl +import com.android.tools.idea.gradle.model.impl.IdeVariantCoreImpl import com.android.tools.idea.gradle.model.impl.IdeVectorDrawablesOptionsImpl import com.android.tools.idea.gradle.model.impl.IdeViewBindingOptionsImpl import com.android.tools.idea.gradle.model.impl.ndk.v1.IdeNativeAndroidProjectImpl @@ -232,7 +232,7 @@ class ModelSerializationTest : AndroidGradleTestCase() { fun testLevel2ModuleLibrary() = Truth.assertThat(IdeModuleLibraryImpl::class.java).isAssignableTo(Serializable::class.java) @Test - fun testLevel2Dependencies() = Truth.assertThat(IdeDependenciesImpl::class.java).isAssignableTo(Serializable::class.java) + fun testDependencyCores() = Truth.assertThat(IdeDependenciesCoreImpl::class.java).isAssignableTo(Serializable::class.java) /* * END LEVEL2 DEPENDENCY MODELS @@ -243,7 +243,7 @@ class ModelSerializationTest : AndroidGradleTestCase() { fun testAaptOptions() = Truth.assertThat(IdeAaptOptionsImpl::class.java).isAssignableTo(Serializable::class.java) @Test - fun testAndroidArtifact() = Truth.assertThat(IdeAndroidArtifactImpl::class.java).isAssignableTo(Serializable::class.java) + fun testAndroidArtifactCore() = Truth.assertThat(IdeAndroidArtifactCoreImpl::class.java).isAssignableTo(Serializable::class.java) @Test fun testAndroidArtifactOutput() = Truth.assertThat(IdeAndroidArtifactOutputImpl::class.java).isAssignableTo(Serializable::class.java) @@ -261,7 +261,7 @@ class ModelSerializationTest : AndroidGradleTestCase() { fun testFilterData() = Truth.assertThat(IdeFilterDataImpl::class.java).isAssignableTo(Serializable::class.java) @Test - fun testJavaArtifact() = Truth.assertThat(IdeJavaArtifactImpl::class.java).isAssignableTo(Serializable::class.java) + fun testJavaArtifactCore() = Truth.assertThat(IdeJavaArtifactCoreImpl::class.java).isAssignableTo(Serializable::class.java) @Test fun testJavaCompileOptions() = Truth.assertThat(IdeJavaCompileOptionsImpl::class.java).isAssignableTo(Serializable::class.java) @@ -312,7 +312,7 @@ class ModelSerializationTest : AndroidGradleTestCase() { fun testTestOptions() = Truth.assertThat(IdeTestOptionsImpl::class.java).isAssignableTo(Serializable::class.java) @Test - fun testVariant() = Truth.assertThat(IdeVariantImpl::class.java).isAssignableTo(Serializable::class.java) + fun testVariantCore() = Truth.assertThat(IdeVariantCoreImpl::class.java).isAssignableTo(Serializable::class.java) @Test fun testVectorDrawablesOptions() = Truth.assertThat(IdeVectorDrawablesOptionsImpl::class.java).isAssignableTo(Serializable::class.java) diff --git a/android/testSrc/com/android/tools/idea/gradle/project/sync/LightSyncBasedTestsWithGradleLikeStructureTest.kt b/android/testSrc/com/android/tools/idea/gradle/project/sync/LightSyncBasedTestsWithGradleLikeStructureTest.kt index ddb1e73c8f4..cba17eeeaac 100644 --- a/android/testSrc/com/android/tools/idea/gradle/project/sync/LightSyncBasedTestsWithGradleLikeStructureTest.kt +++ b/android/testSrc/com/android/tools/idea/gradle/project/sync/LightSyncBasedTestsWithGradleLikeStructureTest.kt @@ -17,6 +17,7 @@ package com.android.tools.idea.gradle.project.sync import com.android.tools.idea.gradle.model.impl.IdeAndroidLibraryDependencyImpl import com.android.tools.idea.gradle.model.impl.IdeAndroidLibraryImpl +import com.android.tools.idea.gradle.model.impl.IdeAndroidLibraryDependencyCoreImpl import com.android.tools.idea.projectsystem.ProjectSyncModificationTracker import com.android.tools.idea.testing.AndroidModuleDependency import com.android.tools.idea.testing.AndroidModuleModelBuilder @@ -217,7 +218,7 @@ private fun libModuleBuilderWithLib(gradleCacheRoot: File) = ) private fun ideAndroidLibrary(gradleCacheRoot: File, artifactAddress: String) = - IdeAndroidLibraryDependencyImpl( + IdeAndroidLibraryDependencyCoreImpl( IdeAndroidLibraryImpl.create( artifactAddress = artifactAddress, name = artifactAddress, diff --git a/android/testSrc/com/android/tools/idea/gradle/stubs/android/AndroidProjectStub.java b/android/testSrc/com/android/tools/idea/gradle/stubs/android/AndroidProjectStub.java index b4d34f8e6a5..a33015b3f17 100644 --- a/android/testSrc/com/android/tools/idea/gradle/stubs/android/AndroidProjectStub.java +++ b/android/testSrc/com/android/tools/idea/gradle/stubs/android/AndroidProjectStub.java @@ -36,15 +36,11 @@ import com.android.builder.model.SyncIssue; import com.android.builder.model.Variant; import com.android.builder.model.VariantBuildInformation; import com.android.builder.model.ViewBindingOptions; -import com.android.ide.common.repository.GradleVersion; import com.android.tools.idea.gradle.model.IdeAndroidProject; -import com.android.tools.idea.gradle.model.IdeVariant; -import com.android.tools.idea.gradle.model.impl.IdeAndroidProjectImpl; import com.android.tools.idea.gradle.model.stubs.AndroidGradlePluginProjectFlagsStub; import com.android.tools.idea.gradle.model.stubs.VariantBuildInformationStub; import com.android.tools.idea.gradle.model.stubs.ViewBindingOptionsStub; import com.android.tools.idea.gradle.project.sync.ModelCache; -import com.android.tools.idea.gradle.project.sync.ModuleId; import com.android.tools.idea.gradle.stubs.FileStructure; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -396,12 +392,4 @@ public class AndroidProjectStub implements AndroidProject { public static IdeAndroidProject toIdeAndroidProject(AndroidProjectStub androidProject) { return ((ModelCache.V1)(ModelCache.create(false))).androidProjectFrom(androidProject); } - - @NotNull - public static List<IdeVariant> toIdeVariants(AndroidProjectStub androidProject) { - ModelCache.V1 modelCache = (ModelCache.V1)ModelCache.create(false); - GradleVersion modelVersion = GradleVersion.tryParseAndroidGradlePluginVersion(androidProject.getModelVersion()); - IdeAndroidProjectImpl ideAndroidProject = modelCache.androidProjectFrom(androidProject); - return map(androidProject.getVariants(), it -> modelCache.variantFrom(ideAndroidProject, it, modelVersion, new ModuleId("", ""))); - } } diff --git a/android/testSrc/org/jetbrains/android/uipreview/ModuleClassLoaderTest.java b/android/testSrc/org/jetbrains/android/uipreview/ModuleClassLoaderTest.java index 7fefeea29d3..f1ea1e831e0 100644 --- a/android/testSrc/org/jetbrains/android/uipreview/ModuleClassLoaderTest.java +++ b/android/testSrc/org/jetbrains/android/uipreview/ModuleClassLoaderTest.java @@ -27,8 +27,8 @@ import com.android.ide.common.rendering.api.ResourceNamespace; import com.android.ide.common.resources.ResourceRepository; import com.android.tools.idea.flags.StudioFlags; import com.android.tools.idea.gradle.model.IdeAndroidProjectType; -import com.android.tools.idea.gradle.model.impl.IdeAndroidLibraryDependencyImpl; import com.android.tools.idea.gradle.model.impl.IdeAndroidLibraryImpl; +import com.android.tools.idea.gradle.model.impl.IdeAndroidLibraryDependencyCoreImpl; import com.android.tools.idea.projectsystem.SourceProviders; import com.android.tools.idea.res.ResourceClassRegistry; import com.android.tools.idea.res.ResourceIdManager; @@ -411,11 +411,11 @@ public class ModuleClassLoaderTest extends AndroidTestCase { assertNull("Disposed ModuleClassLoaders can not be copied", copy); } - private static IdeAndroidLibraryDependencyImpl ideAndroidLibrary(File gradleCacheRoot, - @SuppressWarnings("SameParameterValue") String artifactAddress, - String folder, - String libJar) { - return new IdeAndroidLibraryDependencyImpl( + private static IdeAndroidLibraryDependencyCoreImpl ideAndroidLibrary(File gradleCacheRoot, + @SuppressWarnings("SameParameterValue") String artifactAddress, + String folder, + String libJar) { + return new IdeAndroidLibraryDependencyCoreImpl( IdeAndroidLibraryImpl.Companion.create( artifactAddress, artifactAddress, |