@ -61,7 +61,7 @@ class Foo {
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_METHOD0(Bar, \n int( )); ' ,
' MOCK_METHOD(int, Bar, (), (override )); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testSimpleConstructorsAndDestructor ( self ) :
def testSimpleConstructorsAndDestructor ( self ) :
@ -78,7 +78,7 @@ class Foo {
"""
"""
# The constructors and destructor should be ignored.
# The constructors and destructor should be ignored.
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_METHOD0(Bar, \n int( )); ' ,
' MOCK_METHOD(int, Bar, (), (override )); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testVirtualDestructor ( self ) :
def testVirtualDestructor ( self ) :
@ -91,7 +91,7 @@ class Foo {
"""
"""
# The destructor should be ignored.
# The destructor should be ignored.
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_METHOD0(Bar, \n int( )); ' ,
' MOCK_METHOD(int, Bar, (), (override )); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testExplicitlyDefaultedConstructorsAndDestructor ( self ) :
def testExplicitlyDefaultedConstructorsAndDestructor ( self ) :
@ -107,7 +107,7 @@ class Foo {
"""
"""
# The constructors and destructor should be ignored.
# The constructors and destructor should be ignored.
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_METHOD0(Bar, \n int( )); ' ,
' MOCK_METHOD(int, Bar, (), (override )); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testExplicitlyDeletedConstructorsAndDestructor ( self ) :
def testExplicitlyDeletedConstructorsAndDestructor ( self ) :
@ -123,7 +123,7 @@ class Foo {
"""
"""
# The constructors and destructor should be ignored.
# The constructors and destructor should be ignored.
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_METHOD0(Bar, \n int( )); ' ,
' MOCK_METHOD(int, Bar, (), (override )); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testSimpleOverrideMethod ( self ) :
def testSimpleOverrideMethod ( self ) :
@ -134,7 +134,7 @@ class Foo {
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_METHOD0(Bar, \n int( )); ' ,
' MOCK_METHOD(int, Bar, (), (override )); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testSimpleConstMethod ( self ) :
def testSimpleConstMethod ( self ) :
@ -145,7 +145,7 @@ class Foo {
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_CONST_ METHOD1 (Bar, \n void (bool flag));' ,
' MOCK_METHOD(void, Bar, (bool flag), (const, override )); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testExplicitVoid ( self ) :
def testExplicitVoid ( self ) :
@ -156,7 +156,7 @@ class Foo {
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_METHOD0(Bar, \n int(void )); ' ,
' MOCK_METHOD(int, Bar, (void), (override )); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testStrangeNewlineInParameter ( self ) :
def testStrangeNewlineInParameter ( self ) :
@ -168,7 +168,7 @@ a) = 0;
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_METHOD1 (Bar, \n void (int a));' ,
' MOCK_METHOD(void, Bar, (int a), (override )); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testDefaultParameters ( self ) :
def testDefaultParameters ( self ) :
@ -179,7 +179,7 @@ class Foo {
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_METHOD2 (Bar, \n void (int a, char c ));' ,
' MOCK_METHOD(void, Bar, (int a, char c), (override )); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testMultipleDefaultParameters ( self ) :
def testMultipleDefaultParameters ( self ) :
@ -196,8 +196,19 @@ class Foo {
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
" MOCK_METHOD7(Bar, \n "
' MOCK_METHOD(void, Bar, '
" void(int a , char c , const int* const p , const std::string& s , char tab[] , int const *& rp )); " ,
' (int a, char c, const int* const p, const std::string& s, char tab[], int const *& rp), '
' (override)); ' , self . GenerateMethodSource ( source ) )
def testMultipleSingleLineDefaultParameters ( self ) :
source = """
class Foo {
public :
virtual void Bar ( int a = 42 , int b = 43 , int c = 44 ) = 0 ;
} ;
"""
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_METHOD(void, Bar, (int a, int b, int c), (override)); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testConstDefaultParameter ( self ) :
def testConstDefaultParameter ( self ) :
@ -207,9 +218,9 @@ class Test {
virtual bool Bar ( const int test_arg = 42 ) = 0 ;
virtual bool Bar ( const int test_arg = 42 ) = 0 ;
} ;
} ;
"""
"""
expected = ' MOCK_METHOD1(Bar, \n bool(const int test_arg )); '
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
expected , self . GenerateMethodSource ( source ) )
' MOCK_METHOD(bool, Bar, (const int test_arg), (override)); ' ,
self . GenerateMethodSource ( source ) )
def testConstRefDefaultParameter ( self ) :
def testConstRefDefaultParameter ( self ) :
source = """
source = """
@ -218,9 +229,9 @@ class Test {
virtual bool Bar ( const std : : string & test_arg = " 42 " ) = 0 ;
virtual bool Bar ( const std : : string & test_arg = " 42 " ) = 0 ;
} ;
} ;
"""
"""
expected = ' MOCK_METHOD1(Bar, \n bool(const std::string& test_arg )); '
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
expected , self . GenerateMethodSource ( source ) )
' MOCK_METHOD(bool, Bar, (const std::string& test_arg), (override)); ' ,
self . GenerateMethodSource ( source ) )
def testRemovesCommentsWhenDefaultsArePresent ( self ) :
def testRemovesCommentsWhenDefaultsArePresent ( self ) :
source = """
source = """
@ -231,7 +242,7 @@ class Foo {
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_METHOD2 (Bar, \n void (int a , char c));' ,
' MOCK_METHOD(void, Bar, (int a, char c), (override )); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testDoubleSlashCommentsInParameterListAreRemoved ( self ) :
def testDoubleSlashCommentsInParameterListAreRemoved ( self ) :
@ -244,7 +255,7 @@ class Foo {
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_CONST_ METHOD2 (Bar, \n void (int a, int b));' ,
' MOCK_METHOD(void, Bar, (int a, int b), (const, override )); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testCStyleCommentsInParameterListAreNotRemoved ( self ) :
def testCStyleCommentsInParameterListAreNotRemoved ( self ) :
@ -258,7 +269,7 @@ class Foo {
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_METHOD2 (Bar, \n const string&(int , int b)); ' ,
' MOCK_METHOD(const string&, Bar, (int, int b), (override )); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testArgsOfTemplateTypes ( self ) :
def testArgsOfTemplateTypes ( self ) :
@ -268,8 +279,7 @@ class Foo {
virtual int Bar ( const vector < int > & v , map < int , string > * output ) ;
virtual int Bar ( const vector < int > & v , map < int , string > * output ) ;
} ; """
} ; """
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_METHOD2(Bar, \n '
' MOCK_METHOD(int, Bar, (const vector<int>& v, (map<int, string>* output)), (override)); ' ,
' int(const vector<int>& v, map<int, string>* output)); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testReturnTypeWithOneTemplateArg ( self ) :
def testReturnTypeWithOneTemplateArg ( self ) :
@ -279,7 +289,7 @@ class Foo {
virtual vector < int > * Bar ( int n ) ;
virtual vector < int > * Bar ( int n ) ;
} ; """
} ; """
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_METHOD1 (Bar, \n vector<int>*(int n)); ' ,
' MOCK_METHOD(vector<int>*, Bar, (int n), (override )); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testReturnTypeWithManyTemplateArgs ( self ) :
def testReturnTypeWithManyTemplateArgs ( self ) :
@ -288,13 +298,8 @@ class Foo {
public :
public :
virtual map < int , string > Bar ( ) ;
virtual map < int , string > Bar ( ) ;
} ; """
} ; """
# Comparing the comment text is brittle - we'll think of something
# better in case this gets annoying, but for now let's keep it simple.
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' // The following line won \' t really compile, as the return \n '
' MOCK_METHOD((map<int, string>), Bar, (), (override)); ' ,
' // type has multiple template arguments. To fix it, use a \n '
' // typedef for the return type. \n '
' MOCK_METHOD0(Bar, \n map<int, string>()); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testSimpleMethodInTemplatedClass ( self ) :
def testSimpleMethodInTemplatedClass ( self ) :
@ -306,7 +311,7 @@ class Foo {
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_METHOD0_T(Bar, \n int( )); ' ,
' MOCK_METHOD(int, Bar, (), (override )); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testPointerArgWithoutNames ( self ) :
def testPointerArgWithoutNames ( self ) :
@ -316,7 +321,7 @@ class Foo {
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_METHOD1 (Bar, \n int (C*));' ,
' MOCK_METHOD(int, Bar, (C*), (override )); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testReferenceArgWithoutNames ( self ) :
def testReferenceArgWithoutNames ( self ) :
@ -326,7 +331,7 @@ class Foo {
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_METHOD1 (Bar, \n int (C&));' ,
' MOCK_METHOD(int, Bar, (C&), (override )); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
def testArrayArgWithoutNames ( self ) :
def testArrayArgWithoutNames ( self ) :
@ -336,7 +341,7 @@ class Foo {
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace (
' MOCK_METHOD1 (Bar, \n int (C[]));' ,
' MOCK_METHOD(int, Bar, (C[]), (override )); ' ,
self . GenerateMethodSource ( source ) )
self . GenerateMethodSource ( source ) )
@ -372,15 +377,14 @@ namespace Baz {
class MockTest : public Test {
class MockTest : public Test {
public :
public :
MOCK_METHOD0 ( Foo ,
MOCK_METHOD ( void , Foo , ( ) , ( override ) ) ;
void ( ) ) ;
} ;
} ;
} / / namespace Baz
} / / namespace Baz
} / / namespace Foo
} / / namespace Foo
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace ( expected ,
expected , self . GenerateMocks ( source ) )
self . GenerateMocks ( source ) )
def testClassWithStorageSpecifierMacro ( self ) :
def testClassWithStorageSpecifierMacro ( self ) :
source = """
source = """
@ -392,12 +396,11 @@ class STORAGE_SPECIFIER Test {
expected = """ \
expected = """ \
class MockTest : public Test {
class MockTest : public Test {
public :
public :
MOCK_METHOD0 ( Foo ,
MOCK_METHOD ( void , Foo , ( ) , ( override ) ) ;
void ( ) ) ;
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace ( expected ,
expected , self . GenerateMocks ( source ) )
self . GenerateMocks ( source ) )
def testTemplatedForwardDeclaration ( self ) :
def testTemplatedForwardDeclaration ( self ) :
source = """
source = """
@ -410,12 +413,11 @@ class Test {
expected = """ \
expected = """ \
class MockTest : public Test {
class MockTest : public Test {
public :
public :
MOCK_METHOD0 ( Foo ,
MOCK_METHOD ( void , Foo , ( ) , ( override ) ) ;
void ( ) ) ;
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace ( expected ,
expected , self . GenerateMocks ( source ) )
self . GenerateMocks ( source ) )
def testTemplatedClass ( self ) :
def testTemplatedClass ( self ) :
source = """
source = """
@ -429,12 +431,11 @@ class Test {
template < typename T0 , typename T1 >
template < typename T0 , typename T1 >
class MockTest : public Test < T0 , T1 > {
class MockTest : public Test < T0 , T1 > {
public :
public :
MOCK_METHOD0_T ( Foo ,
MOCK_METHOD ( void , Foo , ( ) , ( override ) ) ;
void ( ) ) ;
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace ( expected ,
expected , self . GenerateMocks ( source ) )
self . GenerateMocks ( source ) )
def testTemplateInATemplateTypedef ( self ) :
def testTemplateInATemplateTypedef ( self ) :
source = """
source = """
@ -447,12 +448,11 @@ class Test {
expected = """ \
expected = """ \
class MockTest : public Test {
class MockTest : public Test {
public :
public :
MOCK_METHOD1 ( Bar ,
MOCK_METHOD ( void , Bar , ( const FooType & test_arg ) , ( override ) ) ;
void ( const FooType & test_arg ) ) ;
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace ( expected ,
expected , self . GenerateMocks ( source ) )
self . GenerateMocks ( source ) )
def testTemplateInATemplateTypedefWithComma ( self ) :
def testTemplateInATemplateTypedefWithComma ( self ) :
source = """
source = """
@ -466,12 +466,27 @@ class Test {
expected = """ \
expected = """ \
class MockTest : public Test {
class MockTest : public Test {
public :
public :
MOCK_METHOD1 ( Bar ,
MOCK_METHOD ( void , Bar , ( const FooType & test_arg ) , ( override ) ) ;
void ( const FooType & test_arg ) ) ;
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace ( expected ,
expected , self . GenerateMocks ( source ) )
self . GenerateMocks ( source ) )
def testParenthesizedCommaInArg ( self ) :
source = """
class Test {
public :
virtual void Bar ( std : : function < void ( int , int ) > f ) ;
} ;
"""
expected = """ \
class MockTest : public Test {
public :
MOCK_METHOD ( void , Bar , ( std : : function < void ( int , int ) > f ) , ( override ) ) ;
} ;
"""
self . assertEqualIgnoreLeadingWhitespace ( expected ,
self . GenerateMocks ( source ) )
def testEnumType ( self ) :
def testEnumType ( self ) :
source = """
source = """
@ -486,12 +501,11 @@ class Test {
expected = """ \
expected = """ \
class MockTest : public Test {
class MockTest : public Test {
public :
public :
MOCK_METHOD0 ( Foo ,
MOCK_METHOD ( void , Foo , ( ) , ( override ) ) ;
void ( ) ) ;
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace ( expected ,
expected , self . GenerateMocks ( source ) )
self . GenerateMocks ( source ) )
def testEnumClassType ( self ) :
def testEnumClassType ( self ) :
source = """
source = """
@ -506,12 +520,11 @@ class Test {
expected = """ \
expected = """ \
class MockTest : public Test {
class MockTest : public Test {
public :
public :
MOCK_METHOD0 ( Foo ,
MOCK_METHOD ( void , Foo , ( ) , ( override ) ) ;
void ( ) ) ;
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace ( expected ,
expected , self . GenerateMocks ( source ) )
self . GenerateMocks ( source ) )
def testStdFunction ( self ) :
def testStdFunction ( self ) :
source = """
source = """
@ -528,12 +541,11 @@ class Test {
expected = """ \
expected = """ \
class MockTest : public Test {
class MockTest : public Test {
public :
public :
MOCK_METHOD0 ( foo ,
MOCK_METHOD ( std : : function < int ( std : : string ) > , foo , ( ) , ( override ) ) ;
std : : function < int ( std : : string ) > ( ) ) ;
} ;
} ;
"""
"""
self . assertEqualIgnoreLeadingWhitespace (
self . assertEqualIgnoreLeadingWhitespace ( expected ,
expected , self . GenerateMocks ( source ) )
self . GenerateMocks ( source ) )
if __name__ == ' __main__ ' :
if __name__ == ' __main__ ' :