ya2 · news · projects · code · about

dynamic slider position (functional test)
[pmachines.git] / tests / ya2 / utils / test_gameobject.py
CommitLineData
b35b1f62
FC
1from pathlib import Path
2import sys
3if '' in sys.path: sys.path.remove('')
4sys.path.append(str(Path(__file__).parent.parent.parent))
5from unittest.mock import patch
6from unittest import TestCase
7from panda3d.core import loadPrcFileData
8#from ya2.engine.engine import Engine
9from ya2.patterns.gameobject import AiColleague, AudioColleague, EventColleague, \
10 FsmColleague, GameObject, GfxColleague, GuiColleague, LogicColleague, \
11 PhysColleague, Colleague
12
13
14class AiTests(TestCase):
15
16 def setUp(self):
17 loadPrcFileData('', 'window-type none')
18 loadPrcFileData('', 'audio-library-name null')
19
20 def tearDown(self):
21 pass
22 #self.engine.destroy()
23
24 def test_init(self):
25 #self.engine = Engine()
26 game_obj = GameObject()
27 ai = AiColleague(game_obj)
28 self.assertIsInstance(ai, AiColleague)
29
30
31class AudioTests(TestCase):
32
33 def setUp(self):
34 loadPrcFileData('', 'window-type none')
35 loadPrcFileData('', 'audio-library-name null')
36
37 def tearDown(self):
38 pass
39 #self.engine.destroy()
40
41 def test_init(self):
42 #self.engine = Engine()
43 game_obj = GameObject()
44 audio = AudioColleague(game_obj)
45 self.assertIsInstance(audio, AudioColleague)
46
47
48class ColleagueTests(TestCase):
49
50 def setUp(self):
51 loadPrcFileData('', 'window-type none')
52 loadPrcFileData('', 'audio-library-name null')
53
54 def tearDown(self):
55 pass
56 #self.engine.destroy()
57
58 def test_init(self):
59 #self.engine = Engine()
60 game_obj = GameObject()
61 colleague = Colleague(game_obj)
62 self.assertIsInstance(colleague, Colleague)
63
64
65class EventTests(TestCase):
66
67 def setUp(self):
68 loadPrcFileData('', 'window-type none')
69 loadPrcFileData('', 'audio-library-name null')
70
71 def tearDown(self):
72 pass
73 #self.engine.destroy()
74
75 def test_init(self):
76 #self.engine = Engine()
77 game_obj = GameObject()
78 event = EventColleague(game_obj)
79 self.assertIsInstance(event, EventColleague)
80
81
82class FsmTests(TestCase):
83
84 def setUp(self):
85 loadPrcFileData('', 'window-type none')
86 loadPrcFileData('', 'audio-library-name null')
87
88 def tearDown(self):
89 pass
90 #self.engine.destroy()
91
92 def test_init(self):
93 #self.engine = Engine()
94 game_obj = GameObject()
95 fsm = FsmColleague(game_obj)
96 self.assertIsInstance(fsm, FsmColleague)
97
98
99class GfxTests(TestCase):
100
101 def setUp(self):
102 loadPrcFileData('', 'window-type none')
103 loadPrcFileData('', 'audio-library-name null')
104
105 def tearDown(self):
106 pass
107 #self.engine.destroy()
108
109 def test_init(self):
110 #self.engine = Engine()
111 game_obj = GameObject()
112 gfx = GfxColleague(game_obj)
113 self.assertIsInstance(gfx, GfxColleague)
114
115
116class GuiTests(TestCase):
117
118 def setUp(self):
119 loadPrcFileData('', 'window-type none')
120 loadPrcFileData('', 'audio-library-name null')
121
122 def tearDown(self):
123 pass
124 #self.engine.destroy()
125
126 def test_init(self):
127 pass
128 #self.engine = Engine()
129 game_obj = GameObject()
130 gui = GuiColleague(game_obj)
131 self.assertIsInstance(gui, GuiColleague)
132
133
134class LogicTests(TestCase):
135
136 def setUp(self):
137 loadPrcFileData('', 'window-type none')
138 loadPrcFileData('', 'audio-library-name null')
139
140 def tearDown(self):
141 pass
142 #self.engine.destroy()
143
144 def test_init(self):
145 pass
146 #self.engine = Engine()
147 game_obj = GameObject()
148 logic = LogicColleague(game_obj)
149 self.assertIsInstance(logic, LogicColleague)
150
151
152class PhysicsTests(TestCase):
153
154 def setUp(self):
155 loadPrcFileData('', 'window-type none')
156 loadPrcFileData('', 'audio-library-name null')
157
158 def tearDown(self):
159 pass
160 #self.engine.destroy()
161
162 def test_init(self):
163 pass
164 #self.engine = Engine()
165 game_obj = GameObject()
166 phys = PhysColleague(game_obj)
167 self.assertIsInstance(phys, PhysColleague)
168
169
170class GameObjectInstance(GameObject):
171
172 def __init__(self):
173 GameObject.__init__(self)
174 self.fsm = FsmColleague(self)
175 self.event = EventColleague(self)
176 self.ai = AiColleague(self)
177 self.phys = PhysColleague(self)
178 self.audio = AudioColleague(self)
179 self.logic = LogicColleague(self)
180 self.gui = GuiColleague(self)
181 self.gfx = GfxColleague(self)
182
183 def destroy(self):
184 self.fsm.destroy()
185 self.event.destroy()
186 self.ai.destroy()
187 self.phys.destroy()
188 self.audio.destroy()
189 self.logic.destroy()
190 self.gui.destroy()
191 self.gfx.destroy()
192
193
194class GameObjectTests(TestCase):
195
196 def setUp(self):
197 loadPrcFileData('', 'window-type none')
198 loadPrcFileData('', 'audio-library-name null')
199
200 def tearDown(self):
201 pass
202 #self.engine.destroy()
203
204 @patch.object(GfxColleague, 'destroy')
205 @patch.object(GuiColleague, 'destroy')
206 @patch.object(LogicColleague, 'destroy')
207 @patch.object(AudioColleague, 'destroy')
208 @patch.object(PhysColleague, 'destroy')
209 @patch.object(AiColleague, 'destroy')
210 @patch.object(EventColleague, 'destroy')
211 @patch.object(FsmColleague, 'destroy')
212 def test_init(
213 self, mock_fsm_destroy, mock_event_destroy, mock_ai_destroy,
214 mock_phys_destroy, mock_audio_destroy, mock_logic_destroy,
215 mock_gui_destroy, mock_gfx_destroy):
216 #self.engine = Engine()
217 mock_event_destroy.__name__ = 'destroy'
218 game_obj = GameObjectInstance()
219 self.assertIsInstance(game_obj, GameObject)
220 game_obj.destroy()
221 assert mock_fsm_destroy.called
222 assert mock_event_destroy.called
223 assert mock_ai_destroy.called
224 assert mock_phys_destroy.called
225 assert mock_audio_destroy.called
226 assert mock_logic_destroy.called
227 assert mock_gui_destroy.called
228 assert mock_gfx_destroy.called