Migrate the `JavaInfoStarlarkApiTest.buildHelperCreateJavaInfoPluginsFromExports` test to Starlark

The test is removed from Bazel and added in rules_java

PiperOrigin-RevId: 734603913
Change-Id: I09d3b5605d5c601593fec1e0df250801af66a028
diff --git a/java/test/common/java_info_tests.bzl b/java/test/common/java_info_tests.bzl
index 7a83f5b..fbe5b93 100644
--- a/java/test/common/java_info_tests.bzl
+++ b/java/test/common/java_info_tests.bzl
@@ -5,6 +5,7 @@
 load("@rules_testing//lib:truth.bzl", "matching")
 load("@rules_testing//lib:util.bzl", "util")
 load("//java:java_library.bzl", "java_library")
+load("//java:java_plugin.bzl", "java_plugin")
 load("//java/test/testutil:java_info_subject.bzl", "java_info_subject")
 load("//java/test/testutil:rules/custom_java_info_rule.bzl", "custom_java_info_rule")
 
@@ -641,6 +642,43 @@
         "{package}/lib{name}/my_java_lib_d-hjar.jar",
     ])
 
+def _with_plugins_via_exports_test(name):
+    target_name = name + "/my_starlark_rule"
+    util.helper_target(
+        java_library,
+        name = target_name + "/plugin_dep",
+        srcs = ["ProcessorDep.java"],
+    )
+    util.helper_target(
+        java_plugin,
+        name = target_name + "/plugin",
+        srcs = ["AnnotationProcessor.java"],
+        processor_class = "com.google.process.stuff",
+        deps = [target_name + "/plugin_dep"],
+    )
+    util.helper_target(
+        java_library,
+        name = target_name + "/export",
+        exported_plugins = [target_name + "/plugin"],
+    )
+    util.helper_target(
+        custom_java_info_rule,
+        name = target_name,
+        dep_exports = [target_name + "/export"],
+        output_jar = target_name + "/my_starlark_rule_lib.jar",
+    )
+
+    analysis_test(
+        name = name,
+        impl = _with_plugins_via_exports_test_impl,
+        target = target_name,
+    )
+
+def _with_plugins_via_exports_test_impl(env, target):
+    assert_java_info = java_info_subject.from_target(env, target)
+
+    assert_java_info.plugins().processor_classes().contains_exactly(["com.google.process.stuff"])
+
 def java_info_tests(name):
     test_suite(
         name = name,
@@ -663,5 +701,6 @@
             _with_exports_test,
             _with_transitive_exports_test,
             _with_transitive_deps_and_exports_test,
+            _with_plugins_via_exports_test,
         ],
     )
diff --git a/java/test/testutil/java_info_subject.bzl b/java/test/testutil/java_info_subject.bzl
index 3e18833..66a2256 100644
--- a/java/test/testutil/java_info_subject.bzl
+++ b/java/test/testutil/java_info_subject.bzl
@@ -102,6 +102,7 @@
     )
     public = struct(
         processor_jars = lambda: subjects.depset_file(self.actual.processor_jars, meta = self.meta.derive("processor_jars")),
+        processor_classes = lambda: subjects.collection(self.actual.processor_classes, meta = self.meta.derive("processor_classes")),
     )
     return public