public void Create_Controller_Returns_View_To_Index_When_Model_Is_Not_Valid() { var adService = new Mock <RealEstateAdService>(It.IsAny <IApplicationDbContext>()); var cityService = new Mock <CityService>(It.IsAny <IApplicationDbContext>()); var imgService = new Mock <RealEstateImageService>(It.IsAny <IApplicationDbContext>()); var fileService = new Mock <UserFileService>(); var mappingService = new Mock <MappingService>(); var server = new Mock <HttpServerUtilityBase>(); var curUserSvc = new Mock <CurrentUserService>(); var controller = new RealEstateAdController(adService.Object, cityService.Object, imgService.Object, fileService.Object, curUserSvc.Object, mappingService.Object, server.Object); var ad = new CreateAdViewModel() { Title = "The New Mansion" }; //Simulate validation otherwise ModelState.IsValid will always be true controller.ModelState.AddModelError("Error", "Title is incorrect"); var view = controller.Create(ad) as ViewResult; Assert.IsNotNull(view); Assert.AreEqual(view.Model, ad, "Failed"); }
public void Create_Controller_Redirects_To_Index_When_Model_Is_Valid() { //Arrange var controller = new RealEstateAdController(_adSvc.Object, _citySvc.Object, _imgSvc.Object, _fileSvc.Object, _curUserSvc.Object, _mappingSvc.Object, _server.Object); var ad = new CreateAdViewModel() { Title = "The New Mansion", PostedImage = _postedFile.Object }; //Act var view = controller.Create(ad) as RedirectToRouteResult; //Assert _adSvc.Verify(a => a.Add(It.IsAny <RealEstateAd>()), Times.Once, "Failed to call Add method of adService"); _fileSvc.Verify(f => f.UploadFile(It.IsAny <Stream>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>()), Times.Once, "Failed to call UploadFile"); _mappingSvc.Verify(m => m.Map <CreateAdViewModel, RealEstateAd>(It.IsAny <CreateAdViewModel>()), Times.Once, "Failed to call mapper"); _imgSvc.Verify(i => i.Add(It.IsAny <Image>()), Times.Once); Assert.IsNotNull(view, "Controller does not redirect"); }