| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | 
							- /*
 
-  *  Created by Phil on 8/8/12
 
-  *  Copyright 2012 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_assertionresult.h"
 
- namespace Catch {
 
-     AssertionResultData::AssertionResultData(ResultWas::OfType _resultType, LazyExpression const & _lazyExpression):
 
-         lazyExpression(_lazyExpression),
 
-         resultType(_resultType) {}
 
-     std::string AssertionResultData::reconstructExpression() const {
 
-         if( reconstructedExpression.empty() ) {
 
-             if( lazyExpression ) {
 
-                 ReusableStringStream rss;
 
-                 rss << lazyExpression;
 
-                 reconstructedExpression = rss.str();
 
-             }
 
-         }
 
-         return reconstructedExpression;
 
-     }
 
-     AssertionResult::AssertionResult( AssertionInfo const& info, AssertionResultData const& data )
 
-     :   m_info( info ),
 
-         m_resultData( data )
 
-     {}
 
-     // Result was a success
 
-     bool AssertionResult::succeeded() const {
 
-         return Catch::isOk( m_resultData.resultType );
 
-     }
 
-     // Result was a success, or failure is suppressed
 
-     bool AssertionResult::isOk() const {
 
-         return Catch::isOk( m_resultData.resultType ) || shouldSuppressFailure( m_info.resultDisposition );
 
-     }
 
-     ResultWas::OfType AssertionResult::getResultType() const {
 
-         return m_resultData.resultType;
 
-     }
 
-     bool AssertionResult::hasExpression() const {
 
-         return !m_info.capturedExpression.empty();
 
-     }
 
-     bool AssertionResult::hasMessage() const {
 
-         return !m_resultData.message.empty();
 
-     }
 
-     std::string AssertionResult::getExpression() const {
 
-         // Possibly overallocating by 3 characters should be basically free
 
-         std::string expr; expr.reserve(m_info.capturedExpression.size() + 3);
 
-         if (isFalseTest(m_info.resultDisposition)) {
 
-             expr += "!(";
 
-         }
 
-         expr += m_info.capturedExpression;
 
-         if (isFalseTest(m_info.resultDisposition)) {
 
-             expr += ')';
 
-         }
 
-         return expr;
 
-     }
 
-     std::string AssertionResult::getExpressionInMacro() const {
 
-         std::string expr;
 
-         if( m_info.macroName.empty() )
 
-             expr = static_cast<std::string>(m_info.capturedExpression);
 
-         else {
 
-             expr.reserve( m_info.macroName.size() + m_info.capturedExpression.size() + 4 );
 
-             expr += m_info.macroName;
 
-             expr += "( ";
 
-             expr += m_info.capturedExpression;
 
-             expr += " )";
 
-         }
 
-         return expr;
 
-     }
 
-     bool AssertionResult::hasExpandedExpression() const {
 
-         return hasExpression() && getExpandedExpression() != getExpression();
 
-     }
 
-     std::string AssertionResult::getExpandedExpression() const {
 
-         std::string expr = m_resultData.reconstructExpression();
 
-         return expr.empty()
 
-                 ? getExpression()
 
-                 : expr;
 
-     }
 
-     std::string AssertionResult::getMessage() const {
 
-         return m_resultData.message;
 
-     }
 
-     SourceLineInfo AssertionResult::getSourceInfo() const {
 
-         return m_info.lineInfo;
 
-     }
 
-     StringRef AssertionResult::getTestMacroName() const {
 
-         return m_info.macroName;
 
-     }
 
- } // end namespace Catch
 
 
  |