Add `rule_util.bzl` tests

PiperOrigin-RevId: 683145308
Change-Id: I2ae3a98c02bbc5d55f91e18f03594ca00dd6ac6e
diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml
index 4338311..66b78ae 100644
--- a/.bazelci/presubmit.yml
+++ b/.bazelci/presubmit.yml
@@ -17,6 +17,7 @@
 
 test_targets: &test_targets
   - "//test/..."
+  - "//java/test/..."
 
 buildifier: latest
 
diff --git a/java/test/BUILD b/java/test/BUILD
new file mode 100644
index 0000000..8a52e41
--- /dev/null
+++ b/java/test/BUILD
@@ -0,0 +1,3 @@
+load(":merge_attrs_tests.bzl", "merge_attrs_test_suite")
+
+merge_attrs_test_suite(name = "merge_attrs_tests")
diff --git a/java/test/merge_attrs_tests.bzl b/java/test/merge_attrs_tests.bzl
new file mode 100644
index 0000000..84b340e
--- /dev/null
+++ b/java/test/merge_attrs_tests.bzl
@@ -0,0 +1,38 @@
+"""Tests for merge_attrsfunction"""
+
+load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest")
+load(
+    "//java/common/rules:rule_util.bzl",
+    "merge_attrs",
+)
+
+_attr_string = attr.string()
+_attr_string_different_ref = attr.string()
+_attr_string_different = attr.string(default = "Some default")
+
+def _merge_attrs_merges_impl(ctx):
+    env = unittest.begin(ctx)
+
+    attrs = merge_attrs(
+        {"A": _attr_string},
+        {"B": _attr_string_different_ref, "C": _attr_string_different},
+        override_attrs = {"B": _attr_string_different},
+        remove_attrs = ["C"],
+    )
+
+    asserts.equals(env, attrs, {"A": _attr_string, "B": _attr_string_different})
+
+    return unittest.end(env)
+
+merge_attrs_merges_test = unittest.make(_merge_attrs_merges_impl)
+
+def merge_attrs_test_suite(name):
+    """Sets up util test suite
+
+    Args:
+        name: the name of the test suite target
+    """
+    unittest.suite(
+        name,
+        merge_attrs_merges_test,
+    )