Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
catch_matchers_string.h
Go to the documentation of this file.
1/*
2 * Created by Phil Nash on 08/02/2017.
3 * Copyright (c) 2017 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_MATCHERS_STRING_H_INCLUDED
9#define TWOBLUECUBES_CATCH_MATCHERS_STRING_H_INCLUDED
10
11#include "catch_matchers.h"
12
13#include <string>
14
15namespace Catch {
16namespace Matchers {
17
18 namespace StdString {
19
20 struct CasedString
21 {
22 CasedString( std::string const& str, CaseSensitive::Choice caseSensitivity );
23 std::string adjustString( std::string const& str ) const;
24 std::string caseSensitivitySuffix() const;
25
27 std::string m_str;
28 };
29
30 struct StringMatcherBase : MatcherBase<std::string> {
31 StringMatcherBase( std::string const& operation, CasedString const& comparator );
32 std::string describe() const override;
33
35 std::string m_operation;
36 };
37
39 EqualsMatcher( CasedString const& comparator );
40 bool match( std::string const& source ) const override;
41 };
42 struct ContainsMatcher : StringMatcherBase {
43 ContainsMatcher( CasedString const& comparator );
44 bool match( std::string const& source ) const override;
45 };
46 struct StartsWithMatcher : StringMatcherBase {
47 StartsWithMatcher( CasedString const& comparator );
48 bool match( std::string const& source ) const override;
49 };
50 struct EndsWithMatcher : StringMatcherBase {
51 EndsWithMatcher( CasedString const& comparator );
52 bool match( std::string const& source ) const override;
53 };
54
55 struct RegexMatcher : MatcherBase<std::string> {
56 RegexMatcher( std::string regex, CaseSensitive::Choice caseSensitivity );
57 bool match( std::string const& matchee ) const override;
58 std::string describe() const override;
59
60 private:
61 std::string m_regex;
62 CaseSensitive::Choice m_caseSensitivity;
63 };
64
65 } // namespace StdString
66
67
68 // The following functions create the actual matcher objects.
69 // This allows the types to be inferred
70
71 StdString::EqualsMatcher Equals( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes );
72 StdString::ContainsMatcher Contains( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes );
73 StdString::EndsWithMatcher EndsWith( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes );
74 StdString::StartsWithMatcher StartsWith( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes );
75 StdString::RegexMatcher Matches( std::string const& regex, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes );
76
77} // namespace Matchers
78} // namespace Catch
79
80#endif // TWOBLUECUBES_CATCH_MATCHERS_STRING_H_INCLUDED
StdString::StartsWithMatcher StartsWith(std::string const &str, CaseSensitive::Choice caseSensitivity)
StdString::EqualsMatcher Equals(std::string const &str, CaseSensitive::Choice caseSensitivity)
StdString::EndsWithMatcher EndsWith(std::string const &str, CaseSensitive::Choice caseSensitivity)
StdString::ContainsMatcher Contains(std::string const &str, CaseSensitive::Choice caseSensitivity)
StdString::RegexMatcher Matches(std::string const &regex, CaseSensitive::Choice caseSensitivity)
const CharType(& source)[N]
Definition pointer.h:1204
std::string adjustString(std::string const &str) const
CasedString(std::string const &str, CaseSensitive::Choice caseSensitivity)
bool match(std::string const &source) const override
bool match(std::string const &source) const override
bool match(std::string const &source) const override
bool match(std::string const &matchee) const override
RegexMatcher(std::string regex, CaseSensitive::Choice caseSensitivity)
bool match(std::string const &source) const override
StringMatcherBase(std::string const &operation, CasedString const &comparator)