| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | 
							- /*
 
-  *  Created by Phil on 8/8/2017.
 
-  *  Copyright 2017 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_ASSERTIONHANDLER_H_INCLUDED
 
- #define TWOBLUECUBES_CATCH_ASSERTIONHANDLER_H_INCLUDED
 
- #include "catch_assertioninfo.h"
 
- #include "catch_decomposer.h"
 
- #include "catch_interfaces_capture.h"
 
- namespace Catch {
 
-     struct TestFailureException{};
 
-     struct AssertionResultData;
 
-     struct IResultCapture;
 
-     class RunContext;
 
-     class LazyExpression {
 
-         friend class AssertionHandler;
 
-         friend struct AssertionStats;
 
-         friend class RunContext;
 
-         ITransientExpression const* m_transientExpression = nullptr;
 
-         bool m_isNegated;
 
-     public:
 
-         LazyExpression( bool isNegated );
 
-         LazyExpression( LazyExpression const& other );
 
-         LazyExpression& operator = ( LazyExpression const& ) = delete;
 
-         explicit operator bool() const;
 
-         friend auto operator << ( std::ostream& os, LazyExpression const& lazyExpr ) -> std::ostream&;
 
-     };
 
-     struct AssertionReaction {
 
-         bool shouldDebugBreak = false;
 
-         bool shouldThrow = false;
 
-     };
 
-     class AssertionHandler {
 
-         AssertionInfo m_assertionInfo;
 
-         AssertionReaction m_reaction;
 
-         bool m_completed = false;
 
-         IResultCapture& m_resultCapture;
 
-     public:
 
-         AssertionHandler
 
-             (   StringRef const& macroName,
 
-                 SourceLineInfo const& lineInfo,
 
-                 StringRef capturedExpression,
 
-                 ResultDisposition::Flags resultDisposition );
 
-         ~AssertionHandler() {
 
-             if ( !m_completed ) {
 
-                 m_resultCapture.handleIncomplete( m_assertionInfo );
 
-             }
 
-         }
 
-         template<typename T>
 
-         void handleExpr( ExprLhs<T> const& expr ) {
 
-             handleExpr( expr.makeUnaryExpr() );
 
-         }
 
-         void handleExpr( ITransientExpression const& expr );
 
-         void handleMessage(ResultWas::OfType resultType, StringRef const& message);
 
-         void handleExceptionThrownAsExpected();
 
-         void handleUnexpectedExceptionNotThrown();
 
-         void handleExceptionNotThrownAsExpected();
 
-         void handleThrowingCallSkipped();
 
-         void handleUnexpectedInflightException();
 
-         void complete();
 
-         void setCompleted();
 
-         // query
 
-         auto allowThrows() const -> bool;
 
-     };
 
-     void handleExceptionMatchExpr( AssertionHandler& handler, std::string const& str, StringRef const& matcherString );
 
- } // namespace Catch
 
- #endif // TWOBLUECUBES_CATCH_ASSERTIONHANDLER_H_INCLUDED
 
 
  |