Merge pull request #1911 from BrukerJWD:isnice
PiperOrigin-RevId: 218384341
This commit is contained in:
		@@ -198,7 +198,6 @@ Google Test (the name is chosen to match `static_assert` in C++0x).
 | 
			
		||||
If you are writing a function that returns an `ACTION` object, you'll
 | 
			
		||||
need to know its type.  The type depends on the macro used to define
 | 
			
		||||
the action and the parameter types.  The rule is relatively simple:
 | 
			
		||||
 | 
			
		||||
| **Given Definition**     | **Expression**               | **Has Type**             |
 | 
			
		||||
|:-------------------------|:-----------------------------|:-------------------------|
 | 
			
		||||
| `ACTION(Foo)`            | `Foo()`                      | `FooAction`              |
 | 
			
		||||
 
 | 
			
		||||
@@ -399,6 +399,16 @@ class GTEST_API_ Mock {
 | 
			
		||||
  static bool VerifyAndClear(void* mock_obj)
 | 
			
		||||
      GTEST_LOCK_EXCLUDED_(internal::g_gmock_mutex);
 | 
			
		||||
 | 
			
		||||
  // Returns whether the mock was created as a naggy mock (default)
 | 
			
		||||
  static bool IsNaggy(void* mock_obj)
 | 
			
		||||
      GTEST_LOCK_EXCLUDED_(internal::g_gmock_mutex);
 | 
			
		||||
  // Returns whether the mock was created as a nice mock
 | 
			
		||||
  static bool IsNice(void* mock_obj)
 | 
			
		||||
      GTEST_LOCK_EXCLUDED_(internal::g_gmock_mutex);
 | 
			
		||||
  // Returns whether the mock was created as a strict mock
 | 
			
		||||
  static bool IsStrict(void* mock_obj)
 | 
			
		||||
      GTEST_LOCK_EXCLUDED_(internal::g_gmock_mutex);
 | 
			
		||||
 | 
			
		||||
 private:
 | 
			
		||||
  friend class internal::UntypedFunctionMockerBase;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -757,6 +757,19 @@ bool Mock::VerifyAndClearExpectationsLocked(void* mock_obj)
 | 
			
		||||
  return expectations_met;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool Mock::IsNaggy(void* mock_obj)
 | 
			
		||||
    GTEST_LOCK_EXCLUDED_(internal::g_gmock_mutex) {
 | 
			
		||||
  return Mock::GetReactionOnUninterestingCalls(mock_obj) == internal::kWarn;
 | 
			
		||||
}
 | 
			
		||||
bool Mock::IsNice(void* mock_obj)
 | 
			
		||||
    GTEST_LOCK_EXCLUDED_(internal::g_gmock_mutex) {
 | 
			
		||||
  return Mock::GetReactionOnUninterestingCalls(mock_obj) == internal::kAllow;
 | 
			
		||||
}
 | 
			
		||||
bool Mock::IsStrict(void* mock_obj)
 | 
			
		||||
    GTEST_LOCK_EXCLUDED_(internal::g_gmock_mutex) {
 | 
			
		||||
  return Mock::GetReactionOnUninterestingCalls(mock_obj) == internal::kFail;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Registers a mock object and a mock method it owns.
 | 
			
		||||
void Mock::Register(const void* mock_obj,
 | 
			
		||||
                    internal::UntypedFunctionMockerBase* mocker)
 | 
			
		||||
 
 | 
			
		||||
@@ -184,6 +184,13 @@ TEST(RawMockTest, InfoForUninterestingCall) {
 | 
			
		||||
  GMOCK_FLAG(verbose) = saved_flag;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TEST(RawMockTest, IsNaggy_IsNice_IsStrict) {
 | 
			
		||||
  MockFoo raw_foo;
 | 
			
		||||
  EXPECT_TRUE(Mock::IsNaggy(&raw_foo));
 | 
			
		||||
  EXPECT_FALSE(Mock::IsNice(&raw_foo));
 | 
			
		||||
  EXPECT_FALSE(Mock::IsStrict(&raw_foo));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tests that a nice mock generates no warning for uninteresting calls.
 | 
			
		||||
TEST(NiceMockTest, NoWarningForUninterestingCall) {
 | 
			
		||||
  NiceMock<MockFoo> nice_foo;
 | 
			
		||||
@@ -309,6 +316,13 @@ TEST(NiceMockTest, AcceptsClassNamedMock) {
 | 
			
		||||
}
 | 
			
		||||
#endif  // !GTEST_OS_SYMBIAN && !GTEST_OS_WINDOWS_MOBILE
 | 
			
		||||
 | 
			
		||||
TEST(NiceMockTest, IsNaggy_IsNice_IsStrict) {
 | 
			
		||||
  NiceMock<MockFoo> nice_foo;
 | 
			
		||||
  EXPECT_FALSE(Mock::IsNaggy(&nice_foo));
 | 
			
		||||
  EXPECT_TRUE(Mock::IsNice(&nice_foo));
 | 
			
		||||
  EXPECT_FALSE(Mock::IsStrict(&nice_foo));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if GTEST_HAS_STREAM_REDIRECTION
 | 
			
		||||
 | 
			
		||||
// Tests that a naggy mock generates warnings for uninteresting calls.
 | 
			
		||||
@@ -417,6 +431,13 @@ TEST(NaggyMockTest, AcceptsClassNamedMock) {
 | 
			
		||||
}
 | 
			
		||||
#endif  // !GTEST_OS_SYMBIAN && !GTEST_OS_WINDOWS_MOBILE
 | 
			
		||||
 | 
			
		||||
TEST(NaggyMockTest, IsNaggy_IsNice_IsStrict) {
 | 
			
		||||
  NaggyMock<MockFoo> naggy_foo;
 | 
			
		||||
  EXPECT_TRUE(Mock::IsNaggy(&naggy_foo));
 | 
			
		||||
  EXPECT_FALSE(Mock::IsNice(&naggy_foo));
 | 
			
		||||
  EXPECT_FALSE(Mock::IsStrict(&naggy_foo));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tests that a strict mock allows expected calls.
 | 
			
		||||
TEST(StrictMockTest, AllowsExpectedCall) {
 | 
			
		||||
  StrictMock<MockFoo> strict_foo;
 | 
			
		||||
@@ -506,5 +527,12 @@ TEST(StrictMockTest, AcceptsClassNamedMock) {
 | 
			
		||||
}
 | 
			
		||||
#endif  // !GTEST_OS_SYMBIAN && !GTEST_OS_WINDOWS_MOBILE
 | 
			
		||||
 | 
			
		||||
TEST(StrictMockTest, IsNaggy_IsNice_IsStrict) {
 | 
			
		||||
  StrictMock<MockFoo> strict_foo;
 | 
			
		||||
  EXPECT_FALSE(Mock::IsNaggy(&strict_foo));
 | 
			
		||||
  EXPECT_FALSE(Mock::IsNice(&strict_foo));
 | 
			
		||||
  EXPECT_TRUE(Mock::IsStrict(&strict_foo));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
}  // namespace gmock_nice_strict_test
 | 
			
		||||
}  // namespace testing
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user