/* * Created by Phil on 07/01/2011. * Copyright 2011 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) */ #ifndef TWOBLUECUBES_CATCH_INTERFACES_CAPTURE_H_INCLUDED #define TWOBLUECUBES_CATCH_INTERFACES_CAPTURE_H_INCLUDED #include #include "catch_result_type.h" #include "catch_common.h" namespace Catch { class TestCase; class AssertionResult; class ScopedMessageBuilder; struct AssertionInfo; struct SectionInfo; struct SectionEndInfo; struct MessageInfo; struct Counts; struct IConfig; struct IRunContext { virtual ~IRunContext(); virtual void assertionEnded( AssertionResult const& result ) = 0; virtual bool sectionStarted( SectionInfo const& sectionInfo, Counts& assertions ) = 0; virtual void sectionEnded( SectionEndInfo const& endInfo ) = 0; virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) = 0; virtual void pushScopedMessage( MessageInfo const& message ) = 0; virtual void popScopedMessage( MessageInfo const& message ) = 0; virtual void handleFatalErrorCondition( std::string const& message ) = 0; virtual std::string getCurrentTestName() const = 0; virtual AssertionResult const* getLastResult() const = 0; virtual bool isAborting() const = 0; virtual IConfig const& config() const = 0; }; IRunContext* tryGetCurrentRunContext(); IRunContext& getCurrentRunContext(); IConfig const* getCurrentConfig(); } #endif // TWOBLUECUBES_CATCH_INTERFACES_CAPTURE_H_INCLUDED