Пример #1
0
        //комплексный тест: Добавляет награду, меняет ее имя, потом удаляет ее
        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);
        }