Search in sources :

Example 1 with SubscriptionDescriptor

use of uk.gov.justice.subscription.domain.SubscriptionDescriptor in project microservice_framework by CJSCommonPlatform.

the class SubscriptionDescriptorParserTest method shouldParsePathsToYaml.

@Test
public void shouldParsePathsToYaml() {
    final Path path = getFromClasspath("subscription.yaml");
    final SubscriptionDescriptor subscriptionDescriptor = subscriptionDescriptorParser.read(path);
    assertSubscriptionDescriptor(subscriptionDescriptor);
    final List<Subscription> subscriptions = subscriptionDescriptor.getSubscriptions();
    for (final Subscription subscription : subscriptions) {
        if (subscription.getName().equalsIgnoreCase("subscription1")) {
            assertExampleEvents(subscription);
            assertExampleEventSource(subscription.getEventsource());
        }
        if (subscription.getName().equalsIgnoreCase("subscription2")) {
            assertPeopleEvents(subscription);
            assertPeopleEventSource(subscription.getEventsource());
        }
    }
}
Also used : Path(java.nio.file.Path) Subscription(uk.gov.justice.subscription.domain.Subscription) SubscriptionDescriptor(uk.gov.justice.subscription.domain.SubscriptionDescriptor) Test(org.junit.Test)

Example 2 with SubscriptionDescriptor

use of uk.gov.justice.subscription.domain.SubscriptionDescriptor in project microservice_framework by CJSCommonPlatform.

the class SubscriptionDescriptorDefBuilderTest method shouldBuildASubscriptionDescriptorDef.

@Test
public void shouldBuildASubscriptionDescriptorDef() throws Exception {
    final SubscriptionDescriptor subscriptionDescriptor = mock(SubscriptionDescriptor.class);
    final SubscriptionDescriptorDef subscriptionDescriptorDef = subscriptionDescriptorDef().withSubscriptionDescriptor(subscriptionDescriptor).build();
    assertThat(subscriptionDescriptorDef.getSubscriptionDescriptor(), is(subscriptionDescriptor));
}
Also used : SubscriptionDescriptorDef(uk.gov.justice.subscription.domain.SubscriptionDescriptorDef) SubscriptionDescriptor(uk.gov.justice.subscription.domain.SubscriptionDescriptor) Test(org.junit.Test)

Example 3 with SubscriptionDescriptor

use of uk.gov.justice.subscription.domain.SubscriptionDescriptor in project microservice_framework by CJSCommonPlatform.

the class SubscriptionDescriptorBuilderTest method shouldBuildASubscription.

@Test
public void shouldBuildASubscription() throws Exception {
    final String specVersion = "specVersion";
    final String service = "service";
    final String serviceComponent = "serviceComponent";
    final Subscription subscription_1 = mock(Subscription.class);
    final Subscription subscription_2 = mock(Subscription.class);
    final SubscriptionDescriptor subscriptionDescriptor = subscriptionDescriptor().withSpecVersion(specVersion).withService(service).withServiceComponent(serviceComponent).withSubscriptions(asList(subscription_1, subscription_2)).build();
    assertThat(subscriptionDescriptor.getSpecVersion(), is(specVersion));
    assertThat(subscriptionDescriptor.getService(), is(service));
    assertThat(subscriptionDescriptor.getServiceComponent(), is(serviceComponent));
    assertThat(subscriptionDescriptor.getSubscriptions(), hasItem(subscription_1));
    assertThat(subscriptionDescriptor.getSubscriptions(), hasItem(subscription_2));
}
Also used : Subscription(uk.gov.justice.subscription.domain.Subscription) SubscriptionDescriptor(uk.gov.justice.subscription.domain.SubscriptionDescriptor) Test(org.junit.Test)

Example 4 with SubscriptionDescriptor

use of uk.gov.justice.subscription.domain.SubscriptionDescriptor in project microservice_framework by CJSCommonPlatform.

the class JmsEndpointGeneratorTest method shouldConvertRamlToASubscriptionThenRunTheEndpointGenerators.

@Test
public void shouldConvertRamlToASubscriptionThenRunTheEndpointGenerators() throws Exception {
    final String serviceComponent = "EVENT_LISTENER";
    final Raml raml = mock(Raml.class);
    final GeneratorConfig configuration = mock(GeneratorConfig.class);
    final CommonGeneratorProperties commonGeneratorProperties = mock(CommonGeneratorProperties.class);
    final SubscriptionDescriptorDef subscriptionDescriptorDef = mock(SubscriptionDescriptorDef.class);
    final SubscriptionDescriptor subscriptionDescriptor = mock(SubscriptionDescriptor.class);
    when(configuration.getGeneratorProperties()).thenReturn(commonGeneratorProperties);
    when(commonGeneratorProperties.getServiceComponent()).thenReturn(serviceComponent);
    when(ramlToJmsSubscriptionConverter.convert(raml, serviceComponent)).thenReturn(subscriptionDescriptorDef);
    when(subscriptionDescriptorDef.getSubscriptionDescriptor()).thenReturn(subscriptionDescriptor);
    jmsEndpointGenerator.run(raml, configuration);
    final InOrder inOrder = inOrder(ramlValidator, ramlToJmsSubscriptionConverter, subscriptionJmsEndpointGenerator);
    inOrder.verify(ramlValidator).validate(raml);
    inOrder.verify(ramlToJmsSubscriptionConverter).convert(raml, serviceComponent);
    inOrder.verify(subscriptionJmsEndpointGenerator).run(subscriptionDescriptor, configuration);
}
Also used : InOrder(org.mockito.InOrder) Raml(org.raml.model.Raml) SubscriptionDescriptorDef(uk.gov.justice.subscription.domain.SubscriptionDescriptorDef) CommonGeneratorProperties(uk.gov.justice.services.generators.commons.config.CommonGeneratorProperties) GeneratorConfig(uk.gov.justice.maven.generator.io.files.parser.core.GeneratorConfig) SubscriptionDescriptor(uk.gov.justice.subscription.domain.SubscriptionDescriptor) Test(org.junit.Test)

Example 5 with SubscriptionDescriptor

use of uk.gov.justice.subscription.domain.SubscriptionDescriptor in project microservice_framework by CJSCommonPlatform.

the class MessageListenerCodeGeneratorTest method shouldGenerateMDBForTopic.

@Test
public void shouldGenerateMDBForTopic() throws Exception {
    final String basePackageName = "uk.gov.moj.base.package.name";
    final String serviceName = "my-context";
    final String componentName = "EVENT_LISTENER";
    final String jmsUri = "jms:topic:my-context.handler.command";
    final Event event_1 = event().withName("my-context.events.something-happened").withSchemaUri("http://justice.gov.uk/json/schemas/domains/example/my-context.events.something-happened.json").build();
    final Event event_2 = event().withName("my-context.events.something-else-happened").withSchemaUri("http://justice.gov.uk/json/schemas/domains/example/my-context.events.something-else-happened.json").build();
    final Subscription subscription = subscription().withName("subscription").withEvent(event_1).withEvent(event_2).withEventsource(eventsource().withName("eventsource").withLocation(location().withJmsUri(jmsUri).withRestUri("http://localhost:8080/example/event-source-api/rest").build()).build()).build();
    final SubscriptionDescriptor subscriptionDescriptor = subscriptionDescriptor().withSpecVersion("1.0.0").withService(serviceName).withServiceComponent(componentName).withSubscription(subscription).build();
    final ClassNameFactory classNameFactory = new ClassNameFactory(basePackageName, serviceName, componentName, jmsUri);
    GeneratorProperties generatorProperties = new GeneratorPropertiesFactory().withCustomMDBPool();
    final TypeSpec typeSpec = messageListenerCodeGenerator.generate(subscriptionDescriptor, subscription, (CommonGeneratorProperties) generatorProperties, classNameFactory);
    assertThat(typeSpec.toString(), is("@uk.gov.justice.services.core.annotation.Adapter(\"EVENT_LISTENER\")\n" + "@javax.ejb.MessageDriven(\n" + "    activationConfig = {\n" + "        @javax.ejb.ActivationConfigProperty(propertyName = \"destinationType\", propertyValue = \"javax.jms.Topic\"),\n" + "        @javax.ejb.ActivationConfigProperty(propertyName = \"destinationLookup\", propertyValue = \"my-context.handler.command\"),\n" + "        @javax.ejb.ActivationConfigProperty(propertyName = \"shareSubscriptions\", propertyValue = \"true\"),\n" + "        @javax.ejb.ActivationConfigProperty(propertyName = \"subscriptionDurability\", propertyValue = \"Durable\"),\n" + "        @javax.ejb.ActivationConfigProperty(propertyName = \"clientId\", propertyValue = \"my-context.event.listener\"),\n" + "        @javax.ejb.ActivationConfigProperty(propertyName = \"subscriptionName\", propertyValue = \"my-context.event.listener.my-context.handler.command\")\n" + "    }\n" + ")\n" + "@javax.interceptor.Interceptors({\n" + "    uk.gov.justice.services.adapter.messaging.JmsLoggerMetadataInterceptor.class,\n" + "    uk.gov.moj.base.package.name.MyContextEventListenerMyContextHandlerCommandEventValidationInterceptor.class\n" + "})\n" + "@org.jboss.ejb3.annotation.Pool(\"my-context-handler-command-event-listener-pool\")\n" + "public class MyContextEventListenerMyContextHandlerCommandJmsListener implements javax.jms.MessageListener {\n" + "  private static final org.slf4j.Logger LOGGER = org.slf4j.LoggerFactory.getLogger(uk.gov.moj.base.package.name.MyContextEventListenerMyContextHandlerCommandJmsListener.class);\n" + "\n" + "  @javax.inject.Inject\n" + "  uk.gov.justice.services.core.interceptor.InterceptorChainProcessor interceptorChainProcessor;\n" + "\n" + "  @javax.inject.Inject\n" + "  uk.gov.justice.services.adapter.messaging.JmsProcessor jmsProcessor;\n" + "\n" + "  @java.lang.Override\n" + "  public void onMessage(javax.jms.Message message) {\n" + "    uk.gov.justice.services.messaging.logging.LoggerUtils.trace(LOGGER, () -> \"Received JMS message\");\n" + "    jmsProcessor.process(interceptorChainProcessor::process, message);\n" + "  }\n" + "}\n"));
}
Also used : GeneratorProperties(uk.gov.justice.maven.generator.io.files.parser.core.GeneratorProperties) CommonGeneratorProperties(uk.gov.justice.services.generators.commons.config.CommonGeneratorProperties) Event(uk.gov.justice.subscription.domain.Event) GeneratorPropertiesFactory(uk.gov.justice.raml.jms.config.GeneratorPropertiesFactory) Subscription(uk.gov.justice.subscription.domain.Subscription) SubscriptionDescriptor(uk.gov.justice.subscription.domain.SubscriptionDescriptor) TypeSpec(com.squareup.javapoet.TypeSpec) Test(org.junit.Test)

Aggregations

SubscriptionDescriptor (uk.gov.justice.subscription.domain.SubscriptionDescriptor)54 Test (org.junit.Test)52 MessageDriven (javax.ejb.MessageDriven)16 Subscription (uk.gov.justice.subscription.domain.Subscription)14 GeneratorPropertiesFactory (uk.gov.justice.raml.jms.config.GeneratorPropertiesFactory)11 Event (uk.gov.justice.subscription.domain.Event)7 TypeSpec (com.squareup.javapoet.TypeSpec)5 Adapter (uk.gov.justice.services.core.annotation.Adapter)5 CommonGeneratorProperties (uk.gov.justice.services.generators.commons.config.CommonGeneratorProperties)5 SubscriptionDescriptorDef (uk.gov.justice.subscription.domain.SubscriptionDescriptorDef)5 Field (java.lang.reflect.Field)4 ReflectionUtil.setField (uk.gov.justice.services.test.utils.core.reflection.ReflectionUtil.setField)4 File (java.io.File)3 Path (java.nio.file.Path)3 Matchers.containsString (org.hamcrest.Matchers.containsString)3 GeneratorProperties (uk.gov.justice.maven.generator.io.files.parser.core.GeneratorProperties)3 ActivationConfigProperty (javax.ejb.ActivationConfigProperty)2 Inject (javax.inject.Inject)2 Message (javax.jms.Message)2 MessageListener (javax.jms.MessageListener)2