diff options
Diffstat (limited to 'vendor/bandit/specs/matchers/be_gte.cpp')
-rw-r--r-- | vendor/bandit/specs/matchers/be_gte.cpp | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/vendor/bandit/specs/matchers/be_gte.cpp b/vendor/bandit/specs/matchers/be_gte.cpp new file mode 100644 index 00000000..f0e18313 --- /dev/null +++ b/vendor/bandit/specs/matchers/be_gte.cpp @@ -0,0 +1,120 @@ +#include <specs/specs.h> + +using namespace bandit::Matchers; + + +SPEC_BEGIN(Matchers::BeGTE) + +describe("be_gte matcher", [&]{ + int someInteger = 10; + + describe("when the actual value is a built-in type", [&]{ + int actualValue = someInteger; + + describe("and the expected value is the same built-in type", [&]{ + int expectedValue; + + describe("and the actual value is greater than the expected value", [&]{ + before_each([&]{ + expectedValue = 1; + }); + + it("must pass a positive match", [&]{ + actualValue must be_gte(expectedValue); + actualValue must be_greater_than_or_equal_to(expectedValue); + }); + + it("must reject a negative match", [&]{ + AssertThrows(std::exception, [&]{ actualValue must_not be_gte(expectedValue); }()); + AssertThrows(std::exception, [&]{ actualValue must_not be_greater_than_or_equal_to(expectedValue); }()); + }); + }); + + describe("and the actual value is less than the expected value", [&]{ + before_each([&]{ + expectedValue = 100; + }); + + it("must pass a negative match", [&]{ + actualValue must_not be_gte(expectedValue); + actualValue must_not be_greater_than_or_equal_to(expectedValue); + }); + + it("must reject a positive match", [&]{ + AssertThrows(std::exception, [&]{ actualValue must be_gte(expectedValue); }()); + AssertThrows(std::exception, [&]{ actualValue must be_greater_than_or_equal_to(expectedValue); }()); + }); + }); + + describe("and the actual value equals the expected value", [&]{ + before_each([&]{ + expectedValue = actualValue; + }); + + it("must pass a positive match", [&]{ + actualValue must be_gte(expectedValue); + actualValue must be_greater_than_or_equal_to(expectedValue); + }); + + it("must reject a negative match", [&]{ + AssertThrows(std::exception, [&]{ actualValue must_not be_gte(expectedValue); }()); + AssertThrows(std::exception, [&]{ actualValue must_not be_greater_than_or_equal_to(expectedValue); }()); + }); + }); + }); + + describe("and the expected value is a different, but comparable, built-in type", [&]{ + float expectedValue; + + describe("and the actual value is greater than the expected value", [&]{ + before_each([&]{ + expectedValue = 1.1; + }); + + it("must pass a positive match", [&]{ + actualValue must be_gte(expectedValue); + actualValue must be_greater_than_or_equal_to(expectedValue); + }); + + it("must reject a negative match", [&]{ + AssertThrows(std::exception, [&]{ actualValue must_not be_gte(expectedValue); }()); + AssertThrows(std::exception, [&]{ actualValue must_not be_greater_than_or_equal_to(expectedValue); }()); + }); + }); + + describe("and the actual value is less than the expected value", [&]{ + before_each([&]{ + expectedValue = 100.1; + }); + + it("must pass a negative match", [&]{ + actualValue must_not be_gte(expectedValue); + actualValue must_not be_greater_than_or_equal_to(expectedValue); + }); + + it("must reject a positive match", [&]{ + AssertThrows(std::exception, [&]{ actualValue must be_gte(expectedValue); }()); + AssertThrows(std::exception, [&]{ actualValue must be_greater_than_or_equal_to(expectedValue); }()); + }); + }); + + describe("and the actual value equals the expected value", [&]{ + before_each([&]{ + expectedValue = someInteger / 1.0; + }); + + it("must pass a positive match", [&]{ + actualValue must be_gte(expectedValue); + actualValue must be_greater_than_or_equal_to(expectedValue); + }); + + it("must reject a negative match", [&]{ + AssertThrows(std::exception, [&]{ actualValue must_not be_gte(expectedValue); }()); + AssertThrows(std::exception, [&]{ actualValue must_not be_greater_than_or_equal_to(expectedValue); }()); + }); + }); + }); + }); +}); + +SPEC_END |