2
#include <gtest/gtest.h>
27
void Bar2(int a1, int a2)
34
void Bar3(int a1, int a2, int a3)
48
int delegateTestFuncCalled = 0;
49
void DelegateTestFunc()
51
delegateTestFuncCalled++;
54
TEST(Delegate, NoArgsClassMember)
57
Mcucpp::Delegate<void> delegate(foo, &Foo::Bar);
59
EXPECT_EQ(1, foo.barCalled);
62
TEST(Delegate, OneArgClassMember)
65
Mcucpp::Delegate1<void, int> delegate(foo, &Foo::Bar1);
67
EXPECT_EQ(1, foo.barCalled);
68
EXPECT_EQ(10, foo.arg1);
71
TEST(Delegate, TwoArgClassMember)
74
Mcucpp::Delegate2<void, int, int> delegate(foo, &Foo::Bar2);
76
EXPECT_EQ(1, foo.barCalled);
77
EXPECT_EQ(10, foo.arg1);
78
EXPECT_EQ(20, foo.arg2);
81
TEST(Delegate, ThreeArgClassMember)
84
Mcucpp::Delegate3<void, int, int, int> delegate(foo, &Foo::Bar3);
86
EXPECT_EQ(1, foo.barCalled);
87
EXPECT_EQ(10, foo.arg1);
88
EXPECT_EQ(20, foo.arg2);
89
EXPECT_EQ(30, foo.arg3);
92
TEST(Delegate, NoArgsStaticFunc)
94
delegateTestFuncCalled = 0;
95
Mcucpp::Delegate<void> delegate(DelegateTestFunc);
97
EXPECT_EQ(1, delegateTestFuncCalled);