diff options
author | Lauro Neto <lauro.neto@openbossa.org> | 2010-04-29 18:41:50 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.lima@openbossa.org> | 2010-04-30 09:46:49 -0300 |
commit | d402db5680452241a5b85f7a4fd7db9bcc9ddbb8 (patch) | |
tree | d6060572479ded20796bd848f6e816539eeddda5 | |
parent | 902c70b6f34c6c712d867047d2e58ac41864c0be (diff) |
Adding test for #212 - Overloads with enums
-rw-r--r-- | tests/libsample/objecttype.cpp | 7 | ||||
-rw-r--r-- | tests/libsample/objecttype.h | 3 | ||||
-rwxr-xr-x | tests/samplebinding/enum_test.py | 14 |
3 files changed, 23 insertions, 1 deletions
diff --git a/tests/libsample/objecttype.cpp b/tests/libsample/objecttype.cpp index d5bdace14..5ff3c2f19 100644 --- a/tests/libsample/objecttype.cpp +++ b/tests/libsample/objecttype.cpp @@ -226,3 +226,10 @@ unsigned int objectTypeHash(const ObjectType* objectType) return reinterpret_cast<std::size_t>(objectType); } +unsigned char ObjectType::callWithEnum(const Str& prefix, Event::EventType type, unsigned char value){ + return value*value; +} + +unsigned char ObjectType::callWithEnum(const Str& prefix, unsigned char value) { + return value; +} diff --git a/tests/libsample/objecttype.h b/tests/libsample/objecttype.h index 0515ecc98..8b9eda117 100644 --- a/tests/libsample/objecttype.h +++ b/tests/libsample/objecttype.h @@ -97,6 +97,9 @@ public: // This method should be reimplemented by ObjectTypeLayout. virtual bool isLayoutType() { return false; } + unsigned char callWithEnum(const Str& prefix, Event::EventType type, unsigned char value=80); + unsigned char callWithEnum(const Str& prefix, unsigned char value=0); + private: ObjectType(const ObjectType&); ObjectType& operator=(const ObjectType&); diff --git a/tests/samplebinding/enum_test.py b/tests/samplebinding/enum_test.py index a6c2e0421..0d4be2293 100755 --- a/tests/samplebinding/enum_test.py +++ b/tests/samplebinding/enum_test.py @@ -28,7 +28,7 @@ import unittest -from sample import SampleNamespace +from sample import SampleNamespace, ObjectType, Event class EnumTest(unittest.TestCase): '''Test case for Python representation of C++ enums.''' @@ -66,6 +66,18 @@ class EnumTest(unittest.TestCase): '''Calling the constructor of non-extensible enum with a string.''' self.assertRaises(TypeError, SampleNamespace.InValue, '1') + +class EnumOverloadTest(unittest.TestCase): + '''Test case for overloads involving enums''' + + def testWithInt(self): + '''Overload with Enums and ints with default value''' + o = ObjectType() + + self.assertEqual(o.callWithEnum('', Event.ANY_EVENT, 9), 81) + self.assertEqual(o.callWithEnum('', 9), 9) + + if __name__ == '__main__': unittest.main() |