Migrate JavaToolchain timezone data tests to Starlark.

PiperOrigin-RevId: 875879430
Change-Id: Iae180a7ebfb2dd4e3dc42eb23fbcb229c7bb443f
diff --git a/test/java/testutil/java_toolchain_info_subject.bzl b/test/java/testutil/java_toolchain_info_subject.bzl
index af6934b..e52302a 100644
--- a/test/java/testutil/java_toolchain_info_subject.bzl
+++ b/test/java/testutil/java_toolchain_info_subject.bzl
@@ -6,6 +6,7 @@
 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")),
     )
     return public
 
diff --git a/test/java/testutil/javac_action_subject.bzl b/test/java/testutil/javac_action_subject.bzl
index 5dfbab4..28d1916 100644
--- a/test/java/testutil/javac_action_subject.bzl
+++ b/test/java/testutil/javac_action_subject.bzl
@@ -24,6 +24,7 @@
         target = lambda: _create_subject_for_flag("-target", self.parsed_flags, self.meta),
         xmaxerrs = lambda: _create_subject_for_flag("-Xmaxerrs", self.parsed_flags, self.meta),
         jar = lambda: _create_subject_for_flag("-jar", self.parsed_flags, self.meta),
+        sources = lambda: _create_subject_for_flag("--sources", self.parsed_flags, self.meta),
         executable_file_name = lambda: subjects.str(action_subject.actual.argv[0], self.meta),
         inputs = action_subject.inputs,
         argv = action_subject.argv,
diff --git a/test/java/toolchains/java_toolchain_tests.bzl b/test/java/toolchains/java_toolchain_tests.bzl
index a13e086..9377647 100644
--- a/test/java/toolchains/java_toolchain_tests.bzl
+++ b/test/java/toolchains/java_toolchain_tests.bzl
@@ -1,6 +1,7 @@
 """Tests for the java_toolchain rule"""
 
 load("@rules_testing//lib:analysis_test.bzl", "analysis_test", "test_suite")
+load("@rules_testing//lib:truth.bzl", "matching")
 load("@rules_testing//lib:util.bzl", "util")
 load("//java:java_binary.bzl", "java_binary")
 load("//java:java_library.bzl", "java_library")
@@ -157,6 +158,42 @@
 
     assert_javac_action.jar().contains_exactly(["{package}/GenClass_deploy.jar"])
 
+def _test_timezone_data_is_correct(name):
+    _declare_java_toolchain(name = name)
+
+    analysis_test(
+        name = name,
+        impl = _test_timezone_data_is_correct_impl,
+        target = name + "/java_toolchain",
+    )
+
+def _test_timezone_data_is_correct_impl(env, target):
+    java_toolchain_info_subject.from_target(env, target).timezone_data().short_path_equals(
+        "{package}/tzdata.jar",
+    )
+
+def _test_java_binary_uses_timezone_data(name):
+    _declare_java_toolchain(name = name)
+    util.helper_target(
+        java_binary,
+        name = name + "/a",
+        srcs = ["a.java"],
+    )
+
+    analysis_test(
+        name = name,
+        impl = _test_java_binary_uses_timezone_data_impl,
+        target = name + "/a",
+        config_settings = {
+            "//command_line_option:extra_toolchains": [Label(name + "/toolchain")],
+        },
+    )
+
+def _test_java_binary_uses_timezone_data_impl(env, target):
+    assert_action = javac_action_subject.of(env, target, "{package}/{name}.jar")
+    assert_action.sources().contains("{package}/tzdata.jar")
+    assert_action.inputs().contains_predicate(matching.file_basename_equals("tzdata.jar"))
+
 def java_toolchain_tests(name):
     test_suite(
         name = name,
@@ -165,5 +202,7 @@
             _test_javac_gets_options,
             _test_singlejar_get_command_line,
             _test_genclass_get_command_line,
+            _test_timezone_data_is_correct,
+            _test_java_binary_uses_timezone_data,
         ],
     )