diff options
author | Renato Filho <renato.filho@openbossa.org> | 2010-06-10 18:41:43 -0300 |
---|---|---|
committer | Marcelo Lira <marcelo.lira@openbossa.org> | 2010-06-17 17:44:48 -0300 |
commit | c41a765a198af87f59857f251f695d5e2dbca3c3 (patch) | |
tree | bb1cfb03ce46876cab0994718c3c156a4269b427 /tests | |
parent | dca3033db3d4f3562c838b9ee910482d8c96bc70 (diff) |
Created unit tests for named arguments.
Reviewers: Luciano Wolf <luciano.wolf@openbossa.org>,
Marcelo Lira <marcelo.lira@openbossa.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/libsample/objecttype.cpp | 35 | ||||
-rw-r--r-- | tests/libsample/objecttype.h | 6 | ||||
-rwxr-xr-x | tests/samplebinding/objecttype_with_named_args_test.py | 67 |
3 files changed, 104 insertions, 4 deletions
diff --git a/tests/libsample/objecttype.cpp b/tests/libsample/objecttype.cpp index 5ff3c2f19..4c608037e 100644 --- a/tests/libsample/objecttype.cpp +++ b/tests/libsample/objecttype.cpp @@ -36,6 +36,7 @@ #include "objecttypelayout.h" #include <algorithm> #include <iostream> +#include <string> using namespace std; @@ -177,7 +178,8 @@ ObjectType::processEvent(ObjectTypeList objects, Event *event) } -void ObjectType::setLayout(ObjectTypeLayout* l) +void +ObjectType::setLayout(ObjectTypeLayout* l) { if (!l) { cerr << "[WARNING] ObjectType::setLayout: Cannot set layout to 0." << endl; @@ -221,15 +223,40 @@ ObjectTypeLayout* ObjectType::takeLayout() return l; } -unsigned int objectTypeHash(const ObjectType* objectType) +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){ +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) { +unsigned char +ObjectType::callWithEnum(const Str& prefix, unsigned char value) { return value; } + +void +ObjectType::setObjectSplittedName(const char*, const Str& prefix, const Str& suffix) +{ + std::string result(prefix.cstring()); + result += suffix.cstring(); + m_objectName = result.c_str(); +} + +void +ObjectType::setObjectNameWithSize(const char*, int size, const Str& name) +{ + std::string result(name.cstring(), size); + m_objectName = result.c_str(); +} + +void +ObjectType::setObjectNameWithSize(const Str& name, int size) +{ + setObjectNameWithSize("", size, name); +} + diff --git a/tests/libsample/objecttype.h b/tests/libsample/objecttype.h index 8b9eda117..18454a121 100644 --- a/tests/libsample/objecttype.h +++ b/tests/libsample/objecttype.h @@ -100,6 +100,12 @@ public: unsigned char callWithEnum(const Str& prefix, Event::EventType type, unsigned char value=80); unsigned char callWithEnum(const Str& prefix, unsigned char value=0); + //Functions used in test with named arguments + void setObjectSplittedName(const char*, const Str& prefix = Str("<unk"), const Str& suffix = Str("nown>")); + void setObjectNameWithSize(const char*, int size=9, const Str& name = Str("<unknown>")); + void setObjectNameWithSize(const Str& name = Str("<unknown>"), int size=9); + + private: ObjectType(const ObjectType&); ObjectType& operator=(const ObjectType&); diff --git a/tests/samplebinding/objecttype_with_named_args_test.py b/tests/samplebinding/objecttype_with_named_args_test.py new file mode 100755 index 000000000..287bd199c --- /dev/null +++ b/tests/samplebinding/objecttype_with_named_args_test.py @@ -0,0 +1,67 @@ +#!/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 + +import unittest + +from sample import ObjectType + +class NamedArgsTest(unittest.TestCase): + + def testOneArgument(self): + p = ObjectType() + o = ObjectType(parent=p) + self.assertEqual(o.parent(), p) + + def testMoreArguments(self): + o = ObjectType() + + o.setObjectSplittedName("", prefix="pys", suffix="ide") + self.assertEqual(o.objectName(), "pyside") + + o.setObjectSplittedName("", suffix="ide", prefix="pys") + self.assertEqual(o.objectName(), "pyside") + + o.setObjectNameWithSize(name="pyside", size=6) + self.assertEqual(o.objectName(), "pyside") + + o.setObjectNameWithSize(size=6, name="pyside") + self.assertEqual(o.objectName(), "pyside") + + + def testUseDefaultValues(self): + o = ObjectType() + + o.setObjectNameWithSize(size=3) + self.assertEqual(o.objectName(), "<un") # use name='unknown' default argument + + o.setObjectSplittedName("") + self.assertEqual(o.objectName(), "<unknown>") # user prefix='<unk' and suffix='nown>' + + + +if __name__ == '__main__': + unittest.main() + |