use of uk.gov.justice.services.core.dispatcher.DispatcherDelegate in project microservice_framework by CJSCommonPlatform.
the class SenderProducer method produceSender.
/**
* Produces the correct implementation of a requester depending on the {@link ServiceComponent}
* annotation at the injection point.
*
* @param injectionPoint class where the {@link Sender} is being injected
* @return the correct requester instance
* @throws IllegalStateException if the injection point does not have a {@link ServiceComponent}
* annotation
*/
@Produces
public Sender produceSender(final InjectionPoint injectionPoint) {
final EnvelopeValidator envelopeValidator = new EnvelopeValidator(jsonSchemaValidator, objectMapper, envelopeValidationExceptionHandler);
final RequestResponseEnvelopeValidator requestResponseEnvelopeValidator = new RequestResponseEnvelopeValidator(envelopeValidator, nameToMediaTypeConverter, mediaTypeProvider, envelopeInspector);
return new DispatcherDelegate(dispatcherCache.dispatcherFor(injectionPoint), systemUserUtil, requestResponseEnvelopeValidator, envelopePayloadTypeConverter, jsonEnvelopeRepacker);
}
use of uk.gov.justice.services.core.dispatcher.DispatcherDelegate in project microservice_framework by CJSCommonPlatform.
the class RequesterProducer method produceRequester.
/**
* Produces the correct implementation of a requester depending on the {@link ServiceComponent}
* annotation at the injection point.
*
* @param injectionPoint class where the {@link Requester} is being injected
* @return the correct requester instance
* @throws IllegalStateException if the injection point does not have a {@link ServiceComponent}
* annotation
*/
@Produces
public Requester produceRequester(final InjectionPoint injectionPoint) {
final EnvelopeValidator envelopeValidator = new EnvelopeValidator(jsonSchemaValidator, objectMapper, envelopeValidationExceptionHandler);
final RequestResponseEnvelopeValidator requestResponseEnvelopeValidator = new RequestResponseEnvelopeValidator(envelopeValidator, nameToMediaTypeConverter, mediaTypeProvider, envelopeInspector);
return new DispatcherDelegate(dispatcherCache.dispatcherFor(injectionPoint), systemUserUtil, requestResponseEnvelopeValidator, envelopePayloadTypeConverter, jsonEnvelopeRepacker);
}
use of uk.gov.justice.services.core.dispatcher.DispatcherDelegate in project microservice_framework by CJSCommonPlatform.
the class SenderProducerTest method shouldCreateANewSenderDispatcherDelegate.
@Test
public void shouldCreateANewSenderDispatcherDelegate() throws Exception {
final InjectionPoint injectionPoint = mock(InjectionPoint.class);
final Dispatcher dispatcher = mock(Dispatcher.class);
when(dispatcherCache.dispatcherFor(injectionPoint)).thenReturn(dispatcher);
final DispatcherDelegate dispatcherDelegate = (DispatcherDelegate) senderProducer.produceSender(injectionPoint);
assertThat(privateField("dispatcher", dispatcherDelegate, Dispatcher.class), is(dispatcher));
assertThat(privateField("systemUserUtil", dispatcherDelegate, SystemUserUtil.class), is(systemUserUtil));
assertThat(privateField("envelopePayloadTypeConverter", dispatcherDelegate, EnvelopePayloadTypeConverter.class), is(envelopePayloadTypeConverter));
assertThat(privateField("jsonEnvelopeRepacker", dispatcherDelegate, JsonEnvelopeRepacker.class), is(jsonEnvelopeRepacker));
final RequestResponseEnvelopeValidator requestResponseEnvelopeValidator = privateField("requestResponseEnvelopeValidator", dispatcherDelegate, RequestResponseEnvelopeValidator.class);
assertThat(privateField("nameToMediaTypeConverter", requestResponseEnvelopeValidator, NameToMediaTypeConverter.class), is(nameToMediaTypeConverter));
assertThat(privateField("mediaTypeProvider", requestResponseEnvelopeValidator, MediaTypeProvider.class), is(mediaTypeProvider));
assertThat(privateField("envelopeInspector", requestResponseEnvelopeValidator, EnvelopeInspector.class), is(envelopeInspector));
final EnvelopeValidator envelopeValidator = privateField("envelopeValidator", requestResponseEnvelopeValidator, EnvelopeValidator.class);
assertThat(privateField("jsonSchemaValidator", envelopeValidator, JsonSchemaValidator.class), is(jsonSchemaValidator));
assertThat(privateField("objectMapper", envelopeValidator, ObjectMapper.class), is(objectMapper));
assertThat(privateField("envelopeValidationExceptionHandler", envelopeValidator, EnvelopeValidationExceptionHandler.class), is(envelopeValidationExceptionHandler));
}
use of uk.gov.justice.services.core.dispatcher.DispatcherDelegate in project microservice_framework by CJSCommonPlatform.
the class RequesterProducerTest method requesterShouldDelegateAdminRequestSubstitutingUserId.
@Test
public void requesterShouldDelegateAdminRequestSubstitutingUserId() throws Exception {
final InjectionPoint injectionPoint = mock(InjectionPoint.class);
final Dispatcher dispatcher = mock(Dispatcher.class);
when(dispatcherCache.dispatcherFor(injectionPoint)).thenReturn(dispatcher);
final DispatcherDelegate dispatcherDelegate = (DispatcherDelegate) requesterProducer.produceRequester(injectionPoint);
assertThat(privateField("dispatcher", dispatcherDelegate, Dispatcher.class), is(dispatcher));
assertThat(privateField("systemUserUtil", dispatcherDelegate, SystemUserUtil.class), is(systemUserUtil));
assertThat(privateField("envelopePayloadTypeConverter", dispatcherDelegate, EnvelopePayloadTypeConverter.class), is(envelopePayloadTypeConverter));
assertThat(privateField("jsonEnvelopeRepacker", dispatcherDelegate, JsonEnvelopeRepacker.class), is(jsonEnvelopeRepacker));
final RequestResponseEnvelopeValidator requestResponseEnvelopeValidator = privateField("requestResponseEnvelopeValidator", dispatcherDelegate, RequestResponseEnvelopeValidator.class);
assertThat(privateField("nameToMediaTypeConverter", requestResponseEnvelopeValidator, NameToMediaTypeConverter.class), is(nameToMediaTypeConverter));
assertThat(privateField("mediaTypeProvider", requestResponseEnvelopeValidator, MediaTypeProvider.class), is(mediaTypeProvider));
assertThat(privateField("envelopeInspector", requestResponseEnvelopeValidator, EnvelopeInspector.class), is(envelopeInspector));
final EnvelopeValidator envelopeValidator = privateField("envelopeValidator", requestResponseEnvelopeValidator, EnvelopeValidator.class);
assertThat(privateField("jsonSchemaValidator", envelopeValidator, JsonSchemaValidator.class), is(jsonSchemaValidator));
assertThat(privateField("objectMapper", envelopeValidator, ObjectMapper.class), is(objectMapper));
assertThat(privateField("envelopeValidationExceptionHandler", envelopeValidator, EnvelopeValidationExceptionHandler.class), is(envelopeValidationExceptionHandler));
}
Aggregations