use of com.linkedin.restli.internal.server.RestLiRouter in project rest.li by linkedin.
the class TestRestLiRouting method testActionNestedSimpleRouting.
@Test(dataProvider = TestConstants.RESTLI_PROTOCOL_1_2_PREFIX + "actionNestedSimpleRouting")
public void testActionNestedSimpleRouting(ProtocolVersion version, String uri) throws Exception {
Map<String, ResourceModel> pathRootResourceMap = buildResourceModels(StatusCollectionResource.class, LocationResource.class);
_router = new RestLiRouter(pathRootResourceMap, new RestLiConfig());
RestRequest request = createRequest(uri, "POST", version);
ServerResourceContext context = new ResourceContextImpl(new PathKeysImpl(), request, new RequestContext());
ResourceMethodDescriptor method = _router.process(context);
assertNotNull(method);
assertEquals(method.getActionName(), "new_status_from_location");
assertEquals(method.getType(), ResourceMethod.ACTION);
assertEquals(method.getMethod().getParameterTypes(), new Class<?>[] { String.class });
assertEquals(context.getPathKeys().get("statusID"), Long.valueOf(1));
}
use of com.linkedin.restli.internal.server.RestLiRouter in project rest.li by linkedin.
the class TestRestLiRouting method testRoutingAltBatch.
@Test(dataProvider = TestConstants.RESTLI_PROTOCOL_1_2_PREFIX + "routingAltBatch")
public void testRoutingAltBatch(String uri, ProtocolVersion version, String httpMethod, String restliMethod, ResourceMethod method, String methodName, Set<Long> expectedKeys) throws Exception {
Map<String, ResourceModel> pathRootResourceMap = buildResourceModels(StatusCollectionResource.class);
_router = new RestLiRouter(pathRootResourceMap, new RestLiConfig());
checkResult(uri, version, httpMethod, restliMethod, method, StatusCollectionResource.class, methodName, true);
checkBatchKeys(uri, version, httpMethod, expectedKeys);
}
use of com.linkedin.restli.internal.server.RestLiRouter in project rest.li by linkedin.
the class TestRestLiRouting method testRoutingComplexKey.
@Test(dataProvider = TestConstants.RESTLI_PROTOCOL_1_2_PREFIX + "routingComplexKey")
public void testRoutingComplexKey(String uri, ProtocolVersion version, String httpMethod, String restliMethod, ResourceMethod method, String methodName, boolean hasKeys) throws Exception {
Map<String, ResourceModel> pathRootResourceMap = buildResourceModels(DiscoveredItemsResource.class);
_router = new RestLiRouter(pathRootResourceMap, new RestLiConfig());
checkResult(uri, version, httpMethod, restliMethod, method, DiscoveredItemsResource.class, methodName, false, hasKeys ? new String[] { "discoveredItemId" } : new String[0]);
}
use of com.linkedin.restli.internal.server.RestLiRouter in project rest.li by linkedin.
the class TestRestLiRouting method testRestLiMethodMismatch.
@Test(dataProvider = TestConstants.RESTLI_PROTOCOL_1_2_PREFIX + "methodMismatch")
public void testRestLiMethodMismatch(String uri, ProtocolVersion version, String httpMethod, String restliMethod) throws Exception {
Map<String, ResourceModel> pathRootResourceMap = buildResourceModels(StatusCollectionResource.class, FollowsAssociativeResource.class, RepliesCollectionResource.class);
_router = new RestLiRouter(pathRootResourceMap, new RestLiConfig());
expectRoutingExceptionWithStatus(uri, version, httpMethod, restliMethod, HttpStatus.S_400_BAD_REQUEST);
}
use of com.linkedin.restli.internal.server.RestLiRouter in project rest.li by linkedin.
the class TestRestLiRouting method testRoutingDetailsCollectionDelete.
@Test(dataProvider = TestConstants.RESTLI_PROTOCOL_1_2_PREFIX + "routingDetailsCollectionEntity")
public void testRoutingDetailsCollectionDelete(ProtocolVersion version, String uri) throws Exception {
Map<String, ResourceModel> pathRootResourceMap = buildResourceModels(StatusCollectionResource.class);
_router = new RestLiRouter(pathRootResourceMap, new RestLiConfig());
RestRequest request = createRequest(uri, "DELETE", version);
ServerResourceContext context = new ResourceContextImpl(new PathKeysImpl(), request, new RequestContext());
ResourceMethodDescriptor resourceMethodDescriptor = _router.process(context);
assertNotNull(resourceMethodDescriptor);
assertEquals(resourceMethodDescriptor.getType(), ResourceMethod.DELETE);
assertNull(resourceMethodDescriptor.getActionName());
assertNull(resourceMethodDescriptor.getFinderName());
assertEquals(resourceMethodDescriptor.getMethod().getDeclaringClass(), StatusCollectionResource.class);
assertEquals(resourceMethodDescriptor.getMethod().getName(), "delete");
assertEquals(resourceMethodDescriptor.getMethod().getParameterTypes(), new Class<?>[] { Long.class });
assertEquals(resourceMethodDescriptor.getResourceModel().getName(), "statuses");
PathKeys keys = context.getPathKeys();
assertEquals(keys.getAsLong("statusID"), Long.valueOf(1));
assertNull(keys.getAsString("foo"));
}
Aggregations