1 /* 2 * Created by Phil on 13/7/2015. 3 * Copyright 2015 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_WILDCARD_PATTERN_HPP_INCLUDED 9 #define TWOBLUECUBES_CATCH_WILDCARD_PATTERN_HPP_INCLUDED 10 11 #include "catch_common.h" 12 13 14 namespace Catch 15 { 16 class WildcardPattern { 17 enum WildcardPosition { 18 NoWildcard = 0, 19 WildcardAtStart = 1, 20 WildcardAtEnd = 2, 21 WildcardAtBothEnds = WildcardAtStart | WildcardAtEnd 22 }; 23 24 public: 25 26 WildcardPattern( std::string const& pattern, CaseSensitive::Choice caseSensitivity ); 27 virtual ~WildcardPattern() = default; 28 virtual bool matches( std::string const& str ) const; 29 30 private: 31 std::string normaliseString( std::string const& str ) const; 32 CaseSensitive::Choice m_caseSensitivity; 33 WildcardPosition m_wildcard = NoWildcard; 34 std::string m_pattern; 35 }; 36 } 37 38 #endif // TWOBLUECUBES_CATCH_WILDCARD_PATTERN_HPP_INCLUDED 39