public void AppliesToActionForGetActionWorksAsExpected(string actionName, string expectedTemplate) { // Arrange ControllerModel controller = ControllerModelHelpers.BuildControllerModel <CustomersController>(actionName); ActionModel action = controller.Actions.First(); ODataControllerActionContext context = ODataControllerActionContextHelpers.BuildContext(string.Empty, EdmModel, controller); context.Action = action; EntitySetRoutingConvention entitySetConvention = ConventionHelpers.CreateConvention <EntitySetRoutingConvention>(); // Act bool returnValue = entitySetConvention.AppliesToAction(context); Assert.True(returnValue); // Assert Assert.Equal(2, action.Selectors.Count); Assert.Equal(new[] { $"/{expectedTemplate}", $"/{expectedTemplate}/$count" }, action.Selectors.Select(s => s.AttributeRouteModel.Template)); }
public void AppliesToControllerAndActionOnEntitySetRoutingConvention_Throws_Context() { // Arrange EntitySetRoutingConvention convention = new EntitySetRoutingConvention(); // Act & Assert ExceptionAssert.ThrowsArgumentNull(() => convention.AppliesToController(null), "context"); ExceptionAssert.ThrowsArgumentNull(() => convention.AppliesToAction(null), "context"); }
public void AppliesToControllerReturnsExpectedForController(Type controllerType, bool expected) { // Arrange ControllerModel controller = ControllerModelHelpers.BuildControllerModel(controllerType); ODataControllerActionContext context = ODataControllerActionContextHelpers.BuildContext(string.Empty, EdmModel, controller); EntitySetRoutingConvention entitySetConvention = ConventionHelpers.CreateConvention <EntitySetRoutingConvention>(); // Act bool actual = entitySetConvention.AppliesToController(context); // Assert Assert.Equal(expected, actual); }
public void AppliesToActionDoesNothingForNonConventionAction(string actionName) { // Arrange ControllerModel controller = ControllerModelHelpers.BuildControllerModel <AnotherCustomersController>(actionName); ActionModel action = controller.Actions.First(); ODataControllerActionContext context = ODataControllerActionContextHelpers.BuildContext(string.Empty, EdmModel, controller); context.Action = controller.Actions.First(); EntitySetRoutingConvention entitySetConvention = ConventionHelpers.CreateConvention <EntitySetRoutingConvention>(); // Act entitySetConvention.AppliesToAction(context); // Assert Assert.Empty(action.Selectors); }
public void AppliesToActionForPostActionWorksAsExpected(string actionName, string expected) { // Arrange ControllerModel controller = ControllerModelHelpers.BuildControllerModel <CustomersController>(actionName); ActionModel action = controller.Actions.First(); ODataControllerActionContext context = ODataControllerActionContextHelpers.BuildContext(string.Empty, EdmModel, controller); context.Action = controller.Actions.First(); EntitySetRoutingConvention entitySetConvention = ConventionHelpers.CreateConvention <EntitySetRoutingConvention>(); // Act bool returnValue = entitySetConvention.AppliesToAction(context); Assert.True(returnValue); // Assert SelectorModel selector = Assert.Single(action.Selectors); Assert.Equal(expected, selector.AttributeRouteModel.Template); }
public void AppliesToAction_Works_ForPatchActionWorksAsExpected(Type controllerType, string actionName, string expected, bool ignoreCase) { // Arrange ControllerModel controller = ControllerModelHelpers.BuildControllerModel(controllerType, actionName); ActionModel action = controller.Actions.First(); ODataControllerActionContext context = ODataControllerActionContextHelpers.BuildContext(string.Empty, EdmModel, controller); context.Action = controller.Actions.First(); context.Options.RouteOptions.EnableActionNameCaseInsensitive = ignoreCase; EntitySetRoutingConvention entitySetConvention = ConventionHelpers.CreateConvention <EntitySetRoutingConvention>(); // Act bool returnValue = entitySetConvention.AppliesToAction(context); Assert.True(returnValue); // Assert SelectorModel selector = Assert.Single(action.Selectors); Assert.Equal(expected, selector.AttributeRouteModel.Template); }