aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2010-03-01 14:03:56 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2010-03-01 14:34:02 -0300
commit34c599246c7e25194bce4157e166b9bead2a1795 (patch)
tree054ec828ed6e51e0adfef48c6a6e36bc572dea9c /tests
parentdb7ce37a0de3e52f2940d8823e4308e89ffbb052 (diff)
Adds unit test for implicit conversion defined by a conversion operator.
Reviewed by Hugo Parente <hugo.lima@openbossa.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/libsample/sometime.cpp6
-rw-r--r--tests/libsample/sometime.h3
-rwxr-xr-xtests/samplebinding/conversion_operator_test.py50
3 files changed, 59 insertions, 0 deletions
diff --git a/tests/libsample/sometime.cpp b/tests/libsample/sometime.cpp
index c9fbf40bd..03b512ff4 100644
--- a/tests/libsample/sometime.cpp
+++ b/tests/libsample/sometime.cpp
@@ -97,3 +97,9 @@ Time::operator!=(const Time& other) const
{
return !operator==(other);
}
+
+Time::operator Str() const
+{
+ return Time::toString();
+}
+
diff --git a/tests/libsample/sometime.h b/tests/libsample/sometime.h
index 1db8af865..6f20425e3 100644
--- a/tests/libsample/sometime.h
+++ b/tests/libsample/sometime.h
@@ -82,6 +82,9 @@ public:
bool operator==(const Time& other) const;
bool operator!=(const Time& other) const;
+ // This cast operator must become an implicit conversion of Str.
+ operator Str() const;
+
private:
int m_hour;
int m_minute;
diff --git a/tests/samplebinding/conversion_operator_test.py b/tests/samplebinding/conversion_operator_test.py
new file mode 100755
index 000000000..9c7ac47ba
--- /dev/null
+++ b/tests/samplebinding/conversion_operator_test.py
@@ -0,0 +1,50 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# This file is part of the Shiboken Python Bindings Generator project.
+#
+# Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+#
+# Contact: PySide team <contact@pyside.org>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# version 2.1 as published by the Free Software Foundation. Please
+# review the following information to ensure the GNU Lesser General
+# Public License version 2.1 requirements will be met:
+# http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+# #
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+# 02110-1301 USA
+
+'''Test cases for implicit conversion generated by conversion operator.'''
+
+import unittest
+
+from sample import Time, StrList
+
+class ConversionOperatorTest(unittest.TestCase):
+ '''Test cases for implicit conversion generated by conversion operator.'''
+
+ def testConversionOperator(self):
+ '''Time defined an conversion operator for Str, so passing a Time object to a method expecting a Str should work.'''
+ t = Time(1, 2, 3)
+ t_str = t.toString()
+ sl = StrList()
+
+ # StrList.append expects a Str object.
+ sl.append(t)
+
+ self.assertEqual(len(sl), 1)
+ self.assertEqual(sl[0], t_str)
+
+if __name__ == '__main__':
+ unittest.main()
+