Inheritance: Microsoft.AspNetCore.Mvc.Controller
        public void CreatedAtAction_SameController_ResolvesCorrectly()
        {
            // Arrange
            var controller = new MyController();

            // Act
            var result = controller.CreatedAtActionSameController() as CreatedAtActionResult;

            // Assert
            Assert.NotNull(result);
            Assert.Equal(null, result.ControllerName);
            Assert.Equal("CreatedAtActionSameController", result.ActionName);
            Assert.Empty(result.RouteValues);
            Assert.Equal("test", result.Value);
        }
        public void CreatedAtRoute_SameController_ResolvesCorrectly()
        {
            // Arrange
            var controller = new MyController();

            // Act
            var result = controller.CreatedAtRouteSameController() as CreatedAtRouteResult;

            // Assert
            Assert.NotNull(result);
            Assert.Equal("route", result.RouteName);
            Assert.Equal(2, result.RouteValues.Count);
            Assert.Equal("My", result.RouteValues["controller"]);
            Assert.Equal("CreatedAtRouteSameController", result.RouteValues["action"]);
            Assert.Equal("test", result.Value);
        }
        public void CreatedAtActionWithRouteValues_OtherController_ResolvesCorrectly()
        {
            // Arrange
            var controller = new MyController();

            // Act
            var result = controller.CreatedAtActionOtherControllerRouteValues() as CreatedAtActionResult;

            // Assert
            Assert.NotNull(result);
            Assert.Equal("Other", result.ControllerName);
            Assert.Equal("Action", result.ActionName);
            Assert.Equal(1, result.RouteValues.Count);
            Assert.Equal(1, result.RouteValues["id"]);
            Assert.Equal("test", result.Value);
        }
        public void RedirectToRoutePermanentWithRouteValues_OtherController_ResolvesCorrectly()
        {
            // Arrange
            var controller = new MyController();

            // Act
            var result = controller.RedirectToRoutePermanentOtherControllerRouteValues() as RedirectToRouteResult;

            // Assert
            Assert.NotNull(result);
            Assert.Equal("route", result.RouteName);
            Assert.Equal(3, result.RouteValues.Count);
            Assert.Equal("Other", result.RouteValues["controller"]);
            Assert.Equal("Action", result.RouteValues["action"]);
            Assert.Equal(1, result.RouteValues["id"]);
            Assert.Equal(true, result.Permanent);
        }
        public void RedirectToRoutePermanent_SameController_ResolvesCorrectly()
        {
            // Arrange
            var controller = new MyController();

            // Act
            var result = controller.RedirectToRoutePermanentSameController() as RedirectToRouteResult;

            // Assert
            Assert.NotNull(result);
            Assert.Equal("route", result.RouteName);
            Assert.Equal(2, result.RouteValues.Count);
            Assert.Equal("My", result.RouteValues["controller"]);
            Assert.Equal("CreatedAtRouteSameController", result.RouteValues["action"]);
            Assert.Equal(true, result.Permanent);
        }
        public void RedirectToActionPermanent_OtherController_ResolvesCorrectly()
        {
            // Arrange
            var controller = new MyController();

            // Act
            var result = controller.RedirectToActionPermanentOtherController() as RedirectToActionResult;

            // Assert
            Assert.NotNull(result);
            Assert.Empty(result.RouteValues);
            Assert.Equal("Other", result.ControllerName);
            Assert.Equal("Action", result.ActionName);
            Assert.Equal(true, result.Permanent);
        }
        public void RedirectToActionPermanentWithRouteValues_SameController_ResolvesCorrectly()
        {
            // Arrange
            var controller = new MyController();

            // Act
            var result = controller.RedirectToActionPermanentSameControllerRouteValues() as RedirectToActionResult;

            // Assert
            Assert.NotNull(result);
            Assert.Equal(1, result.RouteValues.Count);
            Assert.Equal(null, result.ControllerName);
            Assert.Equal("CreatedAtRouteSameControllerRouteValues", result.ActionName);
            Assert.Equal(1, result.RouteValues["id"]);
            Assert.Equal(true, result.Permanent);
        }
        public void RedirectToActionWithRouteValues_OtherController_ResolvesCorrectly()
        {
            // Arrange
            var controller = new MyController();

            // Act
            var result = controller.RedirectToActionOtherControllerRouteValues() as RedirectToActionResult;

            // Assert
            Assert.NotNull(result);
            Assert.Equal(1, result.RouteValues.Count);
            Assert.Equal("Other", result.ControllerName);
            Assert.Equal("Action", result.ActionName);
            Assert.Equal(1, result.RouteValues["id"]);
            Assert.Equal(false, result.Permanent);
        }
        public void RedirectToAction_SameController_ResolvesCorrectly()
        {
            // Arrange
            var controller = new MyController();

            // Act
            var result = controller.RedirectToActionSameController() as RedirectToActionResult;

            // Assert
            Assert.NotNull(result);
            Assert.Empty(result.RouteValues);
            Assert.Equal(null, result.ControllerName);
            Assert.Equal("CreatedAtRouteSameController", result.ActionName);
            Assert.Equal(false, result.Permanent);
        }