public async Task MessageReceived_Test() { var cremaHost = app.GetService(typeof(ICremaHost)) as ICremaHost; var authentication1 = await this.TestContext.LoginRandomAsync(); var authentication2 = await this.TestContext.LoginRandomAsync(); var user1 = await userCollection.GetUserAsync(authentication1.ID); var user2 = await userCollection.GetUserAsync(authentication2.ID); var actualMessage = string.Empty; var actualMessageType = MessageType.Notification; var actualUserID = string.Empty; var actualSenderID = string.Empty; var expectedMessage = RandomUtility.NextString(); await userCollection.AddMessageReceivedEventHandlerAsync(UserCollection_MessageReceived); await user2.SendMessageAsync(authentication1, expectedMessage); Assert.AreEqual(expectedMessage, actualMessage); Assert.AreEqual(MessageType.None, actualMessageType); Assert.AreEqual(user2.ID, actualUserID); Assert.AreEqual(user1.ID, actualSenderID); await userCollection.RemoveMessageReceivedEventHandlerAsync(UserCollection_MessageReceived); await user1.SendMessageAsync(authentication2, RandomUtility.NextString()); Assert.AreEqual(expectedMessage, actualMessage); Assert.AreEqual(MessageType.None, actualMessageType); Assert.AreEqual(user2.ID, actualUserID); Assert.AreEqual(user1.ID, actualSenderID); void UserCollection_MessageReceived(object sender, MessageEventArgs e) { var user = e.Items.Single(); actualUserID = user.ID; actualSenderID = e.InvokeID; actualMessage = e.Message; actualMessageType = e.MessageType; } }