1use crate::{AssertThat, Failure};
4
5pub trait BooleanAssertions {
17 fn is_true(self) -> Self;
19
20 fn is_false(self) -> Self;
22}
23
24impl BooleanAssertions for AssertThat<bool> {
25 fn is_true(self) -> AssertThat<bool> {
26 if !self.data {
27 Failure::new(&self)
28 .expected_it("to be true")
29 .but_it("was false")
30 .fail();
31 }
32
33 self
34 }
35
36 fn is_false(self) -> AssertThat<bool> {
37 if self.data {
38 Failure::new(&self)
39 .expected_it("to be false")
40 .but_it("was true")
41 .fail();
42 }
43
44 self
45 }
46}
47
48#[cfg(test)]
49mod tests {
50
51 use super::*;
52 use crate::{assert_fails, assert_that};
53
54 #[test]
55 fn is_true_passes_for_true() {
56 assert_that!(true).is_true();
57 }
58
59 #[test]
60 fn is_true_fails_for_false() {
61 assert_fails!((false).is_true(), expected it "to be true" but it "was false");
62 }
63
64 #[test]
65 fn is_false_passes_for_false() {
66 assert_that!(false).is_false();
67 }
68
69 #[test]
70 fn is_false_fails_for_true() {
71 assert_fails!((true).is_false(), expected it "to be false" but it "was true");
72 }
73}