diff options
author | zhanyong.wan <zhanyong.wan@8415998a-534a-0410-bf83-d39667b30386> | 2013-09-06 22:52:14 +0000 |
---|---|---|
committer | zhanyong.wan <zhanyong.wan@8415998a-534a-0410-bf83-d39667b30386> | 2013-09-06 22:52:14 +0000 |
commit | 45fef502fac471efa4bf25b3d4104943463912eb (patch) | |
tree | 9993cd7a492e5012bb4523db13038bd6dbf29a05 /scripts/generator/cpp/gmock_class_test.py | |
parent | 778358e3f1815737f9d13eacb1346e1b2fb41cdc (diff) | |
download | googletest-45fef502fac471efa4bf25b3d4104943463912eb.tar.gz googletest-45fef502fac471efa4bf25b3d4104943463912eb.tar.bz2 googletest-45fef502fac471efa4bf25b3d4104943463912eb.zip |
makes googlemock generator handle some class templates; pulls in gtest r662
Diffstat (limited to 'scripts/generator/cpp/gmock_class_test.py')
-rwxr-xr-x | scripts/generator/cpp/gmock_class_test.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/scripts/generator/cpp/gmock_class_test.py b/scripts/generator/cpp/gmock_class_test.py index 7aa70276..07d59571 100755 --- a/scripts/generator/cpp/gmock_class_test.py +++ b/scripts/generator/cpp/gmock_class_test.py @@ -196,6 +196,18 @@ class Foo { 'MOCK_METHOD0(Bar,\nmap<int, string>());', self.GenerateMethodSource(source)) + def testSimpleMethodInTemplatedClass(self): + source = """ +template<class T> +class Foo { + public: + virtual int Bar(); +}; +""" + self.assertEqualIgnoreLeadingWhitespace( + 'MOCK_METHOD0_T(Bar,\nint());', + self.GenerateMethodSource(source)) + class GenerateMocksTest(TestCase): @@ -255,5 +267,43 @@ void()); self.assertEqualIgnoreLeadingWhitespace( expected, self.GenerateMocks(source)) + def testTemplatedForwardDeclaration(self): + source = """ +template <class T> class Forward; // Forward declaration should be ignored. +class Test { + public: + virtual void Foo(); +}; +""" + expected = """\ +class MockTest : public Test { +public: +MOCK_METHOD0(Foo, +void()); +}; +""" + self.assertEqualIgnoreLeadingWhitespace( + expected, self.GenerateMocks(source)) + + def testTemplatedClass(self): + source = """ +template <typename S, typename T> +class Test { + public: + virtual void Foo(); +}; +""" + expected = """\ +template <typename T0, typename T1> +class MockTest : public Test<T0, T1> { +public: +MOCK_METHOD0_T(Foo, +void()); +}; +""" + self.assertEqualIgnoreLeadingWhitespace( + expected, self.GenerateMocks(source)) + + if __name__ == '__main__': unittest.main() |