aboutsummaryrefslogtreecommitdiffstats
path: root/tests/samplebinding
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2011-02-10 10:55:13 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:13:53 -0300
commita9636d7481facd786a236d5624110de9fd5fdd6c (patch)
tree9202c5c1aec6b5417145b7f7d94bcb2a8dbd23b6 /tests/samplebinding
parentf1066cac214bba3f42482c17555be4a584e73ed3 (diff)
Added test for overload decision situation involving inheritance.
Diffstat (limited to 'tests/samplebinding')
-rw-r--r--tests/samplebinding/decisor_test.py11
-rw-r--r--tests/samplebinding/typesystem_sample.xml1
2 files changed, 11 insertions, 1 deletions
diff --git a/tests/samplebinding/decisor_test.py b/tests/samplebinding/decisor_test.py
index 458298c0c..cb442cd96 100644
--- a/tests/samplebinding/decisor_test.py
+++ b/tests/samplebinding/decisor_test.py
@@ -28,7 +28,7 @@
import unittest
-from sample import SampleNamespace, Point
+from sample import SampleNamespace, Point, ObjectType, ObjectModel
class DecisorTest(unittest.TestCase):
'''Test cases for the method overload decisor.'''
@@ -46,6 +46,15 @@ class DecisorTest(unittest.TestCase):
pt = Point()
self.assertRaises(TypeError, SampleNamespace.forceDecisorSideB, 1, pt)
+ def testDecideCallWithInheritance(self):
+ '''Call methods overloads that receive parent and inheritor classes' instances.'''
+ objecttype = ObjectType()
+ objectmodel = ObjectModel()
+ self.assertEqual(ObjectModel.receivesObjectTypeFamily(objecttype), ObjectModel.ObjectTypeCalled)
+ self.assertNotEqual(ObjectModel.receivesObjectTypeFamily(objecttype), ObjectModel.ObjectModelCalled)
+ self.assertEqual(ObjectModel.receivesObjectTypeFamily(objectmodel), ObjectModel.ObjectModelCalled)
+ self.assertNotEqual(ObjectModel.receivesObjectTypeFamily(objectmodel), ObjectModel.ObjectTypeCalled)
+
if __name__ == '__main__':
unittest.main()
diff --git a/tests/samplebinding/typesystem_sample.xml b/tests/samplebinding/typesystem_sample.xml
index b23e7f6db..b5ffb5703 100644
--- a/tests/samplebinding/typesystem_sample.xml
+++ b/tests/samplebinding/typesystem_sample.xml
@@ -259,6 +259,7 @@
</object-type>
<object-type name="ObjectModel">
+ <enum-type name="MethodCalled" />
<modify-function signature="data() const">
<modify-argument index="return">
<define-ownership class="native" owner="c++"/>