Как создать реализацию Request.Form C# MVC

208
01 марта 2017, 18:21

Есть метод действия который регистрирует пользователя. Что бы не засорять модель, вынес подтверждения пароля как отдельное поле в представлении. В итоге это значение получаю через Request.Form["Повторите пароль"]

Часть метода действия:

if (user.Password == Request.Form["Повторите пароль"] && ModelState.IsValid) 
            {
                TempData["Message"] = "Регистрация прошла успешно! Можете логиниться";
                repository.Add_New_User(user);
                return Redirect("/Account/Login");
            } 

И вот начал я писать тест и как мне задать вот этот Request.Form:

 [TestMethod]
        public void Registr_Error(
        {
            User testUser = new User()
            {
                LoginUser = "IlyaLogin",
                Password = "IlyaPassword"
            };
            Mock<IUsersRepository> mock = new Mock<IUsersRepository>();
            mock.Setup(m => m.Users).Returns(new User[] {
                new User { LoginUser = "Vova", Password="123123"},
                testUser
            }.AsQueryable());
            AccountController target = new AccountController(mock.Object, null);
            ViewResult result = (ViewResult)target.Registr(testUser, null);
            Assert.AreEqual("Registr", result.ViewName);
            Assert.IsFalse(result.ViewData.ModelState.IsValid);
        }
Answer 1
 Mock<HttpRequestBase> request = new Mock<HttpRequestBase>();
 request
    .Setup(request => request.Form)
    .Returns(new FormCollection { { "Повторите пароль", "Password" } });  
 Mock<HttpContextBase> context = new Mock<HttpContextBase>();
 context
    .SetupGet(c => c.Request)
    .Returns(request.Object);
 Controller controller = new Controller(); // System Under Test
 controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller);
READ ALSO
Как реализовать раздачу прав доступа в программе?

Как реализовать раздачу прав доступа в программе?

Добрый день! На текущий момент реализована следующая схема: В MySQL хранится 4 таблицы:

253
Credentials LibGit2Sharp

Credentials LibGit2Sharp

Добрый день!

236
Перспектива использования WPF

Перспектива использования WPF

Всем доброго дня!

458
Web Api и Asp.Net MVC клиент

Web Api и Asp.Net MVC клиент

Сделал в учебных целях AspNet MVC приложение ресторан

312