public async Task UsersKicked_TestAsync()
        {
            var cremaHost      = app.GetService(typeof(ICremaHost)) as ICremaHost;
            var authentication = await this.TestContext.LoginRandomAsync(Authority.Admin);

            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 actualUserID    = string.Empty;
            var actualMessage   = string.Empty;
            var expectedMessage = RandomUtility.NextString();
            await userCollection.AddUsersKickedEventHandlerAsync(UserCollection_UsersKicked);

            await user1.KickAsync(authentication, expectedMessage);

            Assert.AreEqual(user1.ID, actualUserID);
            Assert.AreEqual(expectedMessage, actualMessage);
            await userCollection.RemoveUsersKickedEventHandlerAsync(UserCollection_UsersKicked);

            await user2.KickAsync(authentication, RandomUtility.NextString());

            Assert.AreEqual(user1.ID, actualUserID);
            Assert.AreEqual(expectedMessage, actualMessage);
            Assert.AreNotEqual(user2.ID, actualUserID);

            void UserCollection_UsersKicked(object sender, ItemsEventArgs <IUser> e)
            {
                var user = e.Items.Single();

                actualUserID  = user.ID;
                actualMessage = (e.MetaData as string[]).Single();
            }
        }