Migrate the `JavaStarlarkApiTest.apiGeneratingjavaPlugin_exposesPluginsToStarlark` test to Starlark

The test is removed from Bazel and added in `@rules_java`

PiperOrigin-RevId: 738463236
Change-Id: I94b0f783fd6ccc61bd70aadfa21c5372e218f84e
diff --git a/java/test/common/rules/java_plugin_tests.bzl b/java/test/common/rules/java_plugin_tests.bzl
index af69e42..047917a 100644
--- a/java/test/common/rules/java_plugin_tests.bzl
+++ b/java/test/common/rules/java_plugin_tests.bzl
@@ -4,6 +4,7 @@
 load("@rules_testing//lib:util.bzl", "util")
 load("//java:java_library.bzl", "java_library")
 load("//java:java_plugin.bzl", "java_plugin")
+load("//java/common:java_plugin_info.bzl", "JavaPluginInfo")
 load("//java/test/testutil:java_info_subject.bzl", "java_plugin_info_subject")
 
 def _test_exposes_plugins_to_starlark(name):
@@ -40,10 +41,45 @@
 
     java_plugin_info_subject.from_target(env, target).api_generating_plugins().is_empty()
 
+def _test_exposes_api_generating_plugins_to_starlark(name):
+    target_name = name + "/plugin"
+    util.helper_target(
+        java_library,
+        name = target_name + "/plugin_dep",
+        srcs = ["ProcessorDep.java"],
+        data = ["depfile.dat"],
+    )
+    util.helper_target(
+        java_plugin,
+        name = target_name,
+        srcs = ["AnnotationProcessor.java"],
+        data = ["pluginfile.dat"],
+        processor_class = "com.google.process.stuff",
+        deps = [target_name + "/plugin_dep"],
+        generates_api = True,
+    )
+
+    analysis_test(
+        name = name,
+        impl = _test_exposes_api_generating_plugins_to_starlark_impl,
+        target = target_name,
+    )
+
+def _test_exposes_api_generating_plugins_to_starlark_impl(env, target):
+    assert_api_plugin_data = java_plugin_info_subject.from_target(env, target).api_generating_plugins()
+    assert_api_plugin_data.processor_classes().contains_exactly(["com.google.process.stuff"])
+    assert_api_plugin_data.processor_jars().contains_exactly([
+        "{package}/lib{name}.jar",
+        "{package}/lib{name}/plugin_dep.jar",
+    ])
+    assert_api_plugin_data.processor_data().contains_exactly(["{package}/pluginfile.dat"])
+    assert_api_plugin_data.equals(target[JavaPluginInfo].plugins)
+
 def java_plugin_tests(name):
     test_suite(
         name = name,
         tests = [
             _test_exposes_plugins_to_starlark,
+            _test_exposes_api_generating_plugins_to_starlark,
         ],
     )
diff --git a/java/test/testutil/java_info_subject.bzl b/java/test/testutil/java_info_subject.bzl
index 5712a9a..b958097 100644
--- a/java/test/testutil/java_info_subject.bzl
+++ b/java/test/testutil/java_info_subject.bzl
@@ -132,6 +132,7 @@
         processor_classes = lambda: subjects.collection(java_plugin_data.processor_classes, meta = meta.derive("processor_classes")),
         processor_data = lambda: subjects.depset_file(java_plugin_data.processor_data, meta = meta.derive("processor_data")),
         is_empty = lambda: _check_plugin_data_empty(java_plugin_data, meta.derive("is_empty()")),
+        equals = lambda other: subjects.bool(java_plugin_data == other, meta.derive("equals({})".format(other))).equals(True),
     )
     return public