public async Task GivenARegistryInitializer_WhenDatabaseIsNew_SearchParametersShouldBeUpserted()
        {
            ICosmosQuery <dynamic> cosmosQuery = Substitute.For <ICosmosQuery <dynamic> >();

            _cosmosDocumentQueryFactory.Create <dynamic>(Arg.Any <Container>(), Arg.Any <CosmosQueryContext>())
            .Returns(cosmosQuery);

            cosmosQuery
            .ExecuteNextAsync()
            .Returns(Substitute.ForPartsOf <FeedResponse <dynamic> >());

            Container container = Substitute.For <Container>();

            await _initializer.ExecuteAsync(container);

            container.Received().CreateTransactionalBatch(Arg.Any <PartitionKey>());
        }
        public async Task GivenARegistryInitializer_WhenDatabaseIsExisting_NothingNeedsToBeDone()
        {
            ICosmosQuery <dynamic> documentQuery = Substitute.For <ICosmosQuery <dynamic> >();

            _cosmosDocumentQueryFactory.Create <dynamic>(Arg.Any <Container>(), Arg.Any <CosmosQueryContext>())
            .Returns(documentQuery);

            var response = Substitute.ForPartsOf <FeedResponse <dynamic> >();

            response.GetEnumerator()
            .Returns(new List <dynamic> {
                new SearchParameterStatusWrapper()
            }.GetEnumerator());

            documentQuery
            .ExecuteNextAsync()
            .Returns(info => response);

            Container container = Substitute.For <Container>();

            await _initializer.ExecuteAsync(container);

            container.DidNotReceive().CreateTransactionalBatch(Arg.Any <PartitionKey>());
        }
        public async Task GivenAQuery_WhenASinglePageReturnsRequestedCount_ASingleQueryIsPerformced()
        {
            ICosmosQuery <int> cosmosQuery = Substitute.For <ICosmosQuery <int> >();

            _cosmosQueryFactory.Create <int>(default, default).ReturnsForAnyArgs(cosmosQuery);