/* * Created by Phil on 14/08/2012. * 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) */ #ifndef TWOBLUECUBES_CATCH_TESTCASEINFO_HPP_INCLUDED #define TWOBLUECUBES_CATCH_TESTCASEINFO_HPP_INCLUDED #include "catch_test_case_info.h" #include "catch_interfaces_testcase.h" namespace Catch { TestCaseInfo::TestCaseInfo( ITestCase* testCase, const char* name, const char* description, const SourceLineInfo& lineInfo ) : m_test( testCase ), m_name( name ), m_description( description ), m_lineInfo( lineInfo ), m_isHidden( startsWith( name, "./" ) ) {} TestCaseInfo::TestCaseInfo() : m_test( NULL ), m_name(), m_description(), m_isHidden( false ) {} TestCaseInfo::TestCaseInfo( const TestCaseInfo& other, const std::string& name ) : m_test( other.m_test ), m_name( name ), m_description( other.m_description ), m_lineInfo( other.m_lineInfo ), m_isHidden( other.m_isHidden ) {} TestCaseInfo::TestCaseInfo( const TestCaseInfo& other ) : m_test( other.m_test ), m_name( other.m_name ), m_description( other.m_description ), m_lineInfo( other.m_lineInfo ), m_isHidden( other.m_isHidden ) {} void TestCaseInfo::invoke() const { m_test->invoke(); } const std::string& TestCaseInfo::getName() const { return m_name; } const std::string& TestCaseInfo::getDescription() const { return m_description; } const SourceLineInfo& TestCaseInfo::getLineInfo() const { return m_lineInfo; } bool TestCaseInfo::isHidden() const { return m_isHidden; } void TestCaseInfo::swap( TestCaseInfo& other ) { m_test.swap( other.m_test ); m_name.swap( other.m_name ); m_description.swap( other.m_description ); m_lineInfo.swap( other.m_lineInfo ); } bool TestCaseInfo::operator == ( const TestCaseInfo& other ) const { return m_test.get() == other.m_test.get() && m_name == other.m_name; } bool TestCaseInfo::operator < ( const TestCaseInfo& other ) const { return m_name < other.m_name; } TestCaseInfo& TestCaseInfo::operator = ( const TestCaseInfo& other ) { TestCaseInfo temp( other ); swap( temp ); return *this; } } #endif // TWOBLUECUBES_CATCH_TESTCASEINFO_HPP_INCLUDED