public async Task ShouldSendMessageDirectChannel() { var session1 = await _client.AuthenticateCustomAsync($"{Guid.NewGuid()}"); var session2 = await _client.AuthenticateCustomAsync($"{Guid.NewGuid()}"); await _client.AddFriendsAsync(session1, new[] { session2.UserId }); await _client.AddFriendsAsync(session2, new[] { session1.UserId }); var completer = new TaskCompletionSource <IApiChannelMessage>(); _socket.ReceivedChannelMessage += (chatMessage) => completer.SetResult(chatMessage); await _socket.ConnectAsync(session1); var socket2 = Nakama.Socket.From(_client); await socket2.ConnectAsync(session2); var channel = await _socket.JoinChatAsync(session2.UserId, ChannelType.DirectMessage, false, false); // Send chat message. var content = new Dictionary <string, string> { { "hello", "world" } }.ToJson(); var sendAck = await _socket.WriteChatMessageAsync(channel, content); var message = await completer.Task.ConfigureAwait(false); Assert.NotNull(sendAck); Assert.NotNull(message); Assert.Equal(sendAck.ChannelId, message.ChannelId); Assert.Equal(sendAck.MessageId, message.MessageId); Assert.Equal(sendAck.Username, message.Username); }
/// <summary> /// This method is sending request to database for adding new friend using username. Return value indicates whether operation succeed or failed. /// </summary> /// <returns></returns> public static async Task <bool> AddFriendByUsernameAsync(string username, IClient client, ISession session) { try { string[] usernames = new[] { username }; await client.AddFriendsAsync(session, new string[] { }, usernames); return(true); } catch (Exception e) //catching exception, if program entered this code adding friend operation was not successfully completed { Debug.Log("Adding friend failed (" + e.Message + ")"); return(false); } }
public async Task ShouldAddFriendsAccepted() { var session1 = await _client.AuthenticateCustomAsync($"{Guid.NewGuid()}"); var session2 = await _client.AuthenticateCustomAsync($"{Guid.NewGuid()}"); await _client.AddFriendsAsync(session1, new[] { session2.UserId }); await _client.AddFriendsAsync(session2, new[] { session1.UserId }); var result1 = await _client.ListFriendsAsync(session1); Assert.NotNull(result1); Assert.AreEqual(0, result1.Friends.First().State); Assert.AreEqual(session2.UserId, result1.Friends.First().User.Id); var result2 = await _client.ListFriendsAsync(session2); Assert.NotNull(result2); Assert.AreEqual(0, result2.Friends.First().State); Assert.AreEqual(session1.UserId, result2.Friends.First().User.Id); }