public void CanSaveValidPortfolioChanges() { var mockedBlog = new Mock <IBlogPostRepository>(); var mockedPortfolio = new Mock <IPortfolioProjectRepository>(); var target = new AdminController(mockedBlog.Object, mockedPortfolio.Object); var project = new AdminPortfolioFull { Id = 3, Name = "A New Project", Description = "desc", ImgUrl = "/Content", LinkUrl = "www.sample.com", Technologies = "C#, Java" }; var sameProject = new PortfolioProject { Id = 3, Name = "A New Project", Description = "desc", ImgUrl = "/Content", LinkUrl = "www.sample.com", Technologies = "C#, Java" }; //mockedPortfolio.Setup(m => m.SavePortfolioProject(sameProject)).Returns(sameProject); var result = target.AddOrEditPortfolio(project); portfolioMock.Verify(m => m.SavePortfolioProject(sameProject)); Assert.IsInstanceOfType(result, typeof(RedirectResult)); }
public ViewResult AddOrEditPortfolio(int?id) { //if no id given, send user to an empty form if (id == null) { return(View(new AdminPortfolioFull())); } var project = _portfolioRepo.GetPortfolioProject((int)id); //otherwise, if project exists, load its info into //the form to be edited if (project != null) { var model = new AdminPortfolioFull { Description = project.Description, Id = project.Id, ImgUrl = project.ImgUrl, LinkUrl = project.LinkUrl, Name = project.Name, Technologies = project.Technologies }; return(View(model)); } //if it does not exist, send back to main portfolio project page return(View("Portfolio", GetAllProjectsForVm())); }
public ActionResult AddOrEditPortfolio(AdminPortfolioFull model) { //if model state is valid, save the project to db if (ModelState.IsValid) { var project = new PortfolioProject { Description = model.Description, Id = model.Id, ImgUrl = model.ImgUrl, LinkUrl = model.LinkUrl, Name = model.Name, Technologies = model.Technologies }; _portfolioRepo.SavePortfolioProject(project); return(RedirectToAction("Portfolio")); } //if model not valid, send user back to form with partial model return(View(model)); }
public void CannotSaveInvalidPortfolioChanges() { var target = GetAdminController(); target.ModelState.AddModelError("error", "error"); var project = new AdminPortfolioFull { Id = 3, Name = "A New Project", Description = "desc", ImgUrl = "/Content", LinkUrl = "www.sample.com", Technologies = "C#, Java" }; var result = target.AddOrEditPortfolio(project); portfolioMock.Verify(m => m.SavePortfolioProject(It.IsAny <PortfolioProject>()), Times.Never); Assert.IsInstanceOfType(result, typeof(ViewResult)); }