@@ -0,0 +1,3107 @@
+// Copyright 2021 The Bazel Authors. All rights reserved.%0A//%0A// Licensed under the Apache License, Version 2.0 (the %22License%22);%0A// you may not use this file except in compliance with the License.%0A// You may obtain a copy of the License at%0A//%0A//    http://www.apache.org/licenses/LICENSE-2.0%0A//%0A// Unless required by applicable law or agreed to in writing, software%0A// distributed under the License is distributed on an %22AS IS%22 BASIS,%0A// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A// See the License for the specific language governing permissions and%0A// limitations under the License.%0Apackage com.google.devtools.build.lib.view.java;%0A%0Aimport static com.google.common.truth.Truth.assertThat;%0A%0Aimport com.google.devtools.build.lib.actions.Artifact;%0Aimport com.google.devtools.build.lib.actions.ArtifactRoot;%0Aimport com.google.devtools.build.lib.actions.ArtifactRoot.RootType;%0Aimport com.google.devtools.build.lib.actions.util.ActionsTestUtil;%0Aimport com.google.devtools.build.lib.rules.java.JavaCompilationArtifacts;%0Aimport com.google.devtools.build.lib.testutil.FoundationTestCase;%0Aimport com.google.devtools.build.lib.vfs.Path;%0Aimport org.junit.Test;%0Aimport org.junit.runner.RunWith;%0Aimport org.junit.runners.JUnit4;%0A%0A/** Unit Test for %7B@link JavaCompilationArtifacts%7D */%0A@RunWith(JUnit4.class)%0Apublic class JavaCompilationArtifactsTest extends FoundationTestCase %7B%0A%0A  @Test%0A  public void testSimple() %7B%0A    Path execRoot = scratch.getFileSystem().getPath(%22/exec%22);%0A    String outSegment = %22root%22;%0A    ArtifactRoot root = ArtifactRoot.asDerivedRoot(execRoot, RootType.Output, outSegment);%0A    Artifact runtimeJar = ActionsTestUtil.createArtifact(root, %22rt.jar%22);%0A    Artifact compileTimeJar = ActionsTestUtil.createArtifact(root, %22ct.jar%22);%0A    JavaCompilationArtifacts original =%0A        new JavaCompilationArtifacts.Builder()%0A            .addRuntimeJar(runtimeJar)%0A            .addCompileTimeJarAsFullJar(compileTimeJar)%0A            .build();%0A    assertThat(original.getRuntimeJars()).containsExactly(runtimeJar);%0A    assertThat(original.getCompileTimeJars()).containsExactly(compileTimeJar);%0A  %7D%0A%0A  @Test%0A  public void testDuplicates() %7B%0A    Path execRoot = scratch.getFileSystem().getPath(%22/exec%22);%0A    ArtifactRoot root = ArtifactRoot.asDerivedRoot(execRoot, RootType.Output, %22root%22);%0A    Artifact runtimeJar = ActionsTestUtil.createArtifact(root, %22rt.jar%22);%0A    Artifact compileTimeJar = ActionsTestUtil.createArtifact(root, %22ct.jar%22);%0A%0A    JavaCompilationArtifacts.Builder builder = new JavaCompilationArtifacts.Builder();%0A    // Add the same jars to the builder twice.%0A    builder.addRuntimeJar(runtimeJar).addCompileTimeJarAsFullJar(compileTimeJar);%0A    builder%0A        .addRuntimeJar(runtimeJar)%0A        .addCompileTimeJarAsFullJar(compileTimeJar)%0A        .build();%0A    JavaCompilationArtifacts artifacts = builder.build();%0A    // There is only a single instance of each jar in the final artifact collection.%0A    assertThat(artifacts.getRuntimeJars()).containsExactly(runtimeJar);%0A    assertThat(artifacts.getCompileTimeJars()).containsExactly(compileTimeJar);%0A  %7D%0A%7D%0A

Add JavaCompilationArtifactsTest.