forked from catchorg/Catch2
		
	This means that all tabs used in indentation are now 4 spaces and that there should be no more trailing whitespace. Ill also look into creating a pre-commit hook that will prevent this from happening in the future. Fixes #105
		
			
				
	
	
		
			104 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
 *  Created by Phil on 29/11/2010.
 | 
						|
 *  Copyright 2010 Two Blue Cubes Ltd. All rights reserved.
 | 
						|
 *
 | 
						|
 *  Distributed under the Boost Software License, Version 1.0. (See accompanying
 | 
						|
 *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 | 
						|
 */
 | 
						|
 | 
						|
#include "catch.hpp"
 | 
						|
 | 
						|
inline bool itDoesThis(){ return true; }
 | 
						|
inline bool itDoesThat(){ return true; }
 | 
						|
 | 
						|
SCENARIO( "Do that thing with the thing", "[Tags]" ) {
 | 
						|
    GIVEN( "This stuff exists" ) {
 | 
						|
        // make stuff exist
 | 
						|
        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!");
 | 
						|
}
 | 
						|
 | 
						|
namespace {
 | 
						|
 | 
						|
// a trivial fixture example to support SCENARIO_METHOD tests
 | 
						|
struct Fixture
 | 
						|
{
 | 
						|
    Fixture()
 | 
						|
    : d_counter(0)
 | 
						|
    {
 | 
						|
    }
 | 
						|
 | 
						|
    int counter()
 | 
						|
    {
 | 
						|
        return d_counter++;
 | 
						|
    }
 | 
						|
 | 
						|
    int d_counter;
 | 
						|
};
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
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);
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |