public void TestObtenerPerfilBorrarRedirect()
        {
            // Instancio el form con la llave NombrePerfil para que tenga un null.
            NameValueCollection form = new NameValueCollection();

            form["NombrePerfil"] = "Prueba no null";
            var controllercontext = new Mock <ControllerContext>();

            controllercontext.Setup(frm => frm.HttpContext.Request.Form).Returns(form);
            PerfilController controller = new PerfilController();

            controller.ControllerContext = controllercontext.Object;

            // Act
            var result = (RedirectToRouteResult)controller.ObtenerPerfilBorrar();

            // Assert
            Assert.IsNotNull(result);

            // Hay que iterar hasta la segunda posicion para obtener el nombre del action.
            var redirectToActionName = result.RouteValues.Values.GetEnumerator();

            redirectToActionName.MoveNext();
            redirectToActionName.MoveNext();

            Assert.AreEqual("ConfirmarBorrado", redirectToActionName.Current);
        }
        public void TestObtenerPerfilBorrarBadRequest()
        {
            // Instancio el form con la llave NombrePerfil para que tenga un null.
            NameValueCollection form = new NameValueCollection();

            form["NombrePerfil"] = null;
            var controllercontext = new Mock <ControllerContext>();

            controllercontext.Setup(frm => frm.HttpContext.Request.Form).Returns(form);
            PerfilController controller = new PerfilController();

            controller.ControllerContext = controllercontext.Object;

            // Act
            var result = controller.ObtenerPerfilBorrar();

            // Assert
            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(HttpStatusCodeResult));
            var httpResult = result as HttpStatusCodeResult;

            // 400 = bad request.
            Assert.AreEqual(400, httpResult.StatusCode);
        }