Skip to content

Commit

Permalink
update r722
Browse files Browse the repository at this point in the history
  • Loading branch information
srz-zumix committed Oct 15, 2014
1 parent d8d2a49 commit 7782b71
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 4 deletions.
3 changes: 2 additions & 1 deletion CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ Changes for 1.11.0:
* Matcher に Eq,Ne,Le,Lt,Ge,Gt,IsNull,NotNull を追加
* Matcher に StrEq,StrNe,StrCaseEq,StrCaseNe,HasSubstr を追加
* Matcher に FloatEq,DoubleEq,NanSensitiveFloatEq,NanSensitiveDoubleEq を追加
* Matcher に Pointee を追加
* コンテナMatcher に Each,ElementsAre,ElementsAreArray を追加
* メンバーMatcher に Key,Pair,Field,Property を追加
* ワイルドカードMatcher A,_ を追加
* ワイルドカードMatcher A,_ を追加

** 修正
* IUTEST_*_FLOAT_EQ,DOUBLE_EQ で NAN の比較が真を返す不具合を修正
Expand Down
2 changes: 1 addition & 1 deletion doc/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ PROJECT_NAME = iutest
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = 1.10.99.22
PROJECT_NUMBER = 1.10.99.23

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
43 changes: 43 additions & 0 deletions include/iutest_matcher.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1005,6 +1005,42 @@ class PairMatcher : public IMatcher
const T2& m_m2;
};

/**
* @brief Pointee matcher
*/
template<typename T>
class PointeeMatcher : public IMatcher
{
public:
PointeeMatcher(const T& expected) : m_expected(expected) {}

public:
template<typename U>
AssertionResult operator ()(const U& actual) const
{
if( Check(actual) ) return AssertionSuccess();
return AssertionFailure() << WitchIs();
}

public:
::std::string WitchIs(void) const IUTEST_CXX_OVERRIDE
{
iu_global_format_stringstream strm;
strm << "Pointee: " << m_expected;
return strm.str();
}
private:
template<typename U>
bool Check(const U& actual) const
{
return static_cast<bool>(CastToMatcher(m_expected)(*actual));
}
private:
IUTEST_PP_DISALLOW_ASSIGN(PointeeMatcher);

const T& m_expected;
};

/**
* @brief Any matcher
*/
Expand Down Expand Up @@ -1585,6 +1621,13 @@ detail::FieldMatcher<F, T> Field(const F& field, const T& expected) { return det
template<typename P, typename T>
detail::PropertyMatcher<P, T> Property(const P& prop, const T& expected) { return detail::PropertyMatcher<P, T>(prop, expected); }

/**
* @ingroup MATCHERS
* @brief Make Pointee matcher
*/
template<typename T>
detail::PointeeMatcher<T> Pointee(const T& expected) { return detail::PointeeMatcher<T>(expected); }

/**
* @ingroup MATCHERS
* @brief Make Any matcher
Expand Down
5 changes: 3 additions & 2 deletions include/iutest_ver.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@

//======================================================================
// define
#define IUTEST_VER 0x01109922u //!< iutest version 1.10.99.22
#define IUTEST_VER 0x01109923u //!< iutest version 1.10.99.23
#define IUTEST_MAJORVER 0x01u //!< Major Version
#define IUTEST_MINORVER 0x10u //!< Minor Version
#define IUTEST_BUILD 0x99u //!< Build
#define IUTEST_REVISION 0x22u //!< Revision
#define IUTEST_REVISION 0x23u //!< Revision

/**
* @mainpage
Expand Down Expand Up @@ -120,6 +120,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<li>Matcher に Eq,Ne,Le,Lt,Ge,Gt,IsNull,NotNull を追加</li>
<li>Matcher に StrEq,StrNe,StrCaseEq,StrCaseNe,HasSubstr を追加</li>
<li>Matcher に FloatEq,DoubleEq,NanSensitiveFloatEq,NanSensitiveDoubleEq を追加</li>
<li>Matcher に Pointee を追加</li>
<li>コンテナMatcher に Each,ElementsAre,ElementsAreArray を追加</li>
<li>コンテナMatcher の条件に Matcher を使えるように修正</li>
<li>メンバーMatcher に Key,Pair,Field を追加</li>
Expand Down
12 changes: 12 additions & 0 deletions test/iutest_matcher_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,12 @@ IUTEST(Matcher, Propetry)
IUTEST_EXPECT_THAT(mx, Each(Pair(Le(10), Property(&X::GetA, Ge(0)))));
}

IUTEST(Matcher, Pointee)
{
IUTEST_EXPECT_THAT(a, Pointee(0));
IUTEST_EXPECT_THAT(a, Pointee(Ge(0)));
}

IUTEST(Matcher, _)
{
IUTEST_EXPECT_THAT(42, _);
Expand Down Expand Up @@ -398,6 +404,12 @@ IUTEST(MatcherFailure, Property)
IUTEST_EXPECT_FATAL_FAILURE( IUTEST_ASSERT_THAT( x, Property(&X::GetA, Ne(1))), "Property: Ne: 1" );
}

IUTEST(MatcherFailure, Pointee)
{
IUTEST_EXPECT_FATAL_FAILURE( IUTEST_ASSERT_THAT(a, Pointee(1)), "Pointee: 1");
IUTEST_EXPECT_FATAL_FAILURE( IUTEST_ASSERT_THAT(a, Pointee(Gt(0))), "Pointee: Gt: 0");
}

IUTEST(MatcherFailure, A)
{
IUTEST_EXPECT_FATAL_FAILURE( IUTEST_ASSERT_THAT("hoge", A<int>()), "A: ");
Expand Down

0 comments on commit 7782b71

Please sign in to comment.