public async Task UsersBanChanged_TestAsync() { var authentication = await this.TestContext.LoginRandomAsync(Authority.Admin); var userFilter1 = new UserFilter(UserFlags.Member | UserFlags.Guest | UserFlags.NotBanned); var user1 = await userFilter1.GetUserAsync(app); var userFilter2 = new UserFilter(UserFlags.Member | UserFlags.Guest | UserFlags.Banned) { ExcludedUserIDs = new[] { user1.ID } }; var user2 = await userFilter2.GetUserAsync(app); var actualUserID = string.Empty; var actualMessage = string.Empty; var actualBanType = BanChangeType.Unban; var expectedMessage = RandomUtility.NextString(); await userCollection.AddUsersBanChangedEventHandlerAsync(UserCollection_UsersBanChanged); await user1.BanAsync(authentication, expectedMessage); Assert.AreEqual(user1.ID, actualUserID); Assert.AreEqual(expectedMessage, actualMessage); Assert.AreEqual(BanChangeType.Ban, actualBanType); await userCollection.RemoveUsersBanChangedEventHandlerAsync(UserCollection_UsersBanChanged); await user2.UnbanAsync(authentication); Assert.AreEqual(user1.ID, actualUserID); Assert.AreEqual(expectedMessage, actualMessage); Assert.AreEqual(BanChangeType.Ban, actualBanType); Assert.AreNotEqual(actualUserID, user2.ID); void UserCollection_UsersBanChanged(object sender, ItemsEventArgs <IUser> e) { var user = e.Items.Single(); var metaData = e.MetaData as object[]; actualUserID = user.ID; actualBanType = (BanChangeType)metaData[0]; actualMessage = (metaData[1] as string[]).Single(); } }