Commit | Line | Data |
---|---|---|
b35b1f62 FC |
1 | from pathlib import Path |
2 | import sys | |
3 | if '' in sys.path: sys.path.remove('') | |
4 | sys.path.append(str(Path(__file__).parent.parent.parent)) | |
5 | from unittest.mock import patch | |
6 | from unittest import TestCase | |
7 | from panda3d.core import loadPrcFileData | |
8 | #from ya2.engine.engine import Engine | |
9 | from ya2.patterns.gameobject import AiColleague, AudioColleague, EventColleague, \ | |
10 | FsmColleague, GameObject, GfxColleague, GuiColleague, LogicColleague, \ | |
11 | PhysColleague, Colleague | |
12 | ||
13 | ||
14 | class 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 | ||
31 | class 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 | ||
48 | class 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 | ||
65 | class 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 | ||
82 | class 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 | ||
99 | class 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 | ||
116 | class 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 | ||
134 | class 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 | ||
152 | class 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 | ||
170 | class 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 | ||
194 | class 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 |