"""Common test utils for java_lite_proto_library tests.""" load("@rules_java//java/common:java_info.bzl", "JavaInfo") load("@rules_testing//lib:truth.bzl", "subjects") load("@rules_testing//lib:util.bzl", "util") load("//bazel/private:java_lite_proto_library.bzl", "java_lite_proto_aspect") # Using this test aspect to mimic the java_lite_proto_library target. This is mainly used to test # the java related actions created in the test that isn't possible to access in Starlark. JAVA_LITE_PROTO_TESTING_ASPECT = util.make_testing_aspect(aspects = [java_lite_proto_aspect]) def _filter_inpackage(file_depset, owner): return depset([f for f in file_depset.to_list() if f.owner.package == owner.package]) def _java_info_subject(info, *, meta): """Creates a new `JavaInfoSubject` for a JavaInfo provider instance. Args: info: The JavaInfo object meta: ExpectMeta object. Returns: A `JavaInfoSubject` struct """ self = struct(actual = info, meta = meta) public = struct( actual = info, transitive_source_jars = lambda *a, **k: subjects.depset_file( self.actual.transitive_source_jars, meta = self.meta.derive("transitive_source_jars()"), ), transitive_source_jars_in_package = lambda *a, **k: subjects.depset_file( _filter_inpackage(self.actual.transitive_source_jars, meta.ctx.label), meta = self.meta.derive("transitive_source_jars_in_package()"), ), transitive_runtime_jars = lambda *a, **k: subjects.depset_file( self.actual.transitive_runtime_jars, meta = self.meta.derive("transitive_runtime_jars()"), ), transitive_compile_time_jars = lambda *a, **k: subjects.depset_file( self.actual.transitive_compile_time_jars, meta = self.meta.derive("transitive_compile_time_jars()"), ), transitive_compile_time_jars_in_package = lambda *a, **k: subjects.depset_file( _filter_inpackage(self.actual.transitive_compile_time_jars, meta.ctx.label), meta = self.meta.derive("transitive_compile_time_jars_in_package()"), ), ) return public java_info_subject_factory = struct( type = JavaInfo, name = "JavaInfo", factory = _java_info_subject, )