summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLauro Neto <lauro.neto@openbossa.org>2010-04-29 18:41:50 -0300
committerHugo Parente Lima <hugo.lima@openbossa.org>2010-04-30 09:46:49 -0300
commitd402db5680452241a5b85f7a4fd7db9bcc9ddbb8 (patch)
treed6060572479ded20796bd848f6e816539eeddda5
parent902c70b6f34c6c712d867047d2e58ac41864c0be (diff)
Adding test for #212 - Overloads with enums
-rw-r--r--tests/libsample/objecttype.cpp7
-rw-r--r--tests/libsample/objecttype.h3
-rwxr-xr-xtests/samplebinding/enum_test.py14
3 files changed, 23 insertions, 1 deletions
diff --git a/tests/libsample/objecttype.cpp b/tests/libsample/objecttype.cpp
index d5bdace1..5ff3c2f1 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 0515ecc9..8b9eda11 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 a6c2e042..0d4be229 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()