示例#1
0
        public async Task PutConcertReturnsNotFoundTest()
        {
            // Arrange
            var mock    = new Mock <IUpdateEntry>();
            var entries = new List <IUpdateEntry>();

            entries.Add(mock.Object);

            int     testId     = 1;
            Concert concert    = GetTestConcerts().FirstOrDefault(p => p.Id == testId);
            var     mockLogger = new Mock <ILogger <ConcertsController> >();
            var     mockRepo   = new Mock <IConcertRepository>();

            mockRepo.Setup(c => c.ChangeState(concert, EntityState.Modified)).Verifiable();
            mockRepo.Setup(c => c.SaveChanges()).Throws(
                new DbUpdateConcurrencyException(It.IsNotNull <string>(), entries));
            mockRepo.Setup(c => c.ConcertExists(testId)).Returns(false);
            var controller = new ConcertsController(mockRepo.Object, mockLogger.Object);

            // Act
            var result = await controller.PutConcert(testId, concert);

            // Assert
            Assert.IsType <NotFoundResult>(result);
        }
示例#2
0
        public async Task PutConcertReturnsBadRequestResultIdTest()
        {
            // Arrange
            int     testId     = 2;
            Concert concert    = GetTestConcerts()[0];
            var     mockRepo   = new Mock <IConcertRepository>();
            var     mockLogger = new Mock <ILogger <ConcertsController> >();
            var     controller = new ConcertsController(mockRepo.Object, mockLogger.Object);

            // Act
            var result = await controller.PutConcert(testId, concert);

            // Assert
            Assert.IsType <BadRequestResult>(result);
        }
示例#3
0
        public async Task PutConcertReturnsBadRequestResultModelStateTest()
        {
            // Arrange & Act
            var mockRepo   = new Mock <IConcertRepository>();
            var mockLogger = new Mock <ILogger <ConcertsController> >();
            var controller = new ConcertsController(mockRepo.Object, mockLogger.Object);

            controller.ModelState.AddModelError("error", "some error");

            // Act
            var result = await controller.PutConcert(id : 0, concert : null);

            // Assert
            Assert.IsType <BadRequestObjectResult>(result);
        }
示例#4
0
        public async Task PutConcertReturnsNoContentResultTest()
        {
            // Arrange
            int     testId     = 1;
            Concert concert    = GetTestConcerts().FirstOrDefault(p => p.Id == testId);
            var     mockLogger = new Mock <ILogger <ConcertsController> >();
            var     mockRepo   = new Mock <IConcertRepository>();

            mockRepo.Setup(c => c.ChangeState(concert, EntityState.Modified)).Verifiable();
            mockRepo.Setup(c => c.SaveChanges()).Returns(Task.CompletedTask);
            var controller = new ConcertsController(mockRepo.Object, mockLogger.Object);

            // Act
            var result = await controller.PutConcert(testId, concert);

            // Assert
            Assert.IsType <NoContentResult>(result);
        }