Skip to content

Commit

Permalink
Merge 104967c into 737ccdc
Browse files Browse the repository at this point in the history
  • Loading branch information
mapingo committed Nov 16, 2018
2 parents 737ccdc + 104967c commit a3fc6a3
Show file tree
Hide file tree
Showing 20 changed files with 129 additions and 181 deletions.
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@ on [Keep a CHANGELOG](http://keepachangelog.com/). This project adheres to

## [Unreleased]

### Changed
- Update framework-api to 3.0.1
- Update framework to 5.0.4
- Update framework-domain to 1.0.3
- Update event-store to 1.0.4
- Update framework-generators to 1.0.2
- Use new Enveloper in service components

## [1.0.0] - 2018-11-09

### Added
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,6 @@
</properties>

<dependencies>
<dependency>
<groupId>uk.gov.justice.services</groupId>
<artifactId>test-utils-enveloper-provider</artifactId>
<version>${framework.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
Expand Down Expand Up @@ -90,7 +84,12 @@
<type>pom</type>
<scope>test</scope>
</dependency>

<dependency>
<groupId>uk.gov.justice.services</groupId>
<artifactId>test-utils-enveloper-provider</artifactId>
<version>${framework.version}</version>
<scope>test</scope>
</dependency>
</dependencies>

<build>
Expand All @@ -107,11 +106,14 @@
</goals>
<phase>generate-sources</phase>
<configuration>
<generatorName >
<generatorName>
uk.gov.justice.services.clients.messaging.generator.MessagingClientGenerator
</generatorName>
<parserName>uk.gov.justice.maven.generator.io.files.parser.RamlFileParser</parserName>
<generatorProperties implementation="uk.gov.justice.services.generators.commons.config.CommonGeneratorProperties">
<parserName>
uk.gov.justice.maven.generator.io.files.parser.RamlFileParser
</parserName>
<generatorProperties
implementation="uk.gov.justice.services.generators.commons.config.CommonGeneratorProperties">
<serviceComponent>${cpp.service-component}
</serviceComponent>
</generatorProperties>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package uk.gov.justice.services.example.cakeshop.command.api;

import static uk.gov.justice.services.core.annotation.Component.COMMAND_API;
import static uk.gov.justice.services.core.enveloper.Enveloper.envelop;

import uk.gov.justice.services.core.annotation.Handles;
import uk.gov.justice.services.core.annotation.ServiceComponent;
import uk.gov.justice.services.core.enveloper.Enveloper;
import uk.gov.justice.services.core.sender.Sender;
import uk.gov.justice.services.messaging.JsonEnvelope;

Expand All @@ -16,11 +16,11 @@ public class OrderCakeCommandApi {
@Inject
Sender sender;

@Inject
Enveloper enveloper;

@Handles("example.order-cake")
public void orderCake(final JsonEnvelope envelope) {
sender.send(enveloper.withMetadataFrom(envelope, "example.command.order-cake").apply(envelope.payload()));
sender.send(
envelop(envelope.payloadAsJsonObject())
.withName("example.command.order-cake")
.withMetadataFrom(envelope));
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package uk.gov.justice.services.example.cakeshop.command.api;

import static uk.gov.justice.services.core.annotation.Component.COMMAND_API;
import static uk.gov.justice.services.core.enveloper.Enveloper.envelop;

import uk.gov.justice.services.core.annotation.Handles;
import uk.gov.justice.services.core.annotation.ServiceComponent;
import uk.gov.justice.services.core.enveloper.Enveloper;
import uk.gov.justice.services.core.sender.Sender;
import uk.gov.justice.services.messaging.JsonEnvelope;

Expand All @@ -16,26 +16,35 @@ public class RecipeCommandApi {
@Inject
Sender sender;

@Inject
Enveloper enveloper;

@Handles("example.add-recipe")
public void addRecipe(final JsonEnvelope envelope) {
sender.send(enveloper.withMetadataFrom(envelope, "example.command.add-recipe").apply(envelope.payload()));
sender.send(
envelop(envelope.payloadAsJsonObject())
.withName("example.command.add-recipe")
.withMetadataFrom(envelope));
}

@Handles("example.rename-recipe")
public void renameRecipe(final JsonEnvelope envelope) {
sender.send(enveloper.withMetadataFrom(envelope, "example.command.rename-recipe").apply(envelope.payload()));
sender.send(
envelop(envelope.payloadAsJsonObject())
.withName("example.command.rename-recipe")
.withMetadataFrom(envelope));
}

@Handles("example.remove-recipe")
public void removeRecipe(final JsonEnvelope envelope) {
sender.send(enveloper.withMetadataFrom(envelope, "example.command.remove-recipe").apply(envelope.payload()));
sender.send(
envelop(envelope.payloadAsJsonObject())
.withName("example.command.remove-recipe")
.withMetadataFrom(envelope));
}

@Handles("example.upload-photograph")
public void uploadPhotograph(final JsonEnvelope envelope) {
sender.send(enveloper.withMetadataFrom(envelope, "example.command.upload-photograph").apply(envelope.payload()));
sender.send(
envelop(envelope.payloadAsJsonObject())
.withName("example.command.upload-photograph")
.withMetadataFrom(envelope));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,9 @@
import static uk.gov.justice.services.test.utils.core.messaging.JsonEnvelopeBuilder.envelope;
import static uk.gov.justice.services.test.utils.core.messaging.MetadataBuilderFactory.metadataWithDefaults;

import uk.gov.justice.services.core.enveloper.Enveloper;
import uk.gov.justice.services.core.sender.Sender;
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.justice.services.test.utils.core.enveloper.EnveloperFactory;
import uk.gov.justice.services.messaging.spi.DefaultEnvelope;

import org.junit.Test;
import org.junit.runner.RunWith;
Expand All @@ -28,12 +27,10 @@ public class OrderCakeCommandApiTest {
@Mock
private Sender sender;

private Enveloper enveloper = EnveloperFactory.createEnveloper();

private OrderCakeCommandApi commandApi;

@Captor
private ArgumentCaptor<JsonEnvelope> envelopeCaptor;
private ArgumentCaptor<DefaultEnvelope> envelopeCaptor;

@Test
public void shouldHandleOrderCakeCommand() throws Exception {
Expand All @@ -45,7 +42,6 @@ public void shouldHandleOrderCakeCommand() throws Exception {
@Test
public void shouldHandleOrderCakeRequest() {
commandApi = new OrderCakeCommandApi();
commandApi.enveloper = enveloper;
commandApi.sender = sender;

final JsonEnvelope envelope = envelope()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,9 @@
import static uk.gov.justice.services.test.utils.core.messaging.JsonEnvelopeBuilder.envelope;
import static uk.gov.justice.services.test.utils.core.messaging.MetadataBuilderFactory.metadataWithDefaults;

import uk.gov.justice.services.core.enveloper.Enveloper;
import uk.gov.justice.services.core.sender.Sender;
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.justice.services.test.utils.core.enveloper.EnveloperFactory;
import uk.gov.justice.services.messaging.spi.DefaultEnvelope;

import org.junit.Before;
import org.junit.Test;
Expand All @@ -29,17 +28,14 @@ public class RecipeCommandApiTest {
@Mock
private Sender sender;

private Enveloper enveloper = EnveloperFactory.createEnveloper();

private RecipeCommandApi commandApi;

@Captor
private ArgumentCaptor<JsonEnvelope> envelopeCaptor;
private ArgumentCaptor<DefaultEnvelope> envelopeCaptor;

@Before
public void setup() {
commandApi = new RecipeCommandApi();
commandApi.enveloper = enveloper;
commandApi.sender = sender;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,6 @@
</properties>

<dependencies>
<!-- Test Enveloper Provider needs to be first in the list -->
<dependency>
<groupId>uk.gov.justice.services</groupId>
<artifactId>test-utils-enveloper-provider</artifactId>
<version>${framework.version}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
Expand Down Expand Up @@ -100,5 +92,11 @@
<type>pom</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>uk.gov.justice.services</groupId>
<artifactId>test-utils-enveloper-provider</artifactId>
<version>${framework.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,11 @@
<type>pom</type>
<scope>test</scope>
</dependency>

<dependency>
<groupId>uk.gov.justice.services</groupId>
<artifactId>test-utils-enveloper-provider</artifactId>
<version>${framework.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,27 @@

import static java.util.Arrays.asList;
import static java.util.UUID.randomUUID;
import static uk.gov.justice.services.core.enveloper.Enveloper.envelop;

import uk.gov.justice.services.core.annotation.CustomServiceComponent;
import uk.gov.justice.services.core.annotation.Handles;
import uk.gov.justice.services.core.enveloper.Enveloper;
import uk.gov.justice.services.example.cakeshop.custom.api.response.OvenStatus;
import uk.gov.justice.services.example.cakeshop.custom.api.response.OvensStatus;
import uk.gov.justice.services.messaging.Envelope;
import uk.gov.justice.services.messaging.JsonEnvelope;

import javax.inject.Inject;

@CustomServiceComponent("CUSTOM_API")
public class OvenCustomApi {

@Inject
private Enveloper enveloper;

@Handles("example.ovens-status")
public JsonEnvelope status(final JsonEnvelope query) {
public Envelope<OvensStatus> status(final JsonEnvelope query) {

final OvensStatus status = new OvensStatus(asList(
new OvenStatus(randomUUID(), "Big Oven", 250, true),
new OvenStatus(randomUUID(), "Large Oven", 0, false)));

return enveloper.withMetadataFrom(query, "example.ovens-status").apply(status);
return envelop(status)
.withName("example.ovens-status")
.withMetadataFrom(query);
}
}
Original file line number Diff line number Diff line change
@@ -1,35 +1,29 @@
package uk.gov.justice.services.example.cakeshop.custom.api;

import static com.jayway.jsonpath.matchers.JsonPathMatchers.withJsonPath;
import static java.util.UUID.randomUUID;
import static org.hamcrest.CoreMatchers.allOf;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.junit.Assert.assertThat;
import static uk.gov.justice.services.test.utils.core.enveloper.EnveloperFactory.createEnveloper;
import static uk.gov.justice.services.test.utils.core.matchers.HandlerClassMatcher.isCustomHandlerClass;
import static uk.gov.justice.services.test.utils.core.matchers.HandlerMethodMatcher.method;
import static uk.gov.justice.services.test.utils.core.matchers.JsonEnvelopeMatcher.jsonEnvelope;
import static uk.gov.justice.services.test.utils.core.matchers.JsonEnvelopeMetadataMatcher.metadata;
import static uk.gov.justice.services.test.utils.core.matchers.JsonEnvelopePayloadMatcher.payloadIsJson;
import static uk.gov.justice.services.test.utils.core.messaging.JsonEnvelopeBuilder.envelope;
import static uk.gov.justice.services.test.utils.core.messaging.MetadataBuilderFactory.metadataOf;

import uk.gov.justice.services.core.enveloper.Enveloper;
import uk.gov.justice.services.example.cakeshop.custom.api.response.OvenStatus;
import uk.gov.justice.services.example.cakeshop.custom.api.response.OvensStatus;
import uk.gov.justice.services.messaging.Envelope;
import uk.gov.justice.services.messaging.JsonEnvelope;

import java.util.List;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Spy;
import org.mockito.runners.MockitoJUnitRunner;

@RunWith(MockitoJUnitRunner.class)
public class OvenCustomApiTest {

@Spy
private Enveloper enveloper = createEnveloper();

@InjectMocks
private OvenCustomApi ovenCustomApi;

Expand All @@ -40,30 +34,24 @@ public void shouldHandleOvenStatus() throws Exception {
}

@Test
@SuppressWarnings("unchecked")
public void shouldReturnStatusOfAllOvens() throws Exception {
final JsonEnvelope query = envelope().with(
metadataOf(randomUUID(), "example.ovens-status"))
.build();

final JsonEnvelope status = ovenCustomApi.status(query);
final Envelope<OvensStatus> status = ovenCustomApi.status(query);

final List<OvenStatus> ovens = status.payload().getOvens();

assertThat(ovens.size(), is(2));
assertThat(ovens.get(0).getId(), notNullValue());
assertThat(ovens.get(0).getName(), is("Big Oven"));
assertThat(ovens.get(0).getTemperature(), is(250));
assertThat(ovens.get(0).isActive(), is(true));

assertThat(status, jsonEnvelope()
.withMetadataOf(metadata()
.withName("example.ovens-status"))
.withPayloadOf(
payloadIsJson(
allOf(
withJsonPath("$.ovens[0].id", notNullValue()),
withJsonPath("$.ovens[0].name", equalTo("Big Oven")),
withJsonPath("$.ovens[0].temperature", equalTo(250)),
withJsonPath("$.ovens[0].active", equalTo(true)),
withJsonPath("$.ovens[1].id", notNullValue()),
withJsonPath("$.ovens[1].name", equalTo("Large Oven")),
withJsonPath("$.ovens[1].temperature", equalTo(0)),
withJsonPath("$.ovens[1].active", equalTo(false))
)
))
.thatMatchesSchema());
assertThat(ovens.get(1).getId(), notNullValue());
assertThat(ovens.get(1).getName(), is("Large Oven"));
assertThat(ovens.get(1).getTemperature(), is(0));
assertThat(ovens.get(1).isActive(), is(false));
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package uk.gov.justice.services.example.cakeshop.event.listener;

import uk.gov.justice.services.common.converter.JsonObjectToObjectConverter;
import uk.gov.justice.services.core.annotation.Component;
import uk.gov.justice.services.core.annotation.Handles;
import uk.gov.justice.services.core.annotation.ServiceComponent;
Expand All @@ -10,20 +9,12 @@

import javax.inject.Inject;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@ServiceComponent(value = Component.EVENT_LISTENER)
public class CakeMadeEventListener {

Logger logger = LoggerFactory.getLogger(CakeMadeEventListener.class);

@Inject
CakeRepository cakeRepository;

@Inject
JsonObjectToObjectConverter converter;

@Handles("example.cake-made")
public void handle(final Envelope<Cake> envelope) {
//Best practice is to handle a value object rather than an entity
Expand Down
Loading

0 comments on commit a3fc6a3

Please sign in to comment.