From 8430de24a42e4ce7c43c6f44822f266cd9834f01 Mon Sep 17 00:00:00 2001 From: Yashdeep Srivastava Date: Fri, 21 Feb 2020 11:19:30 +0000 Subject: [PATCH 1/2] CPI-81 | Yashdeep/Ashwin | Adds date converter to set day and month as 01 --- .../anonymization/generator/DateGenerator.java | 7 ++++++- .../generator/DateGeneratorTest.java | 18 ++++++++++++++++++ .../service/EventAnonymiserServiceTest.java | 5 +++-- .../src/test/resources/test-array-data.json | 3 ++- 4 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 stream-transformation-tool-anonymise/src/test/java/uk/gov/justice/tools/eventsourcing/anonymization/generator/DateGeneratorTest.java diff --git a/stream-transformation-tool-anonymise/src/main/java/uk/gov/justice/tools/eventsourcing/anonymization/generator/DateGenerator.java b/stream-transformation-tool-anonymise/src/main/java/uk/gov/justice/tools/eventsourcing/anonymization/generator/DateGenerator.java index 65b39ad..9ffb50d 100644 --- a/stream-transformation-tool-anonymise/src/main/java/uk/gov/justice/tools/eventsourcing/anonymization/generator/DateGenerator.java +++ b/stream-transformation-tool-anonymise/src/main/java/uk/gov/justice/tools/eventsourcing/anonymization/generator/DateGenerator.java @@ -1,10 +1,15 @@ package uk.gov.justice.tools.eventsourcing.anonymization.generator; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + public class DateGenerator extends Generator { @Override public String convert(final String fieldValue) { - return fieldValue; + final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + final LocalDate date = LocalDate.parse(fieldValue, dateTimeFormatter); + return date.withMonth(1).withDayOfMonth(1).toString(); } } diff --git a/stream-transformation-tool-anonymise/src/test/java/uk/gov/justice/tools/eventsourcing/anonymization/generator/DateGeneratorTest.java b/stream-transformation-tool-anonymise/src/test/java/uk/gov/justice/tools/eventsourcing/anonymization/generator/DateGeneratorTest.java new file mode 100644 index 0000000..610e224 --- /dev/null +++ b/stream-transformation-tool-anonymise/src/test/java/uk/gov/justice/tools/eventsourcing/anonymization/generator/DateGeneratorTest.java @@ -0,0 +1,18 @@ +package uk.gov.justice.tools.eventsourcing.anonymization.generator; + +import org.apache.commons.validator.routines.DateValidator; +import org.junit.Test; + +import static org.junit.Assert.assertTrue; + +public class DateGeneratorTest { + + @Test + public void shouldGenerateDateWithDayAndMonthAsOne() { + final DateGenerator dateGenerator = new DateGenerator(); + final String dateValue = "2017-05-19"; + final String anonymisedDateValue = dateGenerator.convert(dateValue); + + assertTrue(DateValidator.getInstance().isValid(anonymisedDateValue,"yyyy-01-01")); + } +} diff --git a/stream-transformation-tool-anonymise/src/test/java/uk/gov/justice/tools/eventsourcing/anonymization/service/EventAnonymiserServiceTest.java b/stream-transformation-tool-anonymise/src/test/java/uk/gov/justice/tools/eventsourcing/anonymization/service/EventAnonymiserServiceTest.java index 9198f72..3d0e94a 100644 --- a/stream-transformation-tool-anonymise/src/test/java/uk/gov/justice/tools/eventsourcing/anonymization/service/EventAnonymiserServiceTest.java +++ b/stream-transformation-tool-anonymise/src/test/java/uk/gov/justice/tools/eventsourcing/anonymization/service/EventAnonymiserServiceTest.java @@ -36,9 +36,10 @@ public void shouldAnonymiseJsonObjectPayload() { assertThat(exampleObject.getString("attributeString"), is("Warwick Justice Centre")); // should not anonymise assertStringIsAnonymisedButOfLength(exampleObject.getString("attributeStringEmail"), "test123@mail.com", 14, of(EMAIL_PATTERN)); assertStringIsAnonymisedButOfSameLength(exampleObject.getString("attributeStringNiNumber"), "SC208978A", of(NI_NUMBER_PATTERN)); - assertThat(exampleObject.getString("attributeDate"), is("2017-05-19")); + assertThat(exampleObject.getString("attributeDate"), is("2017-01-01")); assertThat(exampleObject.getJsonArray("attributeArraySimple").getJsonObject(0).getString("arrayAttributeUUID"), is("1905c665-a146-4efc-a01b-d7f035820656")); assertThat(exampleObject.getJsonArray("attributeArraySimple").getJsonObject(0).getString("arrayAttributeIntAsString"), is("001")); + final JsonArray complexArray = exampleObject.getJsonArray("attributeArrayComplex"); assertStringIsAnonymisedButOfSameLength(complexArray.getString(0), "abc"); assertThat(complexArray.getInt(1), is(1)); @@ -57,7 +58,6 @@ public void shouldNotAnonymiseJsonObjectPayload() { assertThat(exampleObject.getString("attributeString"), is("Warwick Justice Centre")); assertThat(exampleObject.getString("attributeStringEmail"), is("test123@mail.com")); assertThat(exampleObject.getString("attributeStringNiNumber"), is("SC208978A")); - assertThat(exampleObject.getString("attributeDate"), is("2017-05-19")); assertThat(exampleObject.getJsonArray("attributeArraySimple").getJsonObject(0).getString("arrayAttributeUUID"), is("1905c665-a146-4efc-a01b-d7f035820656")); final JsonArray complexArray = exampleObject.getJsonArray("attributeArrayComplex"); assertThat(complexArray.getString(0), is("abc")); @@ -82,6 +82,7 @@ public void shouldAnonymiseJsonArrayPayload() { assertThat(anonymisedJsonArray.getJsonArray(4), is(createArrayBuilder().add(1).add(2).add(3).build())); assertStringIsAnonymisedButOfLength(anonymisedJsonArray.getString(5), "test2345@mail.com", 14, of(EMAIL_PATTERN)); assertStringIsAnonymisedButOfSameLength(anonymisedJsonArray.getString(6), "SC208979B", of(NI_NUMBER_PATTERN)); + assertThat(anonymisedJsonArray.getString(7), is("2017-01-01")); } @Test diff --git a/stream-transformation-tool-anonymise/src/test/resources/test-array-data.json b/stream-transformation-tool-anonymise/src/test/resources/test-array-data.json index 46fa20b..7ef2bae 100644 --- a/stream-transformation-tool-anonymise/src/test/resources/test-array-data.json +++ b/stream-transformation-tool-anonymise/src/test/resources/test-array-data.json @@ -14,5 +14,6 @@ 3 ], "test2345@mail.com", - "SC208979B" + "SC208979B", + "2017-05-19" ] \ No newline at end of file From d36b9eb1d5bc14b8b1742b078181a66481de15ac Mon Sep 17 00:00:00 2001 From: Yashdeep Srivastava Date: Tue, 25 Feb 2020 12:16:49 +0000 Subject: [PATCH 2/2] CPI-81| Yashdeep | add entry in changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 95b8388..e17a29e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ on [Keep a CHANGELOG](http://keepachangelog.com/). This project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] +### Added +- Make Day and Month as 01 while anonymising date ## [6.4.0] - 2019-11-13 ### Added