public void CreateGetUpdateDeleteThread() { CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClient(TestEnvironment.ConnectionString); Response <CommunicationUser> threadCreator = communicationIdentityClient.CreateUser(); CommunicationUserToken communicationUserToken = communicationIdentityClient.IssueToken(threadCreator.Value, new[] { CommunicationTokenScope.Chat }); string userToken = communicationUserToken.Token; string endpoint = TestEnvironment.ChatApiUrl(); string threadCreatorId = communicationUserToken.User.Id; ChatClient chatClient = new ChatClient( new Uri(endpoint), new CommunicationUserCredential(userToken)); var chatThreadMember = new ChatThreadMember(threadCreator) { DisplayName = "UserDisplayName" }; ChatThreadClient chatThreadClient = chatClient.CreateChatThread(topic: "Hello world!", members: new[] { chatThreadMember }); string threadId = chatThreadClient.Id; ChatThread chatThread = chatClient.GetChatThread(threadId); Pageable <ChatThreadInfo> chatThreadsInfo = chatClient.GetChatThreadsInfo(); foreach (ChatThreadInfo chatThreadInfo in chatThreadsInfo) { Console.WriteLine($"{ chatThreadInfo.Id}"); } var topic = "new topic"; chatThreadClient.UpdateThread(topic); chatClient.DeleteChatThread(threadId); try { chatThreadMember = new ChatThreadMember(new CommunicationUser("invalid user")); ChatThreadClient chatThreadClient_ = chatClient.CreateChatThread(topic: "Hello world!", members: new[] { chatThreadMember }); Assert.Fail("CreateChatThread did not fail"); } catch (RequestFailedException ex) { Console.WriteLine(ex.Message); } catch (Exception ex) { Assert.Fail($"Unexpected error: {ex}"); } }
public void ThreadCGUD_MemberAUR_MessageGSU_NotificationT() { //arr Console.WriteLine($"ThreadCGUD_MemberAUR_MessageGSU_NotificationT Running on RecordedTestMode : {Mode}"); CommunicationIdentityClient communicationIdentityClient = CreateInstrumentedCommunicationIdentityClient(); (CommunicationUser user1, string token1) = CreateUserAndToken(communicationIdentityClient); (CommunicationUser user2, string token2) = CreateUserAndToken(communicationIdentityClient); (CommunicationUser user3, string token3) = CreateUserAndToken(communicationIdentityClient); (CommunicationUser user4, string token4) = CreateUserAndToken(communicationIdentityClient); var topic = "Thread sync from C# sdk"; var displayNameMessage = "DisplayName sender message 1"; var members = new List <ChatThreadMember> { new ChatThreadMember(user1), new ChatThreadMember(user2), new ChatThreadMember(user3) }; ChatClient chatClient = CreateInstrumentedChatClient(token1); ChatClient chatClient2 = CreateInstrumentedChatClient(token2); ChatClient chatClient3 = CreateInstrumentedChatClient(token3); //act #region Snippet:Azure_Communication_Chat_Tests_E2E_InitializeChatThreadClient //@@ChatThreadClient chatThreadClient1 = chatClient.CreateChatThread("Thread topic", members); // Alternatively, if you have created a chat thread before and you have its threadId, you can create a ChatThreadClient instance using: //@@ChatThreadClient chatThreadClient2 = chatClient.GetChatThreadClient("threadId"); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_InitializeChatThreadClient ChatThreadClient chatThreadClient = CreateInstrumentedChatThreadClient(chatClient, topic, members); var threadId = chatThreadClient.Id; ChatThreadClient chatThreadClient2 = CreateInstrumentedChatThreadClient(chatClient, topic, members); ChatThreadClient chatThreadClient3 = GetInstrumentedChatThreadClient(chatClient3, threadId); string updatedTopic = "Launch meeting"; #region Snippet:Azure_Communication_Chat_Tests_E2E_UpdateThread chatThreadClient.UpdateThread(topic: "Launch meeting"); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_UpdateThread #region Snippet:Azure_Communication_Chat_Tests_E2E_GetChatThread ChatThread chatThread = chatClient.GetChatThread(threadId); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_GetChatThread #region Snippet:Azure_Communication_Chat_Tests_E2E_GetChatThreadsInfo Pageable <ChatThreadInfo> threads = chatClient.GetChatThreadsInfo(); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_GetChatThreadsInfo var threadsCount = threads.Count(); string messageContent = "Let's meet at 11am"; #region Snippet:Azure_Communication_Chat_Tests_E2E_SendMessage SendChatMessageResult sendChatMessageResult = chatThreadClient.SendMessage("Let's meet at 11am"); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_SendMessage var messageContent2 = "Content for message 2"; SendChatMessageResult sendChatMessageResult2 = chatThreadClient2.SendMessage(messageContent2, ChatMessagePriority.High, displayNameMessage); var messageContent3 = "Content for message 3"; SendChatMessageResult sendChatMessageResult3 = chatThreadClient3.SendMessage(messageContent3, ChatMessagePriority.High, displayNameMessage); var messageContent4 = "Content for message 4"; SendChatMessageResult sendChatMessageResult4 = chatThreadClient3.SendMessage(messageContent4, ChatMessagePriority.High, displayNameMessage); var messageContent5 = "Content for message 5"; SendChatMessageResult sendChatMessageResult5 = chatThreadClient3.SendMessage(messageContent5, ChatMessagePriority.High, displayNameMessage); var messageContent6 = "Content for message 6"; SendChatMessageResult sendChatMessageResult6 = chatThreadClient3.SendMessage(messageContent6, ChatMessagePriority.High, displayNameMessage); var messageId = sendChatMessageResult.Id; var messageId2 = sendChatMessageResult2.Id; var messageId3 = sendChatMessageResult3.Id; var messageId4 = sendChatMessageResult4.Id; var messageId5 = sendChatMessageResult5.Id; var messageId6 = sendChatMessageResult6.Id; #region Snippet:Azure_Communication_Chat_Tests_E2E_GetMessage ChatMessage message = chatThreadClient.GetMessage(messageId); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_GetMessage ChatMessage message2 = chatThreadClient2.GetMessage(messageId2); ChatMessage message3 = chatThreadClient3.GetMessage(messageId3); ChatMessage message4 = chatThreadClient3.GetMessage(messageId4); ChatMessage message5 = chatThreadClient3.GetMessage(messageId5); ChatMessage message6 = chatThreadClient3.GetMessage(messageId6); #region Snippet:Azure_Communication_Chat_Tests_E2E_GetMessages Pageable <ChatMessage> messages = chatThreadClient.GetMessages(); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_GetMessages Pageable <ChatMessage> messages2 = chatThreadClient2.GetMessages(); var getMessagesCount = messages.Count(); var getMessagesCount2 = messages2.Count(); # region Pagination assertions
public void E2E_ThreadCreateUpdateGetDelete_MemberAddUpdateRemove_MessageGetSendUpdate_NotificationTyping_ReadReceiptGetSend() { //arr CommunicationUser user1, user2, user3; string token1, token2, token3; CommunicationIdentityClient communicationIdentityClient = CreateInstrumentedCommunicationIdentityClient(); (user1, token1) = CreateUserAndToken(communicationIdentityClient); (user2, token2) = CreateUserAndToken(communicationIdentityClient); (user3, token3) = CreateUserAndToken(communicationIdentityClient); var topic = "Thread sync from C# sdk"; var messageContent = "This is message 1 content"; var updatedMessageContent = "This is message 1 content updated"; var displayNameMessage = "DisplayName sender message 1"; var updatedTopic = "Updated topic - C# sdk"; var members = new List <ChatThreadMember> { new ChatThreadMember(user1), new ChatThreadMember(user2) }; ChatClient chatClient = CreateInstrumentedChatClient(token1); ChatClient chatClient2 = CreateInstrumentedChatClient(token2); //act #region Snippet:Azure_Communication_Chat_Tests_E2E_InitializeChatThreadClient //@@ChatThreadClient chatThreadClient1 = chatClient.CreateChatThread("Thread topic", members); // Alternatively, if you have created a chat thread before and you have its threadId, you can create a ChatThreadClient instance using: //@@ChatThreadClient chatThreadClient2 = chatClient.GetChatThreadClient("threadId"); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_InitializeChatThreadClient ChatThreadClient chatThreadClient = CreateInstrumentedChatThreadClient(chatClient, topic, members); ChatThreadClient chatThreadClient2 = CreateInstrumentedChatThreadClient(chatClient, topic, members); #region Snippet:Azure_Communication_Chat_Tests_E2E_UpdateThread chatThreadClient.UpdateThread("Updated topic - C# sdk"); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_UpdateThread var threadId = chatThreadClient.Id; #region Snippet:Azure_Communication_Chat_Tests_E2E_GetChatThread ChatThread chatThread = chatClient.GetChatThread(threadId); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_GetChatThread #region Snippet:Azure_Communication_Chat_Tests_E2E_GetChatThreadsInfo Pageable <ChatThreadInfo> threads = chatClient.GetChatThreadsInfo(); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_GetChatThreadsInfo var threadsCount = threads.Count(); #region Snippet:Azure_Communication_Chat_Tests_E2E_SendMessage SendChatMessageResult sendChatMessageResult = chatThreadClient.SendMessage("This is message 1 content", ChatMessagePriority.High, displayNameMessage); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_SendMessage SendChatMessageResult sendChatMessageResult2 = chatThreadClient.SendMessage(messageContent, ChatMessagePriority.High, displayNameMessage); var messageId = sendChatMessageResult.Id; #region Snippet:Azure_Communication_Chat_Tests_E2E_GetMessage ChatMessage message = chatThreadClient.GetMessage(messageId); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_GetMessage #region Snippet:Azure_Communication_Chat_Tests_E2E_GetMessages Pageable <ChatMessage> messages = chatThreadClient.GetMessages(); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_GetMessages var getMessagesCount = messages.Count(); #region Snippet:Azure_Communication_Chat_Tests_E2E_UpdateMessage chatThreadClient.UpdateMessage(messageId, "This is message 1 content updated"); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_UpdateMessage Response <ChatMessage> actualUpdateMessage = chatThreadClient.GetMessage(messageId); #region Snippet:Azure_Communication_Chat_Tests_E2E_DeleteMessage chatThreadClient.DeleteMessage(messageId); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_DeleteMessage Pageable <ChatMessage> messagesAfterOneDeleted = chatThreadClient.GetMessages(); ChatMessage deletedChatMessage = messagesAfterOneDeleted.First(x => x.Id == messageId); #region Snippet:Azure_Communication_Chat_Tests_E2E_GetMembers Pageable <ChatThreadMember> chatThreadMembers = chatThreadClient.GetMembers(); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_GetMembers var chatThreadMembersCount = chatThreadMembers.Count(); var newMember = new ChatThreadMember(user3); #region Snippet:Azure_Communication_Chat_Tests_E2E_AddMembers chatThreadClient.AddMembers(members: new[] { newMember }); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_AddMembers Pageable <ChatThreadMember> chatThreadMembersAfterOneAdded = chatThreadClient.GetMembers(); var chatThreadMembersAfterOneAddedCount = chatThreadMembersAfterOneAdded.Count(); CommunicationUser memberToBeRemoved = user3; //Better name for the snippet #region Snippet:Azure_Communication_Chat_Tests_E2E_RemoveMember chatThreadClient.RemoveMember(user: memberToBeRemoved); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_RemoveMember Pageable <ChatThreadMember> chatThreadMembersAfterOneDeleted = chatThreadClient.GetMembers(); var chatThreadMembersAfterOneDeletedCount = chatThreadMembersAfterOneDeleted.Count(); Response typingNotificationResponse = chatThreadClient.SendTypingNotification(); #region Snippet:Azure_Communication_Chat_Tests_E2E_SendTypingNotification chatThreadClient.SendTypingNotification(); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_SendTypingNotification #region Snippet:Azure_Communication_Chat_Tests_E2E_SendReadReceipt chatThreadClient.SendReadReceipt(messageId); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_SendReadReceipt chatThreadClient.SendReadReceipt(sendChatMessageResult2.Id); #region Snippet:Azure_Communication_Chat_Tests_E2E_GetReadReceipts Pageable <ReadReceipt> readReceipts = chatThreadClient.GetReadReceipts(); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_GetReadReceipts var readReceiptsCount = readReceipts.Count(); #region Snippet:Azure_Communication_Chat_Tests_E2E_DeleteChatThread chatClient.DeleteChatThread(threadId); #endregion Snippet:Azure_Communication_Chat_Tests_E2E_DeleteChatThread //assert Assert.AreEqual(updatedTopic, chatThread.Topic); Assert.AreEqual(2, chatThread.Members.Count); Assert.AreEqual(messageContent, message.Content); Assert.AreEqual(displayNameMessage, message.SenderDisplayName); Assert.AreEqual(ChatMessagePriority.High, message.Priority); Assert.AreEqual(2, threadsCount); Assert.AreEqual(5, getMessagesCount); //Including all types Assert.AreEqual(updatedMessageContent, actualUpdateMessage.Value.Content); Assert.IsTrue(deletedChatMessage.DeletedOn.HasValue); Assert.AreEqual(2, chatThreadMembersCount); Assert.AreEqual(3, chatThreadMembersAfterOneAddedCount); Assert.AreEqual(2, chatThreadMembersAfterOneDeletedCount); Assert.AreEqual((int)HttpStatusCode.OK, typingNotificationResponse.Status); // TODO: Commenting out the assert below for now as it is flakey due to server-side delay; currently in investigation // Assert.AreEqual(1, readReceiptsCount); }