Search in sources :

Example 66 with CommonGeneratorProperties

use of uk.gov.justice.services.generators.commons.config.CommonGeneratorProperties in project microservice_framework by CJSCommonPlatform.

the class RestAdapterGenerator_CodeStructureTest method shouldAddAnnotatedRestProcessorProperty.

@Test
public void shouldAddAnnotatedRestProcessorProperty() throws Exception {
    generator.run(restRamlWithCommandApiDefaults().with(defaultPostResource().withRelativeUri("/some/path")).build(), configurationWithBasePackage(BASE_PACKAGE, outputFolder, new CommonGeneratorProperties()));
    final Class<?> resourceClass = compiler.compiledClassOf(BASE_PACKAGE, "resource", "DefaultCommandApiSomePathResource");
    final Field dispatcher = resourceClass.getDeclaredField("restProcessor");
    assertThat(dispatcher, not(nullValue()));
    assertThat(dispatcher.getType(), equalTo(RestProcessor.class));
    assertThat(dispatcher.getAnnotation(Inject.class), not(nullValue()));
    assertThat(dispatcher.getModifiers(), is(0));
}
Also used : Inject(javax.inject.Inject) Field(java.lang.reflect.Field) CommonGeneratorProperties(uk.gov.justice.services.generators.commons.config.CommonGeneratorProperties) RestProcessor(uk.gov.justice.services.adapter.rest.processor.RestProcessor) Test(org.junit.Test)

Example 67 with CommonGeneratorProperties

use of uk.gov.justice.services.generators.commons.config.CommonGeneratorProperties in project microservice_framework by CJSCommonPlatform.

the class RestAdapterGenerator_CodeStructureTest method shouldAddLoggerConstant.

@Test
public void shouldAddLoggerConstant() throws Exception {
    generator.run(restRamlWithCommandApiDefaults().with(defaultPostResource().withRelativeUri("/some/path")).build(), configurationWithBasePackage(BASE_PACKAGE, outputFolder, new CommonGeneratorProperties()));
    final Class<?> resourceClass = compiler.compiledClassOf(BASE_PACKAGE, "resource", "DefaultCommandApiSomePathResource");
    final Field logger = resourceClass.getDeclaredField("LOGGER");
    assertThat(logger, not(nullValue()));
    assertThat(logger.getType(), equalTo(Logger.class));
    assertThat(isPrivate(logger.getModifiers()), is(true));
    assertThat(isStatic(logger.getModifiers()), is(true));
    assertThat(isFinal(logger.getModifiers()), is(true));
}
Also used : Field(java.lang.reflect.Field) CommonGeneratorProperties(uk.gov.justice.services.generators.commons.config.CommonGeneratorProperties) Logger(org.slf4j.Logger) Test(org.junit.Test)

Example 68 with CommonGeneratorProperties

use of uk.gov.justice.services.generators.commons.config.CommonGeneratorProperties in project microservice_framework by CJSCommonPlatform.

the class RestAdapterGenerator_CodeStructureTest method shouldGenerateClassContainingMethodWithPathParamAndBodyParam.

@Test
public void shouldGenerateClassContainingMethodWithPathParamAndBodyParam() throws Exception {
    generator.run(restRamlWithCommandApiDefaults().with(defaultPostResource().withRelativeUri("/some/path/{paramA}").withPathParam("paramA")).build(), configurationWithBasePackage(BASE_PACKAGE, outputFolder, new CommonGeneratorProperties()));
    final Class<?> clazz = compiler.compiledClassOf(BASE_PACKAGE, "resource", "DefaultCommandApiSomePathParamAResource");
    assertThat(clazz.isInterface(), is(false));
    final List<Method> methods = methodsOf(clazz);
    assertThat(methods, hasSize(1));
    final Method method = methods.get(0);
    assertThat(method.getParameterCount(), is(2));
    final Parameter methodParam1 = method.getParameters()[0];
    assertThat(methodParam1.getType(), equalTo(String.class));
    assertThat(methodParam1.getAnnotations(), emptyArray());
    final Parameter methodParam2 = method.getParameters()[1];
    assertThat(methodParam2.getType(), equalTo(JsonObject.class));
}
Also used : Parameter(java.lang.reflect.Parameter) JsonObject(javax.json.JsonObject) CommonGeneratorProperties(uk.gov.justice.services.generators.commons.config.CommonGeneratorProperties) Method(java.lang.reflect.Method) Test(org.junit.Test)

Example 69 with CommonGeneratorProperties

use of uk.gov.justice.services.generators.commons.config.CommonGeneratorProperties in project microservice_framework by CJSCommonPlatform.

the class RestAdapterGenerator_CodeStructureTest method shouldGenerateClassContainingQueryParam.

@Test
public void shouldGenerateClassContainingQueryParam() throws Exception {
    generator.run(restRamlWithQueryApiDefaults().with(resource("/users").with(httpActionWithDefaultMapping(GET).with(queryParam("surname")).withResponseTypes("application/vnd.people.query.search-users+json").with(mapping().withName("blah").withResponseType("application/vnd.people.query.search-users+json")))).build(), configurationWithBasePackage(BASE_PACKAGE, outputFolder, new CommonGeneratorProperties()));
    final Class<?> implementation = compiler.compiledClassOf(BASE_PACKAGE, "resource", "DefaultQueryApiUsersResource");
    assertThat(implementation.isInterface(), is(false));
    final Method method = firstMethodOf(implementation).get();
    final Parameter param = method.getParameters()[0];
    assertThat(param.getType(), equalTo(String.class));
    assertThat(param.getAnnotations(), emptyArray());
    final Class<?> iface = compiler.compiledInterfaceClassOf(BASE_PACKAGE, "resource", "QueryApiUsersResource");
    final Method interMethod = firstMethodOf(iface).get();
    final Parameter interParam = interMethod.getParameters()[0];
    assertThat(interParam.getType(), equalTo(String.class));
    assertThat(interParam.getAnnotations().length, is(1));
    final Annotation annotation = interParam.getAnnotations()[0];
    assertThat(annotation.annotationType(), equalTo(QueryParam.class));
}
Also used : QueryParam(javax.ws.rs.QueryParam) Parameter(java.lang.reflect.Parameter) CommonGeneratorProperties(uk.gov.justice.services.generators.commons.config.CommonGeneratorProperties) Method(java.lang.reflect.Method) Annotation(java.lang.annotation.Annotation) Test(org.junit.Test)

Example 70 with CommonGeneratorProperties

use of uk.gov.justice.services.generators.commons.config.CommonGeneratorProperties in project microservice_framework by CJSCommonPlatform.

the class RestAdapterGenerator_CodeStructureTest method shouldGenerateResourceClassWithOnePOSTMethod.

@Test
public void shouldGenerateResourceClassWithOnePOSTMethod() throws Exception {
    generator.run(restRamlWithCommandApiDefaults().with(defaultPostResource().withRelativeUri("/some/path")).build(), configurationWithBasePackage(BASE_PACKAGE, outputFolder, new CommonGeneratorProperties()));
    final Class<?> class1 = compiler.compiledClassOf(BASE_PACKAGE, "resource", "DefaultCommandApiSomePathResource");
    final List<Method> methods = methodsOf(class1);
    assertThat(methods, hasSize(1));
    final Method method = methods.get(0);
    assertThat(method.getReturnType(), equalTo(Response.class));
    assertThat(method.getParameterCount(), is(1));
    assertThat(method.getParameters()[0].getType(), equalTo(JsonObject.class));
}
Also used : Response(javax.ws.rs.core.Response) JsonObject(javax.json.JsonObject) CommonGeneratorProperties(uk.gov.justice.services.generators.commons.config.CommonGeneratorProperties) Method(java.lang.reflect.Method) Test(org.junit.Test)

Aggregations

CommonGeneratorProperties (uk.gov.justice.services.generators.commons.config.CommonGeneratorProperties)96 Test (org.junit.Test)93 Method (java.lang.reflect.Method)72 Collection (java.util.Collection)33 HttpHeaders (javax.ws.rs.core.HttpHeaders)33 Function (java.util.function.Function)32 JsonObject (javax.json.JsonObject)31 Response (javax.ws.rs.core.Response)30 ThreadLocalHttpHeaders (org.apache.cxf.jaxrs.impl.tl.ThreadLocalHttpHeaders)21 Optional (java.util.Optional)18 ActionMapperHelper (uk.gov.justice.services.adapter.rest.mapping.ActionMapperHelper)11 BasicActionMapperHelper (uk.gov.justice.services.adapter.rest.mapping.BasicActionMapperHelper)11 Parameter (uk.gov.justice.services.adapter.rest.parameter.Parameter)10 Consumes (javax.ws.rs.Consumes)9 Field (java.lang.reflect.Field)7 Parameter (java.lang.reflect.Parameter)7 Produces (javax.ws.rs.Produces)6 InterceptorContext (uk.gov.justice.services.core.interceptor.InterceptorContext)6 MediaType (uk.gov.justice.services.core.mapping.MediaType)6 JsonEnvelope (uk.gov.justice.services.messaging.JsonEnvelope)6