diff options
Diffstat (limited to 'googlemock/test')
| -rw-r--r-- | googlemock/test/gmock-nice-strict_test.cc | 50 | 
1 files changed, 47 insertions, 3 deletions
| diff --git a/googlemock/test/gmock-nice-strict_test.cc b/googlemock/test/gmock-nice-strict_test.cc index 7812f626..c4194946 100644 --- a/googlemock/test/gmock-nice-strict_test.cc +++ b/googlemock/test/gmock-nice-strict_test.cc @@ -32,9 +32,10 @@  #include "gmock/gmock-generated-nice-strict.h"  #include <string> +#include <utility>  #include "gmock/gmock.h" -#include "gtest/gtest.h"  #include "gtest/gtest-spi.h" +#include "gtest/gtest.h"  // This must not be defined inside the ::testing namespace, or it will  // clash with ::testing::Mock. @@ -114,6 +115,24 @@ class MockBar {    GTEST_DISALLOW_COPY_AND_ASSIGN_(MockBar);  }; +#if GTEST_GTEST_LANG_CXX11 + +class MockBaz { + public: +  class MoveOnly { +    MoveOnly() = default; + +    MoveOnly(const MoveOnly&) = delete; +    operator=(const MoveOnly&) = delete; + +    MoveOnly(MoveOnly&&) = default; +    operator=(MoveOnly&&) = default; +  }; + +  MockBaz(MoveOnly) {} +} +#endif  // GTEST_GTEST_LANG_CXX11 && GTEST_HAS_STD_MOVE_ +  #if GTEST_HAS_STREAM_REDIRECTION  // Tests that a raw mock generates warnings for uninteresting calls. @@ -214,8 +233,9 @@ TEST(NiceMockTest, AllowsExpectedCall) {    nice_foo.DoThis();  } -// Tests that an unexpected call on a nice mock which returns a not-default-constructible -// type throws an exception and the exception contains the method's name. +// Tests that an unexpected call on a nice mock which returns a +// not-default-constructible type throws an exception and the exception contains +// the method's name.  TEST(NiceMockTest, ThrowsExceptionForUnknownReturnTypes) {    NiceMock<MockFoo> nice_foo;  #if GTEST_HAS_EXCEPTIONS @@ -266,6 +286,14 @@ TEST(NiceMockTest, AllowLeak) {    leaked->DoThis();  } +#if GTEST_GTEST_LANG_CXX11 && GTEST_HAS_STD_MOVE_ + +TEST(NiceMockTest, MoveOnlyConstructor) { +  NiceMock<MockBaz> nice_baz(MockBaz::MoveOnly()); +} + +#endif  // GTEST_LANG_CXX11 && GTEST_HAS_STD_MOVE_ +  #if !GTEST_OS_SYMBIAN && !GTEST_OS_WINDOWS_MOBILE  // Tests that NiceMock<Mock> compiles where Mock is a user-defined  // class (as opposed to ::testing::Mock).  We had to work around an @@ -366,6 +394,14 @@ TEST(NaggyMockTest, AllowLeak) {    leaked->DoThis();  } +#if GTEST_GTEST_LANG_CXX11 && GTEST_HAS_STD_MOVE_ + +TEST(NaggyMockTest, MoveOnlyConstructor) { +  NaggyMock<MockBaz> naggy_baz(MockBaz::MoveOnly()); +} + +#endif  // GTEST_LANG_CXX11 && GTEST_HAS_STD_MOVE_ +  #if !GTEST_OS_SYMBIAN && !GTEST_OS_WINDOWS_MOBILE  // Tests that NaggyMock<Mock> compiles where Mock is a user-defined  // class (as opposed to ::testing::Mock).  We had to work around an @@ -447,6 +483,14 @@ TEST(StrictMockTest, AllowLeak) {    leaked->DoThis();  } +#if GTEST_GTEST_LANG_CXX11 && GTEST_HAS_STD_MOVE_ + +TEST(StrictMockTest, MoveOnlyConstructor) { +  StrictMock<MockBaz> strict_baz(MockBaz::MoveOnly()); +} + +#endif  // GTEST_LANG_CXX11 && GTEST_HAS_STD_MOVE_ +  #if !GTEST_OS_SYMBIAN && !GTEST_OS_WINDOWS_MOBILE  // Tests that StrictMock<Mock> compiles where Mock is a user-defined  // class (as opposed to ::testing::Mock).  We had to work around an | 
