Move JavaToolchain location expansion test to Starlark.

PiperOrigin-RevId: 877941010
Change-Id: I0709e76b1eeea9d572256b921ab27c98019e49eb
diff --git a/test/java/testutil/java_toolchain_info_subject.bzl b/test/java/testutil/java_toolchain_info_subject.bzl
index a3304f4..2757bfc 100644
--- a/test/java/testutil/java_toolchain_info_subject.bzl
+++ b/test/java/testutil/java_toolchain_info_subject.bzl
@@ -3,12 +3,26 @@
 load("@rules_testing//lib:truth.bzl", "subjects")
 load("//java/common:java_common.bzl", "java_common")
 
+def _new_java_builder_subject(tool_info, meta):
+    return subjects.struct(
+        struct(
+            data = [f.path for f in tool_info.data.to_list()],
+            jvm_opts = tool_info.jvm_opts.to_list(),
+        ),
+        meta = meta,
+        attrs = {
+            "data": lambda values, *, meta: subjects.collection(values, meta = meta, format = True),
+            "jvm_opts": lambda values, *, meta: subjects.collection(values, meta = meta, format = True),
+        },
+    )
+
 def _new_java_toolchain_info_subject(info, meta):
     public = struct(
         jacocorunner = lambda: subjects.file(info.jacocorunner.executable, meta.derive("jacocorunner.executable")),
         timezone_data = lambda: subjects.file(info._timezone_data, meta.derive("_timezone_data")),
         header_compiler_builtin_processors = lambda: subjects.collection(info._header_compiler_builtin_processors.to_list(), meta.derive("_header_compiler_builtin_processors")),
         reduced_classpath_incompatible_processors = lambda: subjects.collection(info._reduced_classpath_incompatible_processors.to_list(), meta.derive("_reduced_classpath_incompatible_processors")),
+        javabuilder = lambda: _new_java_builder_subject(info._javabuilder, meta.derive("_javabuilder")),
     )
     return public
 
diff --git a/test/java/toolchains/java_toolchain_tests.bzl b/test/java/toolchains/java_toolchain_tests.bzl
index f685fdd..9ca2857 100644
--- a/test/java/toolchains/java_toolchain_tests.bzl
+++ b/test/java/toolchains/java_toolchain_tests.bzl
@@ -527,6 +527,45 @@
     header_action = env.expect.that_target(target).action_generating("{package}/lib{name}-hjar.jar")
     header_action.argv().contains("-DturbineFlag=1")
 
+def _test_javabuilder_location_expansion_with_multiple_artifacts(name):
+    util.helper_target(
+        native.filegroup,
+        name = name + "/fg1",
+        srcs = ["a", "b"],
+    )
+    util.helper_target(
+        native.filegroup,
+        name = name + "/fg2",
+        srcs = ["c", "d"],
+    )
+    _declare_java_toolchain(
+        name = name,
+        javabuilder_data = [name + "/fg1", name + "/fg2"],
+        javabuilder_jvm_opts = [
+            "$(locations " + name + "/fg1)",
+            "$(locations " + name + "/fg2)",
+        ],
+    )
+
+    analysis_test(
+        name = name,
+        impl = _test_javabuilder_location_expansion_with_multiple_artifacts_impl,
+        target = name + "/java_toolchain",
+    )
+
+def _test_javabuilder_location_expansion_with_multiple_artifacts_impl(env, target):
+    assert_javabuilder = java_toolchain_info_subject.from_target(env, target).javabuilder()
+    assert_javabuilder.data().contains_exactly([
+        "{package}/a",
+        "{package}/b",
+        "{package}/c",
+        "{package}/d",
+    ]).in_order()
+    assert_javabuilder.jvm_opts().contains_exactly([
+        "{package}/a {package}/b",
+        "{package}/c {package}/d",
+    ]).in_order()
+
 def java_toolchain_tests(name):
     test_suite(
         name = name,
@@ -549,5 +588,6 @@
             _test_java_compile_action_target_gets_javacopts_from_toolchain,
             _test_java_compile_action_exec_gets_javacopts_from_toolchain,
             _test_java_compile_action_uses_tool_specific_jvm_opts,
+            _test_javabuilder_location_expansion_with_multiple_artifacts,
         ],
     )