Skip to content
This repository has been archived by the owner on Aug 13, 2020. It is now read-only.

Commit

Permalink
Merge pull request #566 from CJSCommonPlatform/add-source-to-metadata
Browse files Browse the repository at this point in the history
Add source to metadata
  • Loading branch information
MartinYSpasov authored Apr 10, 2018
2 parents 99fd7c2 + 22c5671 commit 4881cc9
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,9 @@ public Optional<ZonedDateTime> createdAt() {
return metadata.createdAt();
}

@Override
public Optional<String> source() { return metadata.source(); }

@Override
@SuppressWarnings({"squid:MethodCyclomaticComplexity", "squid:S1067", "squid:S00122"})
public boolean equals(final Object o) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import static uk.gov.justice.services.messaging.JsonEnvelopeWriter.writeJsonObject;
import static uk.gov.justice.services.messaging.JsonMetadata.CORRELATION;
import static uk.gov.justice.services.messaging.JsonMetadata.SESSION_ID;
import static uk.gov.justice.services.messaging.JsonMetadata.SOURCE;
import static uk.gov.justice.services.messaging.JsonMetadata.USER_ID;
import static uk.gov.justice.services.messaging.JsonObjects.createObjectBuilder;

Expand Down Expand Up @@ -84,6 +85,7 @@ public String toString() {
metadata.clientCorrelationId().ifPresent(s -> builder.add(CORRELATION, s));
metadata.sessionId().ifPresent(s -> builder.add(SESSION_ID, s));
metadata.userId().ifPresent(s -> builder.add(USER_ID, s));
metadata.source().ifPresent(s -> builder.add(SOURCE, s));

final JsonArrayBuilder causationBuilder = Json.createArrayBuilder();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,11 @@ public Optional<ZonedDateTime> createdAt() {
return zonedDateTime.map(ZonedDateTimes::fromString);
}

@Override
public Optional<String> source() {
return getString(metadata, SOURCE);
}

@Override
@SuppressWarnings({"squid:MethodCyclomaticComplexity", "squid:S1067", "squid:S00122"})
public boolean equals(final Object o) {
Expand Down Expand Up @@ -227,6 +232,12 @@ public MetadataBuilder withVersion(final long version) {
return this;
}

@Override
public MetadataBuilder withSource(final String source) {
json.add(source, SOURCE);
return this;
}

@Override
public Metadata build() {
return metadataFrom(json.build());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,43 +86,48 @@ public void shouldReturnPayloadAsJsonString() {
public void shouldPrettyPrintAsJsonWhenCallingToDebugString() throws Exception {

final String metadataName = "metadata name";
final String metadataSource = "metadata source";
final UUID metadataId = randomUUID();
final String payloadName = "payloadName";
final String payloadValue = "payloadValue";

final JsonEnvelope jsonEnvelope = envelopeFrom(metadata(metadataId, metadataName), payload(payloadName, payloadValue));
final JsonEnvelope jsonEnvelope = envelopeFrom(metadata(metadataId, metadataName, metadataSource), payload(payloadName, payloadValue));

final String json = jsonEnvelope.toDebugStringPrettyPrint();
with(json)
.assertEquals("_metadata.id", metadataId.toString())
.assertEquals("_metadata.name", metadataName)
.assertEquals("_metadata.source", metadataSource)
.assertEquals("$.payloadName", payloadValue);
}

@Test
public void shouldReturnEnvelopeAsJsonObject() {
final String metadataName = "metadata name";
final String metadataSource = "metadata source";
final UUID metadataId = randomUUID();
final String payloadName = "payloadName";
final String payloadValue = "payloadValue";

final JsonEnvelope jsonEnvelope = envelopeFrom(metadata(metadataId, metadataName), payload(payloadName, payloadValue));
final JsonEnvelope jsonEnvelope = envelopeFrom(metadata(metadataId, metadataName, metadataSource), payload(payloadName, payloadValue));

final JsonObject jsonObject = jsonEnvelope.asJsonObject();

with(jsonObject.toString())
.assertEquals("_metadata.id", metadataId.toString())
.assertEquals("_metadata.name", metadataName)
.assertEquals("_metadata.source", metadataSource)
.assertEquals("$.payloadName", payloadValue);
}

@Test
public void shouldReturnEnvelopeAsString() {
final UUID metadataId = randomUUID();
final String metadataName = "nameABC123";
final String source = "sourceName";

final JsonEnvelope envelope = envelopeFrom(
metadataBuilder().withId(metadataId).withName(metadataName),
metadataBuilder().withId(metadataId).withName(metadataName).withSource(source),
createObjectBuilder()
.add("strProperty", "valueA")
.add("nested", createObjectBuilder()
Expand All @@ -139,6 +144,7 @@ public void shouldReturnEnvelopeAsString() {
with(envelope.toString())
.assertEquals("id", metadataId.toString())
.assertEquals("name", metadataName)
.assertEquals("source" , source)
.assertNotDefined("strProperty")
.assertNotDefined("nested.strProperty1")
.assertNotDefined("nested.uuidProperty1")
Expand All @@ -151,9 +157,10 @@ public void shouldReturnEnvelopeAsString() {
public void shouldReturnStringRepresentationWithObfuscatedValues() throws Exception {
final UUID metadataId = randomUUID();
final String metadataName = "nameABC123";
final String source = "sourceName";

final JsonEnvelope envelope = envelopeFrom(
metadataBuilder().withId(metadataId).withName(metadataName),
metadataBuilder().withId(metadataId).withName(metadataName).withSource(source),
createObjectBuilder()
.add("strProperty", "valueA")
.add("nested", createObjectBuilder()
Expand All @@ -170,6 +177,7 @@ public void shouldReturnStringRepresentationWithObfuscatedValues() throws Except
with(envelope.toObfuscatedDebugString())
.assertEquals("_metadata.id", metadataId.toString())
.assertEquals("_metadata.name", metadataName)
.assertEquals("_metadata.source", source)
.assertEquals("strProperty", "xxx")
.assertEquals("nested.strProperty1", "xxx")
.assertEquals("nested.uuidProperty1", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
Expand All @@ -178,8 +186,8 @@ public void shouldReturnStringRepresentationWithObfuscatedValues() throws Except
.assertThat("arrayProperty", hasItems("xxx", "xxx", "xxx"));
}

private MetadataBuilder metadata(final UUID metadataId, final String metadataName) {
return metadataBuilder().withId(metadataId).withName(metadataName);
private MetadataBuilder metadata(final UUID metadataId, final String metadataName, final String metadataSource) {
return metadataBuilder().withId(metadataId).withName(metadataName).withSource(metadataSource);
}

private JsonObjectBuilder payload(final String payloadName, final String payloadValue) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import static uk.gov.justice.services.messaging.JsonMetadata.ID;
import static uk.gov.justice.services.messaging.JsonMetadata.NAME;
import static uk.gov.justice.services.messaging.JsonMetadata.SESSION_ID;
import static uk.gov.justice.services.messaging.JsonMetadata.SOURCE;
import static uk.gov.justice.services.messaging.JsonMetadata.STREAM;
import static uk.gov.justice.services.messaging.JsonMetadata.STREAM_ID;
import static uk.gov.justice.services.messaging.JsonMetadata.USER_ID;
Expand Down Expand Up @@ -48,6 +49,7 @@ public class DefaultJsonMetadataTest {
private static final String UUID_STREAM_ID = "f29e0415-3a3b-48d8-b301-d34faa58662a";
private static final String MESSAGE_NAME = "logical.message.name";
private static final Long STREAM_VERSION = 99L;
private static final String SOURCE_NAME = "source.name";

private JsonObject jsonObject;
private Metadata metadata;
Expand All @@ -57,6 +59,7 @@ public void setup() {
jsonObject = createObjectBuilder()
.add(ID, UUID_ID)
.add(NAME, MESSAGE_NAME)
.add(SOURCE, SOURCE_NAME)
.add(CORRELATION, createObjectBuilder()
.add(CLIENT_ID, UUID_CLIENT_CORRELATION)
)
Expand Down Expand Up @@ -114,6 +117,12 @@ public void shouldReturnUserId() throws Exception {
assertThat(metadata.userId().get(), equalTo(UUID_USER_ID));
}

@Test
public void shouldReturnSource() throws Exception {
assertThat(metadata.source().isPresent(), is(true));
assertThat(metadata.source().get(), equalTo(SOURCE_NAME));
}

@Test
public void shouldReturnSessionId() throws Exception {
assertThat(metadata.sessionId().isPresent(), is(true));
Expand Down Expand Up @@ -196,16 +205,16 @@ public void shouldThrowExceptionIfNameIsNull() throws Exception {
@Test
public void shouldTestEqualsAndHashCode() {

final Metadata item1 = metadata(UUID_ID, UUID_CLIENT_CORRELATION, UUID_CAUSATION, UUID_USER_ID, UUID_SESSION_ID, UUID_STREAM_ID, MESSAGE_NAME, STREAM_VERSION);
final Metadata item2 = metadata(UUID_ID, UUID_CLIENT_CORRELATION, UUID_CAUSATION, UUID_USER_ID, UUID_SESSION_ID, UUID_STREAM_ID, MESSAGE_NAME, STREAM_VERSION);
final Metadata item3 = metadata(UUID.randomUUID().toString(), UUID_CLIENT_CORRELATION, UUID_CAUSATION, UUID_USER_ID, UUID_SESSION_ID, UUID_STREAM_ID, MESSAGE_NAME, STREAM_VERSION);
final Metadata item4 = metadata(UUID_ID, UUID.randomUUID().toString(), UUID_CAUSATION, UUID_USER_ID, UUID_SESSION_ID, UUID_STREAM_ID, MESSAGE_NAME, STREAM_VERSION);
final Metadata item5 = metadata(UUID_ID, UUID_CLIENT_CORRELATION, UUID.randomUUID().toString(), UUID_USER_ID, UUID_SESSION_ID, UUID_STREAM_ID, MESSAGE_NAME, STREAM_VERSION);
final Metadata item6 = metadata(UUID_ID, UUID_CLIENT_CORRELATION, UUID_CAUSATION, UUID.randomUUID().toString(), UUID_SESSION_ID, UUID_STREAM_ID, MESSAGE_NAME, STREAM_VERSION);
final Metadata item7 = metadata(UUID_ID, UUID_CLIENT_CORRELATION, UUID_CAUSATION, UUID_USER_ID, UUID.randomUUID().toString(), UUID_STREAM_ID, MESSAGE_NAME, STREAM_VERSION);
final Metadata item8 = metadata(UUID_ID, UUID_CLIENT_CORRELATION, UUID_CAUSATION, UUID_USER_ID, UUID_SESSION_ID, UUID.randomUUID().toString(), MESSAGE_NAME, STREAM_VERSION);
final Metadata item9 = metadata(UUID_ID, UUID_CLIENT_CORRELATION, UUID_CAUSATION, UUID_USER_ID, UUID_SESSION_ID, UUID_STREAM_ID, "dummy name", STREAM_VERSION);
final Metadata item10 = metadata(UUID_ID, UUID_CLIENT_CORRELATION, UUID_CAUSATION, UUID_USER_ID, UUID_SESSION_ID, UUID_STREAM_ID, MESSAGE_NAME, 0L);
final Metadata item1 = metadata(UUID_ID, UUID_CLIENT_CORRELATION, UUID_CAUSATION, UUID_USER_ID, UUID_SESSION_ID, UUID_STREAM_ID, MESSAGE_NAME, STREAM_VERSION, SOURCE_NAME);
final Metadata item2 = metadata(UUID_ID, UUID_CLIENT_CORRELATION, UUID_CAUSATION, UUID_USER_ID, UUID_SESSION_ID, UUID_STREAM_ID, MESSAGE_NAME, STREAM_VERSION, SOURCE_NAME);
final Metadata item3 = metadata(UUID.randomUUID().toString(), UUID_CLIENT_CORRELATION, UUID_CAUSATION, UUID_USER_ID, UUID_SESSION_ID, UUID_STREAM_ID, MESSAGE_NAME, STREAM_VERSION, SOURCE_NAME);
final Metadata item4 = metadata(UUID_ID, UUID.randomUUID().toString(), UUID_CAUSATION, UUID_USER_ID, UUID_SESSION_ID, UUID_STREAM_ID, MESSAGE_NAME, STREAM_VERSION, SOURCE_NAME);
final Metadata item5 = metadata(UUID_ID, UUID_CLIENT_CORRELATION, UUID.randomUUID().toString(), UUID_USER_ID, UUID_SESSION_ID, UUID_STREAM_ID, MESSAGE_NAME, STREAM_VERSION, SOURCE_NAME);
final Metadata item6 = metadata(UUID_ID, UUID_CLIENT_CORRELATION, UUID_CAUSATION, UUID.randomUUID().toString(), UUID_SESSION_ID, UUID_STREAM_ID, MESSAGE_NAME, STREAM_VERSION, SOURCE_NAME);
final Metadata item7 = metadata(UUID_ID, UUID_CLIENT_CORRELATION, UUID_CAUSATION, UUID_USER_ID, UUID.randomUUID().toString(), UUID_STREAM_ID, MESSAGE_NAME, STREAM_VERSION, SOURCE_NAME);
final Metadata item8 = metadata(UUID_ID, UUID_CLIENT_CORRELATION, UUID_CAUSATION, UUID_USER_ID, UUID_SESSION_ID, UUID.randomUUID().toString(), MESSAGE_NAME, STREAM_VERSION, SOURCE_NAME);
final Metadata item9 = metadata(UUID_ID, UUID_CLIENT_CORRELATION, UUID_CAUSATION, UUID_USER_ID, UUID_SESSION_ID, UUID_STREAM_ID, "dummy name", STREAM_VERSION, SOURCE_NAME);
final Metadata item10 = metadata(UUID_ID, UUID_CLIENT_CORRELATION, UUID_CAUSATION, UUID_USER_ID, UUID_SESSION_ID, UUID_STREAM_ID, MESSAGE_NAME, 0L, SOURCE_NAME);

new EqualsTester()
.addEqualityGroup(item1, item2)
Expand All @@ -220,12 +229,13 @@ public void shouldTestEqualsAndHashCode() {
.testEquals();
}

private Metadata metadata(String id, String uuidClientCorrelation, String uuidCausation, String uuidUserId,
String uuidSessionId, String uuidStreamId, String messageName, Long streamVersion) {
private Metadata metadata(final String id, final String uuidClientCorrelation, final String uuidCausation, final String uuidUserId,
final String uuidSessionId, final String uuidStreamId, final String messageName, final Long streamVersion, final String source) {
return metadataBuilderFrom(
createObjectBuilder()
.add(ID, id)
.add(NAME, messageName)
.add(SOURCE, source)
.add(CORRELATION, createObjectBuilder()
.add(CLIENT_ID, uuidClientCorrelation)
)
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
<test-utils.version>1.16.0</test-utils.version>
<utilities.version>1.12.0</utilities.version>
<generator-maven-plugin.version>2.5.0-M2</generator-maven-plugin.version>
<framework-api.version>3.0.0-M2</framework-api.version>
<framework-api.version>3.0.0-M4</framework-api.version>
</properties>

<dependencyManagement>
Expand Down

0 comments on commit 4881cc9

Please sign in to comment.