public void CanDeleteProduct() { var mock = MockEFServices.GetMockForIncomeDocumentService(); var incomeService = mock.Object; var controller = new IncomesController(incomeService, productService, sizeService); var income = incomeService.GetById(2); var incomeViewModel = income.ToViewModel(); var guidToDelete = incomeViewModel.Products[0].Guid; int productCountBeforeDelete = incomeViewModel.Products.Count; ViewResult result = controller.Edit(incomeViewModel, null, guidToDelete, null) as ViewResult; mock.Verify(m => m.Add(It.IsAny<IncomeEFModel>()), Times.Never); mock.Verify(m => m.Save(), Times.Never); Assert.AreEqual(productCountBeforeDelete - 1, incomeViewModel.Products.Count); Assert.IsFalse(incomeViewModel.Products.Exists(p => p.Guid == guidToDelete)); Assert.IsInstanceOfType(result, typeof(ViewResult)); }
public void CanGenerateEditPage() { var controller = new IncomesController(incomeService, productService, sizeService); IncomeMVCModel result = (IncomeMVCModel)((ViewResult)controller.Edit(2)).Model; Assert.IsNotNull(result); Assert.AreEqual(2, result.Id); Assert.AreEqual("Partner2", result.BusinessPartner); }
public void CanSaveValidChanges() { var mock = MockEFServices.GetMockForIncomeDocumentService(); var incomeService = mock.Object; var controller = new IncomesController(incomeService, productService, sizeService); var income = incomeService.GetById(2); var incomeViewModel = income.ToViewModel(); int productCountBeforeDelete = incomeViewModel.Products.Count; RedirectToRouteResult result = controller.Edit(incomeViewModel, "Any string", null, null) as RedirectToRouteResult; mock.Verify(m => m.Update(income), Times.Once); mock.Verify(m => m.Save(), Times.Once); Assert.AreEqual("Index", result.RouteValues["action"]); Assert.AreEqual(productCountBeforeDelete, incomeViewModel.Products.Count); Assert.IsInstanceOfType(result, typeof(RedirectToRouteResult)); }
public void CannotSubmitInvalidChanges() { var mock = MockEFServices.GetMockForIncomeDocumentService(); var incomeService = mock.Object; var controller = new IncomesController(incomeService, productService, sizeService); var income = incomeService.GetById(2); var incomeViewModel = income.ToViewModel(); int productCountBeforeDelete = incomeViewModel.Products.Count; ViewResult result = controller.Edit(incomeViewModel, null, null, null) as ViewResult; mock.Verify(m => m.Add(It.IsAny<IncomeEFModel>()), Times.Never); mock.Verify(m => m.Save(), Times.Never); Assert.AreEqual(productCountBeforeDelete, incomeViewModel.Products.Count); Assert.IsInstanceOfType(result, typeof(ViewResult)); }
public void CannotEditNonexistingIncome() { var controller = new IncomesController(incomeService, productService, sizeService); ActionResult result = controller.Edit(20) as ActionResult; Assert.IsInstanceOfType(result, typeof(HttpNotFoundResult)); }
public void CannotDeleteNotExistingProduct() { var mock = MockEFServices.GetMockForIncomeDocumentService(); var incomeService = mock.Object; var controller = new IncomesController(incomeService, productService, sizeService); var income = incomeService.GetById(2); var incomeViewModel = income.ToViewModel(); int productCountBeforeDelete = incomeViewModel.Products.Count; HttpStatusCodeResult result = controller.Edit(incomeViewModel, null, new Guid(), null) as HttpStatusCodeResult; mock.Verify(m => m.Add(It.IsAny<IncomeEFModel>()), Times.Never); mock.Verify(m => m.Save(), Times.Never); Assert.AreEqual(productCountBeforeDelete, incomeViewModel.Products.Count); Assert.AreEqual(400, result.StatusCode); }