public void RedirectToActionResult_ThrowsIsTypeException_WhenIActionResultIsNotRedirectToActionResult()
        {
            // Arrange
            var mockActionResult = new Mock <IActionResult>(MockBehavior.Strict);

            // Act & Assert
            Assert.Throws <IsTypeException>(() => MvcAssert.RedirectToActionResult(mockActionResult.Object, "Index"));
        }
        public void RedirectToActionResult_ThrowsEqualException_WhenActionNameNotEqual()
        {
            // Arrange
            var redirectToActionResult = new RedirectToActionResult("Index", null, null);

            // Act & Assert
            Assert.Throws <EqualException>(
                () => MvcAssert.RedirectToActionResult(
                    redirectToActionResult,
                    "NotIndex"
                    )
                );
        }
        public void RedirectToActionResult_ThrowsEqualException_WhenRouteValuesNotEqual()
        {
            // Arrange
            var redirectToActionResult = new RedirectToActionResult("Index", "Home", new { ReturnUrl = "ReturnUrl" });

            // Act & Assert
            Assert.Throws <EqualException>(
                () => MvcAssert.RedirectToActionResult(
                    redirectToActionResult,
                    "Index",
                    "Home",
                    new List <KeyValuePair <string, object> >
            {
                new KeyValuePair <string, object>("ReturnUrl", "NotReturnUrl")
            }
                    )
                );
        }
Esempio n. 4
0
        public void RedirectToLocal_Success(string returnUrl, bool isLocalUrl, string actionName, string controllerName)
        {
            // Arrange
            var mockUrlHelper = new Mock <IUrlHelper>(MockBehavior.Strict);

            mockUrlHelper
            .Setup(x => x.IsLocalUrl(returnUrl))
            .Returns(isLocalUrl)
            .Verifiable();

            _mockController.Object.Url = mockUrlHelper.Object;

            if (_mockController.Object.Url.IsLocalUrl(returnUrl))
            {
                _mockController
                .Setup(x => x.Redirect(returnUrl))
                .Returns(() => new RedirectResult(returnUrl))
                .Verifiable();
            }
            else
            {
                _mockController
                .Setup(x => x.RedirectToAction(actionName, controllerName))
                .Returns(() => new RedirectToActionResult(actionName, controllerName, null))
                .Verifiable();
            }


            // Act
            var actionResult = _mockController.Object.RedirectToLocal(returnUrl, actionName, controllerName);

            // Assert
            mockUrlHelper.Verify();
            _mockController.Verify();

            if (_mockController.Object.Url.IsLocalUrl(returnUrl))
            {
                MvcAssert.RedirectResult(actionResult, returnUrl);
            }
            else
            {
                MvcAssert.RedirectToActionResult(actionResult, actionName, controllerName);
            }
        }
        public void Index_WhenHostingEnvironmentIsNotDevelopment_RedirectToActionResult(string returnUrl)
        {
            // Arrange
            var controller = new HomeController(new NullLogger <HomeController>(), new HostingEnvironment());

            // Act
            var actionResult = controller.Index(returnUrl);

            // Assert
            MvcAssert.RedirectToActionResult(
                actionResult,
                "Index",
                "SignIn",
                new List <KeyValuePair <string, object> >
            {
                new KeyValuePair <string, object>("ReturnUrl", returnUrl)
            }
                );
        }
        public void RedirectToActionResult_ReturnRedirectToActionResult()
        {
            // Arrange
            var redirectToActionResult = new RedirectToActionResult("Index", "Home", new { ReturnUrl = "ReturnUrl" });

            // Act & Assert
            var result = Assert.IsType <RedirectToActionResult>(
                MvcAssert.RedirectToActionResult(
                    redirectToActionResult,
                    "Index",
                    "Home",
                    new List <KeyValuePair <string, object> >
            {
                new KeyValuePair <string, object>("ReturnUrl", "ReturnUrl")
            }
                    )
                );

            Assert.Equal(redirectToActionResult, result);
        }