Googletest export
Add a matcher `testing::ReturnRoundRobin` which, on each call, returns the next element in the sequence, restarting at the beginning once it has reached the end. PiperOrigin-RevId: 276312136
This commit is contained in:
committed by
Gennadiy Civil
parent
1110c471ca
commit
37f3227831
@@ -73,6 +73,7 @@ using testing::Return;
|
||||
using testing::ReturnNull;
|
||||
using testing::ReturnRef;
|
||||
using testing::ReturnRefOfCopy;
|
||||
using testing::ReturnRoundRobin;
|
||||
using testing::SetArgPointee;
|
||||
using testing::SetArgumentPointee;
|
||||
using testing::Unused;
|
||||
@@ -670,6 +671,31 @@ TEST(ReturnRefOfCopyTest, IsCovariant) {
|
||||
EXPECT_NE(&derived, &a.Perform(std::make_tuple()));
|
||||
}
|
||||
|
||||
// Tests that ReturnRoundRobin(v) works with initializer lists
|
||||
TEST(ReturnRoundRobinTest, WorksForInitList) {
|
||||
Action<int()> ret = ReturnRoundRobin({1, 2, 3});
|
||||
|
||||
EXPECT_EQ(1, ret.Perform(std::make_tuple()));
|
||||
EXPECT_EQ(2, ret.Perform(std::make_tuple()));
|
||||
EXPECT_EQ(3, ret.Perform(std::make_tuple()));
|
||||
EXPECT_EQ(1, ret.Perform(std::make_tuple()));
|
||||
EXPECT_EQ(2, ret.Perform(std::make_tuple()));
|
||||
EXPECT_EQ(3, ret.Perform(std::make_tuple()));
|
||||
}
|
||||
|
||||
// Tests that ReturnRoundRobin(v) works with vectors
|
||||
TEST(ReturnRoundRobinTest, WorksForVector) {
|
||||
std::vector<double> v = {4.4, 5.5, 6.6};
|
||||
Action<double()> ret = ReturnRoundRobin(v);
|
||||
|
||||
EXPECT_EQ(4.4, ret.Perform(std::make_tuple()));
|
||||
EXPECT_EQ(5.5, ret.Perform(std::make_tuple()));
|
||||
EXPECT_EQ(6.6, ret.Perform(std::make_tuple()));
|
||||
EXPECT_EQ(4.4, ret.Perform(std::make_tuple()));
|
||||
EXPECT_EQ(5.5, ret.Perform(std::make_tuple()));
|
||||
EXPECT_EQ(6.6, ret.Perform(std::make_tuple()));
|
||||
}
|
||||
|
||||
// Tests that DoDefault() does the default action for the mock method.
|
||||
|
||||
class MockClass {
|
||||
|
||||
Reference in New Issue
Block a user