public void SingleAsyncWithMoreThanOneThrowsException()
        {
            // Arrange
            var singleDummy = new Dummy
            {
                Id   = Guid.NewGuid().ToString(),
                Name = "John"
            };

            var dummies = new List <Dummy>
            {
                new Dummy
                {
                    Id   = Guid.NewGuid().ToString(),
                    Name = "Nick"
                },
                singleDummy
            };
            Expression <Func <Dummy, bool> > predicate = x => true;

            var dataSource = dummies.AsQueryable();
            var expected   = dataSource.Where(predicate);

            MockHelpers.ResponseSetup(expected, dataSource, ref _mockDocumentClient);
            var entityStore = new CosmosStore <Dummy>(new CosmonautClient(_mockDocumentClient.Object), "databaseName");

            // Act
            var result = new Action(() => entityStore.Query().SingleAsync(predicate).GetAwaiter().GetResult());

            //Assert
            result.Should().Throw <InvalidOperationException>().WithMessage("Sequence contains more than one element");
        }
        public async Task SingleAsyncReturnsObject()
        {
            // Arrange
            var singleDummy = new Dummy
            {
                Id   = Guid.NewGuid().ToString(),
                Name = "John"
            };

            var dummies = new List <Dummy>
            {
                new Dummy
                {
                    Id   = Guid.NewGuid().ToString(),
                    Name = "Nick"
                },
                singleDummy
            };
            Expression <Func <Dummy, bool> > predicate = x => x.Name == "John";

            var dataSource = dummies.AsQueryable();
            var expected   = dataSource.Where(predicate);

            MockHelpers.ResponseSetup(expected, dataSource, ref _mockDocumentClient);
            var entityStore = new CosmosStore <Dummy>(new CosmonautClient(_mockDocumentClient.Object), "databaseName");

            // Act
            var result = await entityStore.Query().SingleAsync(predicate);

            //Assert
            result.Should().BeEquivalentTo(singleDummy);
        }
示例#3
0
        public async Task FirstAsyncReturnsObject()
        {
            // Arrange
            var firstDummy = new Dummy
            {
                Id   = Guid.NewGuid().ToString(),
                Name = "Nick"
            };

            var dummies = new List <Dummy>
            {
                firstDummy,
                new Dummy
                {
                    Id   = Guid.NewGuid().ToString(),
                    Name = "John"
                }
            };
            Expression <Func <Dummy, bool> > predicate = t => true;

            var dataSource = dummies.AsQueryable();
            var expected   = dataSource.Where(predicate);

            var entityStore = MockHelpers.ResponseSetup(expected, dataSource, ref _mockDocumentClient);

            // Act
            var result = await entityStore.Query().FirstAsync(predicate);

            //Assert
            result.Should().BeEquivalentTo(firstDummy);
        }
示例#4
0
        public async Task FirstOrDefaultAsyncWithNoItemsReturnsNull()
        {
            // Arrange
            var dummies = new List <Dummy>();
            Expression <Func <Dummy, bool> > predicate = x => true;

            var dataSource = dummies.AsQueryable();
            var expected   = dataSource.Where(predicate);

            var entityStore = MockHelpers.ResponseSetup(expected, dataSource, ref _mockDocumentClient);

            // Act
            var result = await entityStore.Query().FirstOrDefaultAsync(predicate);

            //Assert
            result.Should().BeNull();
        }
示例#5
0
        public void FirstAsyncWithNoItemsThrowsException()
        {
            // Arrange
            var dummies = new List <Dummy>();
            Expression <Func <Dummy, bool> > predicate = x => true;

            var dataSource = dummies.AsQueryable();
            var expected   = dataSource.Where(predicate);

            var entityStore = MockHelpers.ResponseSetup(expected, dataSource, ref _mockDocumentClient);

            // Act
            var result = new Action(() => entityStore.Query().FirstAsync(predicate).GetAwaiter().GetResult());

            //Assert
            result.Should().Throw <InvalidOperationException>().WithMessage("Sequence contains no elements");
        }