public async Task TestSetupDatabaseAsyncOnlyOneUpdateOfCosmosOk()
        {
            //SETUP
            var booksOption = this.CreateUniqueClassOptions <BookDbContext>();
            var orderOption = this.CreateUniqueClassOptions <OrderDbContext>();
            var services    = new ServiceCollection();

            services.AddSingleton(booksOption);
            services.AddScoped <BookDbContext>();
            services.AddSingleton(orderOption);
            services.AddScoped <OrderDbContext>();
            services.AddSingleton <IWebHostEnvironment>(new MyWebHostEnvironment {
                WebRootPath = TestData.GetTestDataDir()
            });
            services.AddLogging();

            var serviceProvider = services.BuildServiceProvider();
            var host            = new MyHost {
                Services = serviceProvider
            };

            using (var bookContext = new BookDbContext(booksOption))
            {
                bookContext.Database.EnsureDeleted();
            }

            //ATTEMPT
            await host.SetupDatabaseAsync();

            //VERIFY
            using (var bookContext = new BookDbContext(booksOption))
            {
                bookContext.Books.Count().ShouldEqual(6);
            }
        }
        public async Task TestSetupDatabaseAsyncOnlyOneUpdateOfCosmosOk()
        {
            //SETUP
            var booksOption  = this.CreateUniqueClassOptions <BookDbContext>();
            var orderOption  = this.CreateUniqueClassOptions <OrderDbContext>();
            var cosmosOption = this.GetCosmosDbOptions <CosmosDbContext>();
            var services     = new ServiceCollection();

            services.RegisterGenericEventRunner(Assembly.GetAssembly(typeof(BookChangeHandlerAsync)));
            services.AddTransient <IBookToCosmosBookService, BookToCosmosBookService>();

            services.AddSingleton(booksOption);
            services.AddScoped <BookDbContext>();
            services.AddSingleton(orderOption);
            services.AddScoped <OrderDbContext>();
            services.AddSingleton(cosmosOption);
            services.AddScoped <CosmosDbContext>();
            services.AddSingleton <IWebHostEnvironment>(new MyWebHostEnvironment {
                WebRootPath = TestData.GetTestDataDir()
            });
            services.AddLogging();

            var serviceProvider = services.BuildServiceProvider();
            var host            = new MyHost {
                Services = serviceProvider
            };

            using (var bookContext = new BookDbContext(booksOption))
            {
                bookContext.Database.EnsureDeleted();
            }
            using (var cosmosContext = new CosmosDbContext(cosmosOption))
            {
                await cosmosContext.Database.EnsureDeletedAsync();
            }

            //ATTEMPT
            await host.SetupDatabaseAsync();

            //VERIFY
            using (var bookContext = new BookDbContext(booksOption))
            {
                bookContext.Books.Count().ShouldEqual(6);
            }
        }