aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorHugo Lima <hugo.lima@openbossa.org>2009-09-01 19:03:07 -0300
committerHugo Lima <hugo.lima@openbossa.org>2009-09-01 19:03:07 -0300
commit5db89848578a416d2904317bc6cc361c3409af2c (patch)
tree806ddc4aa5a3a674e12c12770b6c863dee62f653 /tests
parent4d15d6c9527e078921d32ddcdbdec782e1d787f8 (diff)
Added a python test to classes without default ctor
Diffstat (limited to 'tests')
-rw-r--r--tests/libsample/nondefaultctor.h10
-rwxr-xr-xtests/samplebinding/nondefaultctor_test.py39
2 files changed, 47 insertions, 2 deletions
diff --git a/tests/libsample/nondefaultctor.h b/tests/libsample/nondefaultctor.h
index da0a14e0d..200d0ba9b 100644
--- a/tests/libsample/nondefaultctor.h
+++ b/tests/libsample/nondefaultctor.h
@@ -37,11 +37,17 @@
class NonDefaultCtor
{
+ int m_value;
public:
- NonDefaultCtor(int)
+ NonDefaultCtor(int value) : m_value(value)
{
}
+ int value()
+ {
+ return m_value;
+ }
+
NonDefaultCtor returnMyself()
{
return *this;
@@ -64,7 +70,7 @@ public:
NonDefaultCtor callReturnMyselfVirtual()
{
- return *this;
+ return returnMyselfVirtual();
}
};
diff --git a/tests/samplebinding/nondefaultctor_test.py b/tests/samplebinding/nondefaultctor_test.py
new file mode 100755
index 000000000..58a6442d8
--- /dev/null
+++ b/tests/samplebinding/nondefaultctor_test.py
@@ -0,0 +1,39 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+'''Test cases for ...'''
+
+import sys
+import unittest
+
+from sample import NonDefaultCtor
+
+class DerivedNonDefaultCtor (NonDefaultCtor):
+ def returnMyselfVirtual(self):
+ return NonDefaultCtor(self.value()+1)
+ pass
+
+class NonDefaultCtorTest(unittest.TestCase):
+
+ def testNonDefaultCtor(self):
+ '''Test if polymorphic function call decisor takes implicit conversions into account.'''
+ c = NonDefaultCtor(2)
+ # these functions returns NonDefaultCtor by value, so a PyObjecy is created every time
+ self.assertNotEqual(c.returnMyself(), c)
+ self.assertEqual(c.returnMyself().value(), 2)
+ self.assertNotEqual(c.returnMyself(3), c)
+ self.assertEqual(c.returnMyself(3).value(), 2)
+ self.assertNotEqual(c.returnMyself(4, c), c)
+ self.assertEqual(c.returnMyself(4, c).value(), 2)
+
+ def testVirtuals(self):
+ c = DerivedNonDefaultCtor(3)
+ # these functions returns NonDefaultCtor by value, so a PyObjecy is created every time
+ self.assertNotEqual(c.returnMyselfVirtual(), c)
+ self.assertEqual(c.returnMyselfVirtual().value(), 4)
+ self.assertEqual(c.callReturnMyselfVirtual().value(), 4)
+
+
+if __name__ == '__main__':
+ unittest.main()
+