diff options
| author | Skipper <[email protected]> | 2025-02-02 21:32:14 +0000 |
|---|---|---|
| committer | Skipper <[email protected]> | 2025-02-02 21:32:14 +0000 |
| commit | f2189b417b543bea5add24f5a324b328fa8dbfac (patch) | |
| tree | f087daf2988ae32e03c9b7dea35b7c82aa0c10eb /tests | |
| parent | f40188672a49e1c6a85d0f5c6f47bda2fce75f1e (diff) | |
Writing tests, and checking against existing packet decoders
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/__init__.py | 0 | ||||
| -rw-r--r-- | tests/packet01_logon_test.py | 46 | ||||
| -rw-r--r-- | tests/packet04_loadfield_test.py | 38 | ||||
| -rw-r--r-- | tests/packet05_addobject_test.py | 39 | ||||
| -rw-r--r-- | tests/packet08_joinrequest_test.py | 31 | ||||
| -rw-r--r-- | tests/packet09_joinapproval_test.py | 26 |
6 files changed, 180 insertions, 0 deletions
diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/__init__.py diff --git a/tests/packet01_logon_test.py b/tests/packet01_logon_test.py new file mode 100644 index 0000000..9650585 --- /dev/null +++ b/tests/packet01_logon_test.py @@ -0,0 +1,46 @@ +import unittest +import sys +import os + +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) +from lib.PacketManager.packets.FSNETCMD_LOGON import FSNETCMD_LOGON + +class TestFSNETCMD_LOGON(unittest.TestCase): + + def test_decode(self): + buffer = b'\x01\x00\x00\x00User1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99x3\x01' + packet = FSNETCMD_LOGON(buffer) + self.assertEqual(packet.username, 'User1') + self.assertEqual(packet.version, 20150425) + self.assertEqual(packet.alias, 'User1') + + def test_decode_with_alias(self): + buffer = b'\x01\x00\x00\x00ExtraLongUserna\x00\x99x3\x01ExtraLongUsernameThatIsTooLongForYS\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + packet = FSNETCMD_LOGON(buffer) + self.assertEqual(packet.username, 'ExtraLongUserna') + self.assertEqual(packet.version, 20150425) + self.assertEqual(packet.alias, 'ExtraLongUsernameThatIsTooLongForYS') + + def test_encode(self): + username = "User1" + version = 20150425 + buffer = FSNETCMD_LOGON.encode(username, version) + expected_buffer = b'\x01\x00\x00\x00User1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99x3\x01' + self.assertEqual(buffer, expected_buffer) + + def test_encode_with_alias(self): + username = "ExtraLongUsernameThatIsTooLongForYS" + version = 20150425 + buffer = FSNETCMD_LOGON.encode(username, version) + expected_buffer = b'\x01\x00\x00\x00ExtraLongUserna\x00\x99x3\x01ExtraLongUsernameThatIsTooLongForYS\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + self.assertEqual(buffer, expected_buffer) + + def test_encode_with_size(self): + username = "User1" + version = 20150425 + buffer = FSNETCMD_LOGON.encode(username, version, with_size=True) + expected_buffer = b'\x18\x00\x00\x00\x01\x00\x00\x00User1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99x3\x01' + self.assertEqual(buffer, expected_buffer) + +if __name__ == '__main__': + unittest.main()
\ No newline at end of file diff --git a/tests/packet04_loadfield_test.py b/tests/packet04_loadfield_test.py new file mode 100644 index 0000000..a9004be --- /dev/null +++ b/tests/packet04_loadfield_test.py @@ -0,0 +1,38 @@ +import unittest +import sys +import os + +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) +from lib.PacketManager.packets.FSNETCMD_LOADFIELD import FSNETCMD_LOADFIELD +from struct import pack + +class TestFSNETCMD_LOADFIELD(unittest.TestCase): + + def test_decode(self): + buffer = b'\x04\x00\x00\x00ISLAND_GOURD\x00\xc39\x00\xe0\x1ff\x00\r\x00\x00\x00\r\x00\x00\x00\x10\xc49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + packet = FSNETCMD_LOADFIELD(buffer) + self.assertEqual(packet.fieldShortName, 'ISLAND_GOURD') + self.assertEqual(packet.flags, 0) + self.assertEqual(packet.pos, [0, 0, 0]) + self.assertEqual(packet.atti, [0, 0,0]) + + def test_encode(self): + field = b'ISLAND_GOURD\x00\xc39\x00\xe0\x1ff\x00\r\x00\x00\x00\r\x00\x00\x00\x10\xc49\x00' + flags = 0 + pos = [0, 0, 0] + atti = [0, 0, 0] + buffer = FSNETCMD_LOADFIELD.encode(field, flags, pos, atti) + expected_buffer = b'\x04\x00\x00\x00ISLAND_GOURD\x00\xc39\x00\xe0\x1ff\x00\r\x00\x00\x00\r\x00\x00\x00\x10\xc49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + self.assertEqual(buffer, expected_buffer) + + def test_encode_with_size(self): + field = b'ISLAND_GOURD\x00\xc39\x00\xe0\x1ff\x00\r\x00\x00\x00\r\x00\x00\x00\x10\xc49\x00' + flags = 0 + pos = [0, 0, 0] + atti = [0, 0, 0] + buffer = FSNETCMD_LOADFIELD.encode(field, flags, pos, atti, with_size=True) + expected_buffer = b'@\x00\x00\x00\x04\x00\x00\x00ISLAND_GOURD\x00\xc39\x00\xe0\x1ff\x00\r\x00\x00\x00\r\x00\x00\x00\x10\xc49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + self.assertEqual(buffer, expected_buffer) + +if __name__ == '__main__': + unittest.main()
\ No newline at end of file diff --git a/tests/packet05_addobject_test.py b/tests/packet05_addobject_test.py new file mode 100644 index 0000000..6378858 --- /dev/null +++ b/tests/packet05_addobject_test.py @@ -0,0 +1,39 @@ +import unittest +import sys +import os + +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) +from lib.PacketManager.packets.FSNETCMD_ADDOBJECT import FSNETCMD_ADDOBJECT + +class TestFSNETCMD_ADDOBJECT(unittest.TestCase): + + def test_decode(self): + buffer = b'\x05\x00\x00\x00\x01\x00\x01\x00\x02\x00\x01\x00\x00\x00\x00\x00R\x0c^E\x00\x00\x00\x00H\x85%E\x1d\x96\xcb\xbf\x00\x00\x00\x00\x00\x00\x00\x80HANGER\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\xd7\xa3dB' + + packet = FSNETCMD_ADDOBJECT(buffer) + self.assertEqual(packet.object_type, 1) + self.assertEqual(packet.net_type, 1) + self.assertEqual(packet.object_id, 65538) + self.assertEqual(packet.iff, 0) + self.assertEqual(packet.pos, [3552.77001953125, 0.0, 2648.330078125]) + self.assertEqual(packet.atti, [-1.590518593788147, 0.0, -0.0]) + self.assertEqual(packet.identifier, 'HANGER') + self.assertEqual(packet.substrname, '') + self.assertEqual(packet.ysfid, 0) + self.assertEqual(packet.flags, 0) + self.assertEqual(packet.flags0, 32768) + self.assertEqual(packet.outsideRadius, 57.15999984741211) + + def test_encode(self): + buffer = FSNETCMD_ADDOBJECT.encode( + object_type=1, net_type=1, object_id=65538, iff=0, pos=[3552.77001953125, 0.0, 2648.330078125], + atti=[-1.590518593788147, 0.0, -0.0], identifier='HANGER', substrname='', ysfid=0, + flags=0, flags0=32768, outside_radius=57.15999984741211 + ) + expected_buffer = b'\x05\x00\x00\x00\x01\x00\x01\x00\x02\x00\x01\x00\x00\x00\x00\x00R\x0c^E\x00\x00\x00\x00H\x85%E\x1d\x96\xcb\xbf\x00\x00\x00\x00\x00\x00\x00\x80HANGER\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\xd7\xa3dB' + self.assertEqual(buffer, expected_buffer) + + + +if __name__ == '__main__': + unittest.main()
\ No newline at end of file diff --git a/tests/packet08_joinrequest_test.py b/tests/packet08_joinrequest_test.py new file mode 100644 index 0000000..e712989 --- /dev/null +++ b/tests/packet08_joinrequest_test.py @@ -0,0 +1,31 @@ +import unittest +import sys +import os + +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) +from lib.PacketManager.packets.FSNETCMD_JOINREQUEST import FSNETCMD_JOINREQUEST + +class TestFSNETCMD_JOINREQUEST(unittest.TestCase): + + def test_decode(self): + buffer = b'\x08\x00\x00\x00\x02\x00\x00\x00EUROFIGHTER_TYPHOON\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00RW36_01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00K\x00\x00\x00' + packet = FSNETCMD_JOINREQUEST(buffer) + self.assertEqual(packet.iff,2) + self.assertEqual(packet.aircraft, 'EUROFIGHTER_TYPHOON') + self.assertEqual(packet.start_pos, 'RW36_01') + self.assertEqual(packet.fuel, 75) + self.assertEqual(packet.smoke,0) + + def test_encode(self): + iff = 2 + aircraft = 'EUROFIGHTER_TYPHOON' + start_pos = 'NORTH10000_01' + fuel = 75 + smoke = 0 + buffer = FSNETCMD_JOINREQUEST.encode(iff, aircraft, start_pos, fuel, smoke) + expected_buffer = b'\x08\x00\x00\x00\x02\x00\x00\x00EUROFIGHTER_TYPHOON\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00NORTH10000_01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00K\x00\x00\x00' + self.assertEqual(buffer, expected_buffer) + + +if __name__ == '__main__': + unittest.main()
\ No newline at end of file diff --git a/tests/packet09_joinapproval_test.py b/tests/packet09_joinapproval_test.py new file mode 100644 index 0000000..6334f78 --- /dev/null +++ b/tests/packet09_joinapproval_test.py @@ -0,0 +1,26 @@ +import unittest +import sys +import os + +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) +from lib.PacketManager.packets.FSNETCMD_JOINAPPROVAL import FSNETCMD_JOINAPPROVAL + +class TestFSNETCMD_JOINAPPROVAL(unittest.TestCase): + + def test_decode(self): + buffer = b'\t\x00\x00\x00' + packet = FSNETCMD_JOINAPPROVAL(buffer) + self.assertEqual(packet.buffer, buffer) + + def test_encode(self): + buffer = FSNETCMD_JOINAPPROVAL.encode() + expected_buffer = b'\t\x00\x00\x00' + self.assertEqual(buffer, expected_buffer) + + def test_encode_with_size(self): + buffer = FSNETCMD_JOINAPPROVAL.encode(with_size=True) + expected_buffer = b'\x04\x00\x00\x00\t\x00\x00\x00' + self.assertEqual(buffer, expected_buffer) + +if __name__ == '__main__': + unittest.main()
\ No newline at end of file |
