Commit | Line | Data |
---|---|---|
0f9675ba 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 | |
53ddf3c3 FC |
8 | from ya2.engine.engine import Engine |
9 | from ya2.gameobject import AiColleague, AudioColleague, EventColleague, \ | |
0f9675ba FC |
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 | self.engine.destroy() | |
22 | ||
23 | def test_init(self): | |
24 | self.engine = Engine() | |
25 | game_obj = GameObject() | |
26 | ai = AiColleague(game_obj) | |
27 | self.assertIsInstance(ai, AiColleague) | |
28 | ||
29 | ||
30 | class AudioTests(TestCase): | |
31 | ||
32 | def setUp(self): | |
33 | loadPrcFileData('', 'window-type none') | |
34 | loadPrcFileData('', 'audio-library-name null') | |
35 | ||
36 | def tearDown(self): | |
37 | self.engine.destroy() | |
38 | ||
39 | def test_init(self): | |
40 | self.engine = Engine() | |
41 | game_obj = GameObject() | |
42 | audio = AudioColleague(game_obj) | |
43 | self.assertIsInstance(audio, AudioColleague) | |
44 | ||
45 | ||
46 | class ColleagueTests(TestCase): | |
47 | ||
48 | def setUp(self): | |
49 | loadPrcFileData('', 'window-type none') | |
50 | loadPrcFileData('', 'audio-library-name null') | |
51 | ||
52 | def tearDown(self): | |
53 | self.engine.destroy() | |
54 | ||
55 | def test_init(self): | |
56 | self.engine = Engine() | |
57 | game_obj = GameObject() | |
58 | colleague = Colleague(game_obj) | |
59 | self.assertIsInstance(colleague, Colleague) | |
60 | ||
61 | ||
62 | class EventTests(TestCase): | |
63 | ||
64 | def setUp(self): | |
65 | loadPrcFileData('', 'window-type none') | |
66 | loadPrcFileData('', 'audio-library-name null') | |
67 | ||
68 | def tearDown(self): | |
69 | self.engine.destroy() | |
70 | ||
71 | def test_init(self): | |
72 | self.engine = Engine() | |
73 | game_obj = GameObject() | |
74 | event = EventColleague(game_obj) | |
75 | self.assertIsInstance(event, EventColleague) | |
76 | ||
77 | ||
78 | class FsmTests(TestCase): | |
79 | ||
80 | def setUp(self): | |
81 | loadPrcFileData('', 'window-type none') | |
82 | loadPrcFileData('', 'audio-library-name null') | |
83 | ||
84 | def tearDown(self): | |
85 | self.engine.destroy() | |
86 | ||
87 | def test_init(self): | |
88 | self.engine = Engine() | |
89 | game_obj = GameObject() | |
90 | fsm = FsmColleague(game_obj) | |
91 | self.assertIsInstance(fsm, FsmColleague) | |
92 | ||
93 | ||
94 | class GfxTests(TestCase): | |
95 | ||
96 | def setUp(self): | |
97 | loadPrcFileData('', 'window-type none') | |
98 | loadPrcFileData('', 'audio-library-name null') | |
99 | ||
100 | def tearDown(self): | |
101 | self.engine.destroy() | |
102 | ||
103 | def test_init(self): | |
104 | self.engine = Engine() | |
105 | game_obj = GameObject() | |
106 | gfx = GfxColleague(game_obj) | |
107 | self.assertIsInstance(gfx, GfxColleague) | |
108 | ||
109 | ||
110 | class GuiTests(TestCase): | |
111 | ||
112 | def setUp(self): | |
113 | loadPrcFileData('', 'window-type none') | |
114 | loadPrcFileData('', 'audio-library-name null') | |
115 | ||
116 | def tearDown(self): | |
117 | self.engine.destroy() | |
118 | ||
119 | def test_init(self): | |
120 | self.engine = Engine() | |
121 | game_obj = GameObject() | |
122 | gui = GuiColleague(game_obj) | |
123 | self.assertIsInstance(gui, GuiColleague) | |
124 | ||
125 | ||
126 | class LogicTests(TestCase): | |
127 | ||
128 | def setUp(self): | |
129 | loadPrcFileData('', 'window-type none') | |
130 | loadPrcFileData('', 'audio-library-name null') | |
131 | ||
132 | def tearDown(self): | |
133 | self.engine.destroy() | |
134 | ||
135 | def test_init(self): | |
136 | self.engine = Engine() | |
137 | game_obj = GameObject() | |
138 | logic = LogicColleague(game_obj) | |
139 | self.assertIsInstance(logic, LogicColleague) | |
140 | ||
141 | ||
142 | class PhysicsTests(TestCase): | |
143 | ||
144 | def setUp(self): | |
145 | loadPrcFileData('', 'window-type none') | |
146 | loadPrcFileData('', 'audio-library-name null') | |
147 | ||
148 | def tearDown(self): | |
149 | self.engine.destroy() | |
150 | ||
151 | def test_init(self): | |
152 | self.engine = Engine() | |
153 | game_obj = GameObject() | |
154 | phys = PhysColleague(game_obj) | |
155 | self.assertIsInstance(phys, PhysColleague) | |
156 | ||
157 | ||
158 | class GameObjectInstance(GameObject): | |
159 | ||
160 | def __init__(self): | |
161 | GameObject.__init__(self) | |
162 | self.fsm = FsmColleague(self) | |
163 | self.event = EventColleague(self) | |
164 | self.ai = AiColleague(self) | |
165 | self.phys = PhysColleague(self) | |
166 | self.audio = AudioColleague(self) | |
167 | self.logic = LogicColleague(self) | |
168 | self.gui = GuiColleague(self) | |
169 | self.gfx = GfxColleague(self) | |
170 | ||
171 | def destroy(self): | |
172 | self.fsm.destroy() | |
173 | self.event.destroy() | |
174 | self.ai.destroy() | |
175 | self.phys.destroy() | |
176 | self.audio.destroy() | |
177 | self.logic.destroy() | |
178 | self.gui.destroy() | |
179 | self.gfx.destroy() | |
180 | ||
181 | ||
182 | class GameObjectTests(TestCase): | |
183 | ||
184 | def setUp(self): | |
185 | loadPrcFileData('', 'window-type none') | |
186 | loadPrcFileData('', 'audio-library-name null') | |
187 | ||
188 | def tearDown(self): | |
189 | self.engine.destroy() | |
190 | ||
191 | @patch.object(GfxColleague, 'destroy') | |
192 | @patch.object(GuiColleague, 'destroy') | |
193 | @patch.object(LogicColleague, 'destroy') | |
194 | @patch.object(AudioColleague, 'destroy') | |
195 | @patch.object(PhysColleague, 'destroy') | |
196 | @patch.object(AiColleague, 'destroy') | |
197 | @patch.object(EventColleague, 'destroy') | |
198 | @patch.object(FsmColleague, 'destroy') | |
199 | def test_init( | |
200 | self, mock_fsm_destroy, mock_event_destroy, mock_ai_destroy, | |
201 | mock_phys_destroy, mock_audio_destroy, mock_logic_destroy, | |
202 | mock_gui_destroy, mock_gfx_destroy): | |
203 | self.engine = Engine() | |
204 | mock_event_destroy.__name__ = 'destroy' | |
205 | game_obj = GameObjectInstance() | |
206 | self.assertIsInstance(game_obj, GameObject) | |
207 | game_obj.destroy() | |
208 | assert mock_fsm_destroy.called | |
209 | assert mock_event_destroy.called | |
210 | assert mock_ai_destroy.called | |
211 | assert mock_phys_destroy.called | |
212 | assert mock_audio_destroy.called | |
213 | assert mock_logic_destroy.called | |
214 | assert mock_gui_destroy.called | |
215 | assert mock_gfx_destroy.called |