| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | 
							
- //              Copyright Catch2 Authors
 
- // Distributed under the Boost Software License, Version 1.0.
 
- //   (See accompanying file LICENSE_1_0.txt or copy at
 
- //        https://www.boost.org/LICENSE_1_0.txt)
 
- // SPDX-License-Identifier: BSL-1.0
 
- #include <catch2/catch_test_macros.hpp>
 
- namespace {
 
-     static bool itDoesThis() { return true; }
 
-     static bool itDoesThat() { return true; }
 
-     // a trivial fixture example to support SCENARIO_METHOD tests
 
-     struct Fixture {
 
-         Fixture(): d_counter( 0 ) {}
 
-         int counter() { return d_counter++; }
 
-         int d_counter;
 
-     };
 
- }
 
- SCENARIO("Do that thing with the thing", "[Tags]") {
 
-     GIVEN("This stuff exists") {
 
-         // make stuff exist
 
-         AND_GIVEN("And some assumption") {
 
-             // Validate assumption
 
-             WHEN("I do this") {
 
-                 // do this
 
-                 THEN("it should do this") {
 
-                     REQUIRE(itDoesThis());
 
-                     AND_THEN("do that") {
 
-                         REQUIRE(itDoesThat());
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-     }
 
- }
 
- SCENARIO( "Vector resizing affects size and capacity",
 
-           "[vector][bdd][size][capacity]" ) {
 
-     GIVEN( "an empty vector" ) {
 
-         std::vector<int> v;
 
-         REQUIRE( v.size() == 0 );
 
-         WHEN( "it is made larger" ) {
 
-             v.resize( 10 );
 
-             THEN( "the size and capacity go up" ) {
 
-                 REQUIRE( v.size() == 10 );
 
-                 REQUIRE( v.capacity() >= 10 );
 
-                 AND_WHEN( "it is made smaller again" ) {
 
-                     v.resize( 5 );
 
-                     THEN(
 
-                         "the size goes down but the capacity stays the same" ) {
 
-                         REQUIRE( v.size() == 5 );
 
-                         REQUIRE( v.capacity() >= 10 );
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         WHEN( "we reserve more space" ) {
 
-             v.reserve( 10 );
 
-             THEN( "The capacity is increased but the size remains the same" ) {
 
-                 REQUIRE( v.capacity() >= 10 );
 
-                 REQUIRE( v.size() == 0 );
 
-             }
 
-         }
 
-     }
 
- }
 
- SCENARIO("This is a really long scenario name to see how the list command deals with wrapping",
 
-          "[very long tags][lots][long][tags][verbose]"
 
-                  "[one very long tag name that should cause line wrapping writing out using the list command]"
 
-                  "[anotherReallyLongTagNameButThisOneHasNoObviousWrapPointsSoShouldSplitWithinAWordUsingADashCharacter]") {
 
-     GIVEN("A section name that is so long that it cannot fit in a single console width") {
 
-         WHEN("The test headers are printed as part of the normal running of the scenario") {
 
-             THEN("The, deliberately very long and overly verbose (you see what I did there?) section names must wrap, along with an indent") {
 
-                 SUCCEED("boo!");
 
-             }
 
-         }
 
-     }
 
- }
 
- SCENARIO_METHOD(Fixture,
 
-                 "BDD tests requiring Fixtures to provide commonly-accessed data or methods",
 
-                 "[bdd][fixtures]") {
 
-     const int before(counter());
 
-     GIVEN("No operations precede me") {
 
-         REQUIRE(before == 0);
 
-         WHEN("We get the count") {
 
-             const int after(counter());
 
-             THEN("Subsequently values are higher") {
 
-                 REQUIRE(after > before);
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |