Implements .With() as a synonym of .WithArguments(); implements AllArgs(m) as a synonym of m; relies on gtest-port to #include tuple; fixes a compatibility with Symbian.

This commit is contained in:
zhanyong.wan
2009-06-09 06:09:53 +00:00
parent 2661c6821a
commit bf55085d45
11 changed files with 176 additions and 101 deletions

View File

@@ -457,7 +457,7 @@ TEST(ElementsAreTest, WorksWithNativeArrayPassedAsPointerAndSize) {
NativeArrayPassedAsPointerAndSize helper;
EXPECT_CALL(helper, Helper(_, _))
.WithArguments(ElementsAre(0, 1));
.With(ElementsAre(0, 1));
helper.Helper(array, 2);
}

View File

@@ -62,6 +62,7 @@ namespace gmock_matchers_test {
using std::stringstream;
using std::tr1::make_tuple;
using testing::A;
using testing::AllArgs;
using testing::AllOf;
using testing::An;
using testing::AnyOf;
@@ -1689,6 +1690,35 @@ TEST(ValueTest, WorksWithMonomorphicMatcher) {
EXPECT_FALSE(Value(1, ref_n));
}
TEST(AllArgsTest, WorksForTuple) {
EXPECT_THAT(make_tuple(1, 2L), AllArgs(Lt()));
EXPECT_THAT(make_tuple(2L, 1), Not(AllArgs(Lt())));
}
TEST(AllArgsTest, WorksForNonTuple) {
EXPECT_THAT(42, AllArgs(Gt(0)));
EXPECT_THAT('a', Not(AllArgs(Eq('b'))));
}
class AllArgsHelper {
public:
MOCK_METHOD2(Helper, int(char x, int y));
};
TEST(AllArgsTest, WorksInWithClause) {
AllArgsHelper helper;
ON_CALL(helper, Helper(_, _))
.With(AllArgs(Lt()))
.WillByDefault(Return(1));
EXPECT_CALL(helper, Helper(_, _));
EXPECT_CALL(helper, Helper(_, _))
.With(AllArgs(Gt()))
.WillOnce(Return(2));
EXPECT_EQ(1, helper.Helper('\1', 2));
EXPECT_EQ(2, helper.Helper('a', 1));
}
// Tests that ASSERT_THAT() and EXPECT_THAT() work when the value
// matches the matcher.
TEST(MatcherAssertionTest, WorksWhenMatcherIsSatisfied) {

View File

@@ -72,6 +72,7 @@ using testing::Const;
using testing::DoAll;
using testing::DoDefault;
using testing::GMOCK_FLAG(verbose);
using testing::Gt;
using testing::InSequence;
using testing::Invoke;
using testing::InvokeWithoutArgs;
@@ -96,6 +97,7 @@ class MockA {
MOCK_METHOD1(DoA, void(int n)); // NOLINT
MOCK_METHOD1(ReturnResult, Result(int n)); // NOLINT
MOCK_METHOD2(Binary, bool(int x, int y)); // NOLINT
MOCK_METHOD2(ReturnInt, int(int x, int y)); // NOLINT
};
class MockB {
@@ -171,25 +173,40 @@ TEST(OnCallSyntaxTest, EvaluatesSecondArgumentOnce) {
// Tests that the syntax of ON_CALL() is enforced at run time.
TEST(OnCallSyntaxTest, WithArgumentsIsOptional) {
TEST(OnCallSyntaxTest, WithIsOptional) {
MockA a;
ON_CALL(a, DoA(5))
.WillByDefault(Return());
ON_CALL(a, DoA(_))
.WithArguments(_)
.With(_)
.WillByDefault(Return());
}
TEST(OnCallSyntaxTest, WithArgumentsCanAppearAtMostOnce) {
TEST(OnCallSyntaxTest, WithCanAppearAtMostOnce) {
MockA a;
EXPECT_NONFATAL_FAILURE({ // NOLINT
ON_CALL(a, ReturnResult(_))
.WithArguments(_)
.WithArguments(_)
.With(_)
.With(_)
.WillByDefault(Return(Result()));
}, ".WithArguments() cannot appear more than once in an ON_CALL()");
}, ".With() cannot appear more than once in an ON_CALL()");
}
TEST(OnCallSyntaxTest, WithArgumentsIsSynonymOfWith) {
MockA a;
ON_CALL(a, ReturnInt(_, _))
.WithArguments(Lt())
.WillByDefault(Return(1));
ON_CALL(a, ReturnInt(_, _))
.WithArguments(Gt())
.WillByDefault(Return(2));
EXPECT_CALL(a, ReturnInt(_, _))
.Times(AnyNumber());
EXPECT_EQ(1, a.ReturnInt(1, 2));
EXPECT_EQ(2, a.ReturnInt(2, 1));
}
#if GTEST_HAS_DEATH_TEST
@@ -237,51 +254,61 @@ TEST(ExpectCallSyntaxTest, EvaluatesSecondArgumentOnce) {
// Tests that the syntax of EXPECT_CALL() is enforced at run time.
TEST(ExpectCallSyntaxTest, WithArgumentsIsOptional) {
TEST(ExpectCallSyntaxTest, WithIsOptional) {
MockA a;
EXPECT_CALL(a, DoA(5))
.Times(0);
EXPECT_CALL(a, DoA(6))
.WithArguments(_)
.With(_)
.Times(0);
}
TEST(ExpectCallSyntaxTest, WithArgumentsCanAppearAtMostOnce) {
TEST(ExpectCallSyntaxTest, WithCanAppearAtMostOnce) {
MockA a;
EXPECT_NONFATAL_FAILURE({ // NOLINT
EXPECT_CALL(a, DoA(6))
.WithArguments(_)
.WithArguments(_);
}, ".WithArguments() cannot appear more than once in "
"an EXPECT_CALL()");
.With(_)
.With(_);
}, ".With() cannot appear more than once in an EXPECT_CALL()");
a.DoA(6);
}
TEST(ExpectCallSyntaxTest, WithArgumentsMustBeFirstClause) {
TEST(ExpectCallSyntaxTest, WithMustBeFirstClause) {
MockA a;
EXPECT_NONFATAL_FAILURE({ // NOLINT
EXPECT_CALL(a, DoA(1))
.Times(1)
.WithArguments(_);
}, ".WithArguments() must be the first clause in an "
"EXPECT_CALL()");
.With(_);
}, ".With() must be the first clause in an EXPECT_CALL()");
a.DoA(1);
EXPECT_NONFATAL_FAILURE({ // NOLINT
EXPECT_CALL(a, DoA(2))
.WillOnce(Return())
.WithArguments(_);
}, ".WithArguments() must be the first clause in an "
"EXPECT_CALL()");
.With(_);
}, ".With() must be the first clause in an EXPECT_CALL()");
a.DoA(2);
}
TEST(ExpectCallSyntaxTest, WithArgumentsIsSynonymOfWith) {
MockA a;
EXPECT_CALL(a, ReturnInt(_, _))
.WithArguments(Lt())
.WillOnce(Return(1));
EXPECT_CALL(a, ReturnInt(_, _))
.WithArguments(Gt())
.WillOnce(Return(2));
EXPECT_EQ(1, a.ReturnInt(1, 2));
EXPECT_EQ(2, a.ReturnInt(2, 1));
}
TEST(ExpectCallSyntaxTest, TimesCanBeInferred) {
MockA a;

View File

@@ -120,6 +120,7 @@
#include <errno.h>
#endif
#include <gmock/internal/gmock-port.h>
#include <gtest/gtest.h>
#include <iostream>
#include <vector>

View File

@@ -177,19 +177,19 @@ TEST_F(GMockOutputTest, MismatchArguments) {
foo_.Bar(s, 0, 0);
}
TEST_F(GMockOutputTest, MismatchWithArguments) {
TEST_F(GMockOutputTest, MismatchWith) {
EXPECT_CALL(foo_, Bar2(Ge(2), Ge(1)))
.WithArguments(Ge());
.With(Ge());
foo_.Bar2(2, 3); // Mismatch WithArguments()
foo_.Bar2(2, 3); // Mismatch With()
foo_.Bar2(2, 1);
}
TEST_F(GMockOutputTest, MismatchArgumentsAndWithArguments) {
TEST_F(GMockOutputTest, MismatchArgumentsAndWith) {
EXPECT_CALL(foo_, Bar2(Ge(2), Ge(1)))
.WithArguments(Ge());
.With(Ge());
foo_.Bar2(1, 3); // Mismatch arguments and mismatch WithArguments()
foo_.Bar2(1, 3); // Mismatch arguments and mismatch With()
foo_.Bar2(2, 1);
}

View File

@@ -174,7 +174,7 @@ FILE:#:
Expected: to be called once
Actual: never called - unsatisfied and active
[ FAILED ] GMockOutputTest.MismatchArguments
[ RUN ] GMockOutputTest.MismatchWithArguments
[ RUN ] GMockOutputTest.MismatchWith
unknown file: Failure
Unexpected mock function call - returning default value.
@@ -187,8 +187,8 @@ FILE:#:
Actual: don't match
Expected: to be called once
Actual: never called - unsatisfied and active
[ FAILED ] GMockOutputTest.MismatchWithArguments
[ RUN ] GMockOutputTest.MismatchArgumentsAndWithArguments
[ FAILED ] GMockOutputTest.MismatchWith
[ RUN ] GMockOutputTest.MismatchArgumentsAndWith
unknown file: Failure
Unexpected mock function call - returning default value.
@@ -203,7 +203,7 @@ FILE:#:
Actual: don't match
Expected: to be called once
Actual: never called - unsatisfied and active
[ FAILED ] GMockOutputTest.MismatchArgumentsAndWithArguments
[ FAILED ] GMockOutputTest.MismatchArgumentsAndWith
[ RUN ] GMockOutputTest.UnexpectedCallWithDefaultAction
unknown file: Failure
@@ -290,8 +290,8 @@ Stack trace:
[ FAILED ] GMockOutputTest.UnsatisfiedPrerequisites
[ FAILED ] GMockOutputTest.UnsatisfiedExpectation
[ FAILED ] GMockOutputTest.MismatchArguments
[ FAILED ] GMockOutputTest.MismatchWithArguments
[ FAILED ] GMockOutputTest.MismatchArgumentsAndWithArguments
[ FAILED ] GMockOutputTest.MismatchWith
[ FAILED ] GMockOutputTest.MismatchArgumentsAndWith
[ FAILED ] GMockOutputTest.UnexpectedCallWithDefaultAction
[ FAILED ] GMockOutputTest.ExcessiveCallWithDefaultAction