コード例 #1
0
ファイル: UnitTest1.cs プロジェクト: ssmith1992/LOTRExam
        public void CreatePost_SaveThroughRepository_WhenModelStateIsValid()
        {
            // Arrange
            var mockRepo = new Mock <IRaceRepository>();

            mockRepo.Setup(repo => repo.Save(It.IsAny <Race>()))
            //.Returns(Task.CompletedTask)
            .Verifiable();
            var  controller = new RaceController(mockRepo.Object);
            Race r          = new Race()
            {
                Name        = "Human",
                Description = "Don't listen to scientists"
            };

            // Act
            var result = controller.Create(r);

            // Assert
            var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Null(redirectToActionResult.ControllerName);
            Assert.Equal("Index", redirectToActionResult.ActionName);
            mockRepo.Verify();
        }
コード例 #2
0
ファイル: UnitTest1.cs プロジェクト: ssmith1992/LOTRExam
        public void CreatePost_ReturnsViewWithRace_WhenModelStateIsInvalid()
        {
            // Arrange
            var mockRepo   = new Mock <IRaceRepository>();
            var controller = new RaceController(mockRepo.Object);

            controller.ModelState.AddModelError("Name", "Required");
            var race = new Race()
            {
                Name = "", Description = "Karl Karlson something nice"
            };

            // Act
            var result = controller.Create(race);

            // Assert
            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsAssignableFrom <Race>(viewResult.ViewData.Model);

            Assert.IsType <Race>(model);
        }