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

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

            var expectedDataBaseState = DataBaseState.Loaded;
            var actualDataBaseState   = dataBase.DataBaseState;

            await dataBaseContext.AddItemsStateChangedEventHandlerAsync(DataBaseContext_ItemsStateChanged);

            await dataBase.LoadAsync(authentication);

            Assert.AreEqual(expectedDataBaseState, actualDataBaseState);

            await dataBaseContext.RemoveItemsStateChangedEventHandlerAsync(DataBaseContext_ItemsStateChanged);

            await dataBase.UnloadAsync(authentication);

            Assert.AreEqual(expectedDataBaseState, actualDataBaseState);

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

                actualDataBaseState = dataBase.DataBaseState;
            }
        }