test_GlobalFactory.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 # -*- coding: euc-jp -*-
3 
4 #
5 # \file test_GlobalFactory.py
6 # \brief test for RTComponent factory class
7 # \date $Date: $
8 # \author Shinji Kurihara
9 #
10 # Copyright (C) 2003-2005
11 # Task-intelligence Research Group,
12 # Intelligent Systems Research Institute,
13 # National Institute of
14 # Advanced Industrial Science and Technology (AIST), Japan
15 # All rights reserved.
16 #
17 
18 import sys
19 sys.path.insert(1,"../")
20 
21 import OpenRTM_aist
22 import unittest
23 
24 from GlobalFactory import *
25 
26 class Test:
27  def __init__(self):
28  pass
29 
30  def test(self):
31  return True
32 
33 class TestGlobalFactory(unittest.TestCase):
34 
35  def setUp(self):
36  self.factory = GlobalFactory.instance()
37  self.factory.addFactory("test",Test,OpenRTM_aist.Delete)
38  return
39 
40  def tearDown(self):
41  self.factory.removeFactory("test")
42  return
43 
44  def test_isinstance(self):
45  self.assertEqual(self.factory,GlobalFactory.instance())
46 
47  def test_hasFactory(self):
48  # addFactoryにて登録したファクトリオブジェクトの問い合わせ。
49  self.assertEqual(self.factory.hasFactory("test"),True)
50  # addFactoryにて登録していないファクトリオブジェクトの問い合わせ。
51  self.assertEqual(self.factory.hasFactory("testtest"),False)
52  # addFactoryにて登録していないファクトリオブジェクトの問い合わせ(空文字)。
53  self.assertEqual(self.factory.hasFactory(""),False)
54  return
55 
57  # ファクトリが登録済みの場合の問い合わせ。
58  self.assertEqual(self.factory.getIdentifiers(),["test"])
59  GlobalFactory.instance().addFactory("test2",Test,OpenRTM_aist.Delete)
60  self.assertEqual(self.factory.getIdentifiers(),["test","test2"])
61  # ファクトリが登録されていない場合の問い合わせ。
62  self.factory.removeFactory("test")
63  self.factory.removeFactory("test2")
64  self.assertEqual(self.factory.getIdentifiers(),[])
65  return
66 
67  def test_addFactory(self):
68  # creatorを指定しない場合、INVALID_ARGが返されるか?
69  self.assertEqual(GlobalFactory.instance().addFactory("test",None,OpenRTM_aist.Delete),
70  GlobalFactory.INVALID_ARG)
71 
72  # 既に登録済みのIDにてaddFactory()をコールした場合、ALREADY_EXISTSが返されるか?
73  self.assertEqual(GlobalFactory.instance().addFactory("test",Test,OpenRTM_aist.Delete),
74  GlobalFactory.ALREADY_EXISTS)
75 
76  # idとcreatorを指定してaddFactory()をコールした場合、FACTORY_OKが返されるか?
77  self.assertEqual(GlobalFactory.instance().addFactory("test1",Test,OpenRTM_aist.Delete),
78  GlobalFactory.FACTORY_OK)
79  self.factory.removeFactory("test1")
80 
81 
82  return
83 
84  def test_removeFactory(self):
85  # 登録していないIDでコールした場合、NOT_FOUNDが返されるか?
86  self.assertEqual(self.factory.removeFactory("testtest"),
87  GlobalFactory.NOT_FOUND)
88 
89  # 登録済みのIDでコールした場合、FACTORY_OKが返されるか?
90  self.assertEqual(self.factory.removeFactory("test"),
91  GlobalFactory.FACTORY_OK)
92 
93  # ファクトリが正しく削除されたか?
94  self.assertEqual(self.factory.getIdentifiers(),[])
95  return
96 
97  def test_createObject(self):
98  # 登録していないIDでコールした場合、Noneが返されるか?
99  self.assertEqual(self.factory.createObject("testtest"),
100  None)
101  # 登録済みのIDでコールした場合、正しいオブジェクトが返されるか?
102  self.assertEqual(self.factory.createObject("test").test(),True)
103  return
104 
105  def test_deleteObject(self):
106  # 登録していないIDでコールした場合 self.factory.deleteObject(self.factory.createObject("test"),"testtest") # IDを指定しないでコールした場合 self.factory.deleteObject(self.factory.createObject("test")) return ############### test ################# if __name__ == '__main__': unittest.main()
107  self.factory.deleteObject(self.factory.createObject("test"),"testtest")
108  # IDを指定しないでコールした場合 self.factory.deleteObject(self.factory.createObject("test")) return ############### test ################# if __name__ == '__main__': unittest.main()
109  self.factory.deleteObject(self.factory.createObject("test"))
110  return
111 
112 ############### test #################
113 if __name__ == '__main__':
114  unittest.main()


openrtm_aist_python
Author(s): Shinji Kurihara
autogenerated on Thu Jun 6 2019 19:11:34