exception_message_matcher_t.cc
Go to the documentation of this file.
1 #include <catch2/catch.hpp>
2 
4 
6 
7 TEST_CASE("Contains Match")
8 {
9  exception_message_matcher matcher(Catch::Matchers::Contains("x"));
10  cet::exception e("junk");
11  SECTION("Exception message matches")
12  {
13  e << "yxz";
14  SECTION("Thrown")
15  {
16  CHECK_THROWS_MATCHES(throw e, cet::exception, matcher);
17  }
18  SECTION("Not Thrown") { CHECK_THAT(e, matcher); }
19  }
20  SECTION("Exception message does not match")
21  {
22  e << "yyz";
23  SECTION("Thrown")
24  {
25  CHECK_THROWS_MATCHES(throw e, cet::exception, !matcher);
26  }
27  SECTION("Not Thrown") { CHECK_THAT(e, !matcher); }
28  }
29 }
30 
31 TEST_CASE("Equals Match")
32 {
34  Catch::Matchers::Equals("---- junk BEGIN\n x\n---- junk END\n"));
35  cet::exception e("junk");
36  SECTION("Exception message matches")
37  {
38  e << "x";
39  SECTION("Thrown")
40  {
41  CHECK_THROWS_MATCHES(throw e, cet::exception, matcher);
42  }
43  SECTION("Not Thrown") { CHECK_THAT(e, matcher); }
44  }
45  SECTION("Exception message does not match")
46  {
47  e << "y";
48  SECTION("Thrown")
49  {
50  CHECK_THROWS_MATCHES(throw e, cet::exception, !matcher);
51  }
52  SECTION("Not Thrown") { CHECK_THAT(e, !matcher); }
53  }
54 }
55 
56 TEST_CASE("StartsWith Match")
57 {
59  Catch::Matchers::StartsWith("---- junk BEGIN\n"));
60  SECTION("Exception message matches")
61  {
62  cet::exception e("junk");
63  SECTION("Thrown")
64  {
65  CHECK_THROWS_MATCHES(throw e, cet::exception, matcher);
66  }
67  SECTION("Not Thrown") { CHECK_THAT(e, matcher); }
68  }
69  SECTION("Exception message does not match")
70  {
71  cet::exception e("junky");
72  SECTION("Thrown")
73  {
74  CHECK_THROWS_MATCHES(throw e, cet::exception, !matcher);
75  }
76  SECTION("Not Thrown") { CHECK_THAT(e, !matcher); }
77  }
78 }
79 
80 TEST_CASE("EndsWith Match")
81 {
83  Catch::Matchers::EndsWith("---- junk END\n"));
84  SECTION("Exception message matches")
85  {
86  cet::exception e("junk");
87  SECTION("Thrown")
88  {
89  CHECK_THROWS_MATCHES(throw e, cet::exception, matcher);
90  }
91  SECTION("Not Thrown") { CHECK_THAT(e, matcher); }
92  }
93  SECTION("Exception message does not match")
94  {
95  cet::exception e("junky");
96  SECTION("Thrown")
97  {
98  CHECK_THROWS_MATCHES(throw e, cet::exception, !matcher);
99  }
100  SECTION("Not Thrown") { CHECK_THAT(e, !matcher); }
101  }
102 }
103 
104 TEST_CASE("Regex Match")
105 {
107  Catch::Matchers::Matches("---- jun.*?\\b BEGIN\n.*\n.*\n"));
108  SECTION("Exception message matches")
109  {
110  cet::exception e("junk");
111  SECTION("Thrown")
112  {
113  CHECK_THROWS_MATCHES(throw e, cet::exception, matcher);
114  }
115  SECTION("Not Thrown") { CHECK_THAT(e, matcher); }
116  }
117  SECTION("Exception message does not match")
118  {
119  cet::exception e("jill");
120  SECTION("Thrown")
121  {
122  CHECK_THROWS_MATCHES(throw e, cet::exception, !matcher);
123  }
124  SECTION("Not Thrown") { CHECK_THAT(e, !matcher); }
125  }
126 }
127 
128 TEST_CASE("Composed Matchers")
129 {
130  exception_message_matcher xmatcher(Catch::Matchers::Contains("x")),
131  ymatcher(Catch::Matchers::Contains("y\n"));
132  cet::exception e("junk");
133  SECTION("Exception message matches")
134  {
135  e << "xy";
136  SECTION("Thrown")
137  {
138  CHECK_THROWS_MATCHES(throw e, cet::exception, xmatcher && ymatcher);
139  }
140  SECTION("Not Thrown") { CHECK_THAT(e, xmatcher && ymatcher); }
141  }
142  SECTION("Exception message does not match")
143  {
144  e << "yx";
145  SECTION("Thrown")
146  {
147  CHECK_THROWS_MATCHES(throw e, cet::exception, !(xmatcher && ymatcher));
148  }
149  SECTION("Not Thrown") { CHECK_THAT(e, !(xmatcher && ymatcher)); }
150  }
151 }
TEST_CASE("Contains Match")
const double e
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33