public async Task ItemsDeleted_User_TestAsync()
        {
            var authentication = await this.TestContext.LoginRandomAsync(Authority.Admin);

            var userFilter1 = new UserFilter()
            {
                ExcludedUserIDs = new[] { Authentication.AdminID, authentication.ID }
            };
            var userItem1    = (await userFilter1.GetUserAsync(app)) as IUserItem;
            var actualPath   = string.Empty;
            var expectedPath = userItem1.Path;
            await userContext.AddItemsDeletedEventHandlerAsync(UserContext_ItemsDeleted);

            await userItem1.DeleteAsync(authentication);

            Assert.AreEqual(expectedPath, actualPath);
            await userContext.RemoveItemsDeletedEventHandlerAsync(UserContext_ItemsDeleted);

            var userFilter2 = new UserFilter()
            {
                ExcludedUserIDs = new[] { Authentication.AdminID, authentication.ID }
            };
            var userItem2 = (await userFilter2.GetUserAsync(app)) as IUserItem;
            await userItem2.DeleteAsync(authentication);

            Assert.AreEqual(expectedPath, actualPath);

            void UserContext_ItemsDeleted(object sender, ItemsDeletedEventArgs <IUserItem> e)
            {
                var userItem = e.Items.Single();

                actualPath = e.ItemPaths.Single();
            }
        }