diff options
Diffstat (limited to 'grpc/third_party/abseil-cpp/absl/random/mocking_bit_gen_test.cc')
-rw-r--r-- | grpc/third_party/abseil-cpp/absl/random/mocking_bit_gen_test.cc | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/grpc/third_party/abseil-cpp/absl/random/mocking_bit_gen_test.cc b/grpc/third_party/abseil-cpp/absl/random/mocking_bit_gen_test.cc index f0ffc9ac..f63b6e42 100644 --- a/grpc/third_party/abseil-cpp/absl/random/mocking_bit_gen_test.cc +++ b/grpc/third_party/abseil-cpp/absl/random/mocking_bit_gen_test.cc @@ -26,6 +26,8 @@ #include "absl/random/random.h" namespace { + +using ::testing::_; using ::testing::Ne; using ::testing::Return; @@ -344,4 +346,47 @@ TEST(MockingBitGen, InSequenceSucceedsInOrder) { EXPECT_EQ(absl::Poisson<int>(gen, 2.0), 4); } +TEST(MockingBitGen, NiceMock) { + ::testing::NiceMock<absl::MockingBitGen> gen; + ON_CALL(absl::MockUniform<int>(), Call(gen, _, _)).WillByDefault(Return(145)); + + ON_CALL(absl::MockPoisson<int>(), Call(gen, _)).WillByDefault(Return(3)); + + EXPECT_EQ(absl::Uniform(gen, 1, 1000), 145); + EXPECT_EQ(absl::Uniform(gen, 10, 1000), 145); + EXPECT_EQ(absl::Uniform(gen, 100, 1000), 145); +} + +TEST(MockingBitGen, NaggyMock) { + // This is difficult to test, as only the output matters, so just verify + // that ON_CALL can be installed. Anything else requires log inspection. + ::testing::NaggyMock<absl::MockingBitGen> gen; + + ON_CALL(absl::MockUniform<int>(), Call(gen, _, _)).WillByDefault(Return(145)); + ON_CALL(absl::MockPoisson<int>(), Call(gen, _)).WillByDefault(Return(3)); + + EXPECT_EQ(absl::Uniform(gen, 1, 1000), 145); +} + +TEST(MockingBitGen, StrictMock_NotEnough) { + EXPECT_NONFATAL_FAILURE( + []() { + ::testing::StrictMock<absl::MockingBitGen> gen; + EXPECT_CALL(absl::MockUniform<int>(), Call(gen, _, _)) + .WillOnce(Return(145)); + }(), + "unsatisfied and active"); +} + +TEST(MockingBitGen, StrictMock_TooMany) { + ::testing::StrictMock<absl::MockingBitGen> gen; + + EXPECT_CALL(absl::MockUniform<int>(), Call(gen, _, _)).WillOnce(Return(145)); + EXPECT_EQ(absl::Uniform(gen, 1, 1000), 145); + + EXPECT_NONFATAL_FAILURE( + [&]() { EXPECT_EQ(absl::Uniform(gen, 10, 1000), 0); }(), + "over-saturated and active"); +} + } // namespace |