mirror of https://github.com/procxx/kepka.git
				
				
				
			
		
			
				
	
	
		
			99 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C++
		
	
	
	
/*
 | 
						|
 *  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[0] != 0;
 | 
						|
    }
 | 
						|
 | 
						|
    bool AssertionResult::hasMessage() const {
 | 
						|
        return !m_resultData.message.empty();
 | 
						|
    }
 | 
						|
 | 
						|
    std::string AssertionResult::getExpression() const {
 | 
						|
        if( isFalseTest( m_info.resultDisposition ) )
 | 
						|
            return "!(" + m_info.capturedExpression + ")";
 | 
						|
        else
 | 
						|
            return m_info.capturedExpression;
 | 
						|
    }
 | 
						|
 | 
						|
    std::string AssertionResult::getExpressionInMacro() const {
 | 
						|
        std::string expr;
 | 
						|
        if( m_info.macroName[0] == 0 )
 | 
						|
            expr = 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
 |