diff options
Diffstat (limited to 'vendor/bandit/specs/matchers/be_truthy.cpp')
-rw-r--r-- | vendor/bandit/specs/matchers/be_truthy.cpp | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/vendor/bandit/specs/matchers/be_truthy.cpp b/vendor/bandit/specs/matchers/be_truthy.cpp new file mode 100644 index 00000000..5e583fbf --- /dev/null +++ b/vendor/bandit/specs/matchers/be_truthy.cpp @@ -0,0 +1,85 @@ +#include <specs/specs.h> + +using namespace bandit::Matchers; + +SPEC_BEGIN(Matchers::BeTruthy) + +describe("be_truthy matcher", [&]{ + describe("when the value is a built-in type", [&]{ + bool value; + + describe("which evaluates to false", [&]{ + before_each([&]{ + value = false; + }); + + it("must accept a negative match", [&]{ + value must_not be_truthy; + }); + + it("must reject a positive match", [&]{ + AssertThrows(std::exception, [&]{ value must be_truthy; }()); + }); + }); + + describe("which evaluates to true", [&]{ + before_each([&]{ + value = true; + }); + + it("must accept a positive match", [&]{ + value must be_truthy; + }); + + it("must reject a negative match", [&]{ + AssertThrows(std::exception, [&]{ value must_not be_truthy; }()); + }); + }); + }); + + describe("when the value is nullptr", [&]{ + auto value = nullptr; + + it("must accept a negative match", [&]{ + value must_not be_truthy; + }); + + it("must reject a positive match", [&]{ + AssertThrows(std::exception, [&]{ value must be_truthy; }()); + }); + }); + + describe("when the value is a pointer", [&]{ + char* value; + + describe("which evaluates to false", [&]{ + before_each([&]{ + value = NULL; + }); + + it("must accept a negative match", [&]{ + value must_not be_truthy; + }); + + it("must reject a positive match", [&]{ + AssertThrows(std::exception, [&]{ value must be_truthy; }()); + }); + }); + + describe("which evaluates to true", [&]{ + before_each([&]{ + value = (char*)"cat"; + }); + + it("must accept a positive match", [&]{ + value must be_truthy; + }); + + it("must reject a negative match", [&]{ + AssertThrows(std::exception, [&]{ value must_not be_truthy; }()); + }); + }); + }); +}); + +SPEC_END |