# Copyright 2023 The Bazel Authors. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Tests for StructSubject""" load("//lib:truth.bzl", "subjects") load("//lib:test_suite.bzl", "test_suite") load("//tests:test_util.bzl", "test_util") _tests = [] def _struct_subject_test(env): fake_meta = test_util.fake_meta(env) actual = subjects.struct( struct(n = 1, x = "foo"), meta = fake_meta, attrs = dict( n = subjects.int, x = subjects.str, ), ) actual.n().equals(1) test_util.expect_no_failures(env, fake_meta, "struct.n()") actual.n().equals(99) test_util.expect_failures( env, fake_meta, "struct.n() failure", "expected: 99", ) actual.x().equals("foo") test_util.expect_no_failures(env, fake_meta, "struct.foo()") actual.x().equals("not-foo") test_util.expect_failures(env, fake_meta, "struct.foo() failure", "expected: not-foo") _tests.append(_struct_subject_test) def struct_subject_test_suite(name): test_suite(name = name, basic_tests = _tests)