use of uk.gov.justice.services.adapter.rest.mapping.BasicActionMapperHelper in project microservice_framework by CJSCommonPlatform.
the class RestAdapterGenerator_ActionMapperTest method shouldReturnActionNameForPOSTResourceSameActionMappedToTwoMediaTypes.
@Test
public void shouldReturnActionNameForPOSTResourceSameActionMappedToTwoMediaTypes() throws Exception {
generator.run(restRamlWithCommandApiDefaults().with(resource("/case").with(httpActionWithDefaultMapping(POST).with(mapping().withName("contextC.someAction").withRequestType("application/vnd.ctx.command.somemediatype1+json")).with(mapping().withName("contextD.someAction").withRequestType("application/vnd.ctx.command.somemediatype2+json")).withMediaTypeWithDefaultSchema("application/vnd.ctx.command.somemediatype1+json").withMediaTypeWithDefaultSchema("application/vnd.ctx.command.somemediatype2+json"))).build(), configurationWithBasePackage(BASE_PACKAGE, outputFolder, new CommonGeneratorProperties()));
final Class<?> mapperClass = compiler.compiledClassOf(BASE_PACKAGE, "mapper", "DefaultCommandApiCaseResourceActionMapper");
final Object mapperObject = mapperClass.getConstructor(ActionMapperHelper.class).newInstance(new BasicActionMapperHelper());
final Method actionMethod = methodOf(mapperClass, "actionOf").get();
Object action = actionMethod.invoke(mapperObject, "postContextCSomeActionCase", "POST", headersWith("Content-Type", "application/vnd.ctx.command.somemediatype1+json"));
assertThat(action, is("contextC.someAction"));
action = actionMethod.invoke(mapperObject, "postContextDSomeActionCase", "POST", headersWith("Content-Type", "application/vnd.ctx.command.somemediatype2+json"));
assertThat(action, is("contextD.someAction"));
}
Aggregations