summaryrefslogtreecommitdiff
path: root/game/test_suite/tests/socket_multi_test.gd
diff options
context:
space:
mode:
Diffstat (limited to 'game/test_suite/tests/socket_multi_test.gd')
-rw-r--r--game/test_suite/tests/socket_multi_test.gd79
1 files changed, 79 insertions, 0 deletions
diff --git a/game/test_suite/tests/socket_multi_test.gd b/game/test_suite/tests/socket_multi_test.gd
new file mode 100644
index 0000000..30454a4
--- /dev/null
+++ b/game/test_suite/tests/socket_multi_test.gd
@@ -0,0 +1,79 @@
+extends "res://base_test.gd"
+
+var content = {"My": "message"}
+var match_string_props = {"region": "europe"}
+var match_numeric_props = {"rank": 8}
+var got_msg = false
+var got_match = false
+var socket1 = null
+var socket2 = null
+
+func setup():
+ var client = Nakama.create_client(Config.SERVER_KEY, Config.HOST, Config.PORT, Config.SCHEME)
+
+ var session1 = await client.authenticate_custom_async("MyIdentifier")
+ if assert_cond(session1.is_valid()):
+ return
+
+ var session2 = await client.authenticate_custom_async("MyIdentifier2")
+ if assert_cond(session1.is_valid()):
+ return
+
+ socket1 = Nakama.create_socket_from(client)
+ socket1.received_channel_message.connect(self._on_socket1_message)
+ socket1.received_matchmaker_matched.connect(self._on_socket1_matchmaker_matched)
+ var done = await socket1.connect_async(session1)
+ # Check that connection succeded
+ if assert_false(done.is_exception()):
+ return
+
+ socket2 = Nakama.create_socket_from(client)
+ done = await socket2.connect_async(session2)
+ # Check that connection succeded
+ if assert_false(done.is_exception()):
+ return
+
+ # Join room
+ var room1 = await socket1.join_chat_async("MyRoom", NakamaSocket.ChannelType.Room)
+ if assert_false(room1.is_exception()):
+ return
+ var room2 = await socket2.join_chat_async("MyRoom", NakamaSocket.ChannelType.Room)
+ if assert_false(room2.is_exception()):
+ return
+
+ # Socket 2 send message to socket 1
+ var msg_ack = await socket2.write_chat_message_async(room2.id, content)
+ if assert_false(msg_ack.is_exception()):
+ return
+
+ var ticket1 = await socket1.add_matchmaker_async("+properties.region:europe +properties.rank:>=7 +properties.rank:<=9", 2, 8, match_string_props, match_numeric_props)
+ if assert_false(ticket1.is_exception()):
+ return
+ var ticket2 = await socket2.add_matchmaker_async("+properties.region:europe +properties.rank:>=7 +properties.rank:<=9", 2, 8, match_string_props, match_numeric_props)
+ if assert_false(ticket2.is_exception()):
+ return
+
+func _on_socket1_message(msg):
+ if assert_equal(msg.content, JSON.stringify(content)):
+ return
+ got_msg = true
+ check_end()
+
+func _on_socket1_matchmaker_matched(p_matchmaker_matched):
+ if assert_equal(JSON.stringify(p_matchmaker_matched.users[0].string_properties), JSON.stringify(match_string_props)):
+ return
+ if assert_equal(JSON.stringify(p_matchmaker_matched.users[0].numeric_properties), JSON.stringify(match_numeric_props)):
+ return
+ if assert_equal(JSON.stringify(p_matchmaker_matched.users[1].string_properties), JSON.stringify(match_string_props)):
+ return
+ if assert_equal(JSON.stringify(p_matchmaker_matched.users[1].numeric_properties), JSON.stringify(match_numeric_props)):
+ return
+ got_match = true
+ check_end()
+
+func _process(_delta):
+ assert_time(60)
+
+func check_end():
+ if got_match and got_msg:
+ done()