Home | History | Annotate | Download | only in internal
      1 /*
      2  *  Created by Phil on 28/10/2010.
      3  *  Copyright 2010 Two Blue Cubes Ltd. All rights reserved.
      4  *
      5  *  Distributed under the Boost Software License, Version 1.0. (See accompanying
      6  *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
      7  */
      8 #ifndef TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED
      9 #define TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED
     10 
     11 #include <string>
     12 #include "catch_assertioninfo.h"
     13 #include "catch_result_type.h"
     14 #include "catch_common.h"
     15 #include "catch_stringref.h"
     16 #include "catch_assertionhandler.h"
     17 
     18 namespace Catch {
     19 
     20     struct AssertionResultData
     21     {
     22         AssertionResultData() = delete;
     23 
     24         AssertionResultData( ResultWas::OfType _resultType, LazyExpression const& _lazyExpression );
     25 
     26         std::string message;
     27         mutable std::string reconstructedExpression;
     28         LazyExpression lazyExpression;
     29         ResultWas::OfType resultType;
     30 
     31         std::string reconstructExpression() const;
     32     };
     33 
     34     class AssertionResult {
     35     public:
     36         AssertionResult() = delete;
     37         AssertionResult( AssertionInfo const& info, AssertionResultData const& data );
     38 
     39         bool isOk() const;
     40         bool succeeded() const;
     41         ResultWas::OfType getResultType() const;
     42         bool hasExpression() const;
     43         bool hasMessage() const;
     44         std::string getExpression() const;
     45         std::string getExpressionInMacro() const;
     46         bool hasExpandedExpression() const;
     47         std::string getExpandedExpression() const;
     48         std::string getMessage() const;
     49         SourceLineInfo getSourceInfo() const;
     50         StringRef getTestMacroName() const;
     51 
     52     //protected:
     53         AssertionInfo m_info;
     54         AssertionResultData m_resultData;
     55     };
     56 
     57 } // end namespace Catch
     58 
     59 #endif // TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED
     60