public void TestGetAwаrdById() { var awardsController = new AwardsController(); //проверим которая существует int idAward = 2; var result = awardsController.GetAwardById(idAward); Assert.IsInstanceOfType(result, typeof(ViewResult)); Assert.AreEqual("AwardDetail", ((ViewResult)result).ViewName); Console.WriteLine("Страница награды с Id = {0} сформирована", idAward); //проверим которая НЕ существует idAward = 10000; result = awardsController.GetAwardById(idAward); Assert.IsInstanceOfType(result, typeof(ViewResult)); Assert.AreEqual("Error", ((ViewResult)result).ViewName); Console.WriteLine("Страница награды с Id = {0} НЕ существует", idAward); }
//комплексный тест: Добавляет награду, меняет ее имя, потом удаляет ее public void TestComplexAward() { string nameAward = "Test award 1"; //добавим Награду AwardViewModel award = new AwardViewModel() { Id = 0, ImageIsEmpty = true, PhotoAward = null, PhotoMIMEType = "", NameAward = nameAward, DescriptionAward = "Description Test award 1", }; var request = new Mock <HttpRequestBase>(); var context = new Mock <HttpContextBase>(); context.Setup(ctx => ctx.Request).Returns(request.Object); var awardsController = new AwardsController(); awardsController.ControllerContext = new ControllerContext(context.Object, new RouteData(), awardsController); var result = awardsController.SaveAward(award); Assert.IsInstanceOfType(result, typeof(PartialViewResult)); Assert.AreEqual("AwardSinglePartial", ((PartialViewResult)result).ViewName); //получим индентификатор добавленной награды award = (AwardViewModel)(((PartialViewResult)result).Model); int saveId = award.Id; Assert.IsTrue(saveId > 0); Assert.AreEqual(award.NameAward, nameAward); Console.WriteLine("Частичное представление для новой награды сформировано, Id = {0}, Name = {1}", saveId, award.NameAward); //изменим название награды nameAward = "Test award 232421"; award.NameAward = nameAward; result = awardsController.SaveAward(award); Assert.IsInstanceOfType(result, typeof(RedirectToRouteResult)); Assert.AreEqual("Index", ((RedirectToRouteResult)result).RouteValues["Action"]); Console.WriteLine("Редирект на метод Index со списком наград"); //получим измененную награду result = awardsController.GetAwardById(saveId); Assert.IsInstanceOfType(result, typeof(ViewResult)); Assert.AreEqual("AwardDetail", ((ViewResult)result).ViewName); Console.WriteLine("Страница награды с Id = {0} сформирована", saveId); award = (AwardViewModel)(((ViewResult)result).Model); Assert.AreEqual(award.NameAward, nameAward); Console.WriteLine("Наименование Награды изменено: Id = {0}, Наименование = {1}", saveId, award.NameAward); //удалим добавленную награду result = awardsController.DeleteAward(saveId); Assert.IsInstanceOfType(result, typeof(RedirectToRouteResult)); Assert.AreEqual("Index", ((RedirectToRouteResult)result).RouteValues["Action"]); Console.WriteLine("Редирект на метод Index со списком наград"); //проверим наличие награды result = awardsController.GetAwardById(saveId); Assert.IsInstanceOfType(result, typeof(ViewResult)); Assert.AreEqual("Error", ((ViewResult)result).ViewName); Console.WriteLine("Запись награды с Id = {0} удалена", saveId); }