public async Task ItemsAuthenticationEntered_TestAsync()
        {
            var authentication = await this.TestContext.LoginRandomAsync();

            var dataBaseFilter = new DataBaseFilter(DataBaseFlags.Loaded | DataBaseFlags.NotLocked | DataBaseFlags.Public);
            var dataBase       = await dataBaseFilter.GetDataBaseAsync(app);

            var expectedDataBase = dataBase;
            var expectedUserID   = authentication.ID;
            var actualDataBase   = null as IDataBase;
            var actualUserID     = string.Empty;

            await dataBaseContext.AddItemsAuthenticationEnteredEventHandlerAsync(DataBaseContext_ItemsAuthenticationEntered);

            await dataBase.EnterAsync(authentication);

            Assert.AreEqual(expectedDataBase, actualDataBase);
            Assert.AreEqual(expectedUserID, actualUserID);
            await dataBase.LeaveAsync(authentication);

            await dataBaseContext.RemoveItemsAuthenticationEnteredEventHandlerAsync(DataBaseContext_ItemsAuthenticationEntered);

            await dataBase.EnterAsync(authentication);

            Assert.AreEqual(expectedDataBase, actualDataBase);
            Assert.AreEqual(expectedUserID, actualUserID);

            void DataBaseContext_ItemsAuthenticationEntered(object sender, ItemsEventArgs <IDataBase> e)
            {
                var dataBase = e.Items.Single();

                actualDataBase = dataBase;
                actualUserID   = e.InvokeID;
            }
        }