public async Task QuerySingleAsync_ReturnsSingleIdCorrectly()
        {
            // Arrange
            var id      = Guid.NewGuid().ToString();
            var dummies = new List <Dummy>
            {
                new Dummy
                {
                    Id   = id,
                    Name = "Nick"
                },
                new Dummy
                {
                    Id   = Guid.NewGuid().ToString(),
                    Name = "John"
                }
            };

            var dataSource  = dummies.AsQueryable();
            var expected    = dataSource.Where(x => x.Name == "Nick").Select(x => x.Id);
            var sql         = "select value c.id from c where c.Name = 'Nick'";
            var entityStore = MockHelpers.ResponseSetupForQuery(sql, null, expected, dataSource, ref _mockDocumentClient);

            // Act
            var result = await entityStore.QuerySingleAsync <string>("select value c.id from c where c.Name = 'Nick'");

            //Assert
            result.Should().Be(id);
        }
        public async Task QueryMultipleAsyncReturnsIdAsStringCorrectly()
        {
            // Arrange
            var ids = new[] { Guid.NewGuid().ToString(), Guid.NewGuid().ToString() };

            var dummies = new List <Dummy>
            {
                new Dummy
                {
                    Id   = ids[0],
                    Name = "Nick"
                },
                new Dummy
                {
                    Id   = ids[1],
                    Name = "John"
                }
            };

            var dataSource = dummies.AsQueryable();
            var expected   = dataSource.Select(x => x.Id);

            var entityStore = MockHelpers.ResponseSetupForQuery("select value c.id from c", null, expected, dataSource, ref _mockDocumentClient);

            // Act
            var result = await entityStore.QueryMultipleAsync <string>("select value c.id from c");

            //Assert
            result.Should().BeEquivalentTo(ids);
        }
        public async Task QueryMultipleAsyncReturnsCorrectItems()
        {
            // Arrange
            var dummies = new List <Dummy>
            {
                new Dummy
                {
                    Id   = Guid.NewGuid().ToString(),
                    Name = "Nick"
                },
                new Dummy
                {
                    Id   = Guid.NewGuid().ToString(),
                    Name = "John"
                }
            };

            var dataSource  = dummies.AsQueryable();
            var entityStore = MockHelpers.ResponseSetupForQuery("select * from c", null, dataSource, dataSource, ref _mockDocumentClient);

            // Act
            var result = (await entityStore.QueryMultipleAsync("select * from c")).ToList();

            //Assert
            result.Count.Should().Be(2);
            result.Should().BeEquivalentTo(dummies);
        }
        public async Task QuerySingleAsync_ReturnsCorrectItem()
        {
            // Arrange
            var nickDummy = new Dummy
            {
                Id   = Guid.NewGuid().ToString(),
                Name = "Nick"
            };

            var dummies = new List <Dummy>
            {
                nickDummy,
                new Dummy
                {
                    Id   = Guid.NewGuid().ToString(),
                    Name = "John"
                }
            };

            var dataSource = dummies.AsQueryable();
            var expected   = dataSource.Where(x => x.Name == "Nick");

            var entityStore = MockHelpers.ResponseSetupForQuery("select top 1 * from c where c.Name = 'Nick'", null, expected, dataSource, ref _mockDocumentClient);

            // Act
            var result = await entityStore.QuerySingleAsync("select top 1 * from c where c.Name = 'Nick'");

            //Assert
            result.Should().BeEquivalentTo(nickDummy);
        }