From e4d766b808e53cc7ee59b46f3c26acd9fadcca12 Mon Sep 17 00:00:00 2001 From: balasr3 Date: Mon, 4 Sep 2023 07:34:28 +0530 Subject: [PATCH 1/5] BAEL-6572: Added mapping for id and test, based on review comment --- .../java/com/baeldung/expression/mapper/LicenseMapper.java | 6 ++++++ .../baeldung/expression/mapper/LicenseMapperUnitTest.java | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/mapstruct/src/main/java/com/baeldung/expression/mapper/LicenseMapper.java b/mapstruct/src/main/java/com/baeldung/expression/mapper/LicenseMapper.java index 100588b45d..8bfcd8b14b 100644 --- a/mapstruct/src/main/java/com/baeldung/expression/mapper/LicenseMapper.java +++ b/mapstruct/src/main/java/com/baeldung/expression/mapper/LicenseMapper.java @@ -4,6 +4,7 @@ import java.time.Duration; import java.time.LocalDateTime; import java.time.OffsetDateTime; import java.time.ZoneOffset; +import java.util.UUID; import org.mapstruct.AfterMapping; import org.mapstruct.Mapper; @@ -20,6 +21,7 @@ public interface LicenseMapper { @Mapping(target = "endDate", ignore = true) @Mapping(target = "active", constant = "true") @Mapping(target = "renewalRequired", conditionExpression = "java(isEndDateInTwoWeeks(licenseDto))", source = ".") + @Mapping(target = "id", expression = "java(setId())") License toLicense(LicenseDto licenseDto); @AfterMapping @@ -40,4 +42,8 @@ public interface LicenseMapper { .toDays() <= 14; } + default UUID setId() { + return UUID.randomUUID(); + } + } diff --git a/mapstruct/src/test/java/com/baeldung/expression/mapper/LicenseMapperUnitTest.java b/mapstruct/src/test/java/com/baeldung/expression/mapper/LicenseMapperUnitTest.java index 73be63561b..d6ecd87802 100644 --- a/mapstruct/src/test/java/com/baeldung/expression/mapper/LicenseMapperUnitTest.java +++ b/mapstruct/src/test/java/com/baeldung/expression/mapper/LicenseMapperUnitTest.java @@ -21,6 +21,7 @@ class LicenseMapperUnitTest { licenseDto.setStartDate(LocalDateTime.now()); License license = licenseMapper.toLicense(licenseDto); assertThat(license).isNotNull(); + assertThat(license.getId()).isNotNull(); assertThat(license.getEndDate() .toLocalDate()).isEqualTo(LocalDate.now() .plusYears(1)); @@ -33,6 +34,7 @@ class LicenseMapperUnitTest { .plusYears(2)); License license = licenseMapper.toLicense(licenseDto); assertThat(license).isNotNull(); + assertThat(license.getId()).isNotNull(); assertThat(license.getStartDate() .toLocalDate()).isEqualTo(LocalDate.now()); } @@ -42,6 +44,7 @@ class LicenseMapperUnitTest { LicenseDto licenseDto = new LicenseDto(); License license = licenseMapper.toLicense(licenseDto); assertThat(license).isNotNull(); + assertThat(license.getId()).isNotNull(); assertThat(license.getStartDate() .toLocalDate()).isEqualTo(LocalDate.now()); assertThat(license.getEndDate() @@ -58,6 +61,7 @@ class LicenseMapperUnitTest { .plusDays(10)); License license = licenseMapper.toLicense(licenseDto); assertThat(license).isNotNull(); + assertThat(license.getId()).isNotNull(); assertThat(license.isRenewalRequired()).isTrue(); } From 527c797381de0c956c178ebc0989b239f36851a0 Mon Sep 17 00:00:00 2001 From: balasr3 Date: Mon, 4 Sep 2023 07:47:13 +0530 Subject: [PATCH 2/5] BAEL-6572: Added setter for id --- .../src/main/java/com/baeldung/expression/dto/LicenseDto.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mapstruct/src/main/java/com/baeldung/expression/dto/LicenseDto.java b/mapstruct/src/main/java/com/baeldung/expression/dto/LicenseDto.java index 2121038cf3..025df1a4f6 100644 --- a/mapstruct/src/main/java/com/baeldung/expression/dto/LicenseDto.java +++ b/mapstruct/src/main/java/com/baeldung/expression/dto/LicenseDto.java @@ -15,6 +15,10 @@ public class LicenseDto { return id; } + public void setId(UUID id) { + this.id = id; + } + public LocalDateTime getStartDate() { return startDate; } From 573f511bb3cc4ddbbcfb29f3edfa456f14ce1e42 Mon Sep 17 00:00:00 2001 From: balasr3 Date: Tue, 5 Sep 2023 00:56:58 +0530 Subject: [PATCH 3/5] BAEL-6572: Modified test to validateId mapping --- .../expression/mapper/LicenseMapperUnitTest.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/mapstruct/src/test/java/com/baeldung/expression/mapper/LicenseMapperUnitTest.java b/mapstruct/src/test/java/com/baeldung/expression/mapper/LicenseMapperUnitTest.java index d6ecd87802..1c22f972a9 100644 --- a/mapstruct/src/test/java/com/baeldung/expression/mapper/LicenseMapperUnitTest.java +++ b/mapstruct/src/test/java/com/baeldung/expression/mapper/LicenseMapperUnitTest.java @@ -4,6 +4,7 @@ import static org.assertj.core.api.Assertions.assertThat; import java.time.LocalDate; import java.time.LocalDateTime; +import java.util.UUID; import org.junit.jupiter.api.Test; import org.mapstruct.factory.Mappers; @@ -21,7 +22,6 @@ class LicenseMapperUnitTest { licenseDto.setStartDate(LocalDateTime.now()); License license = licenseMapper.toLicense(licenseDto); assertThat(license).isNotNull(); - assertThat(license.getId()).isNotNull(); assertThat(license.getEndDate() .toLocalDate()).isEqualTo(LocalDate.now() .plusYears(1)); @@ -34,7 +34,6 @@ class LicenseMapperUnitTest { .plusYears(2)); License license = licenseMapper.toLicense(licenseDto); assertThat(license).isNotNull(); - assertThat(license.getId()).isNotNull(); assertThat(license.getStartDate() .toLocalDate()).isEqualTo(LocalDate.now()); } @@ -44,7 +43,6 @@ class LicenseMapperUnitTest { LicenseDto licenseDto = new LicenseDto(); License license = licenseMapper.toLicense(licenseDto); assertThat(license).isNotNull(); - assertThat(license.getId()).isNotNull(); assertThat(license.getStartDate() .toLocalDate()).isEqualTo(LocalDate.now()); assertThat(license.getEndDate() @@ -61,8 +59,17 @@ class LicenseMapperUnitTest { .plusDays(10)); License license = licenseMapper.toLicense(licenseDto); assertThat(license).isNotNull(); - assertThat(license.getId()).isNotNull(); assertThat(license.isRenewalRequired()).isTrue(); } + @Test + void givenLicenseDtoWithValidDetails_WhenMapperMethodIsInvoked_ThenLicenseShouldBePopulatedWithValidId() { + LicenseDto licenseDto = new LicenseDto(); + licenseDto.setEndDate(LocalDateTime.now() + .plusDays(10)); + License license = licenseMapper.toLicense(licenseDto); + assertThat(license).isNotNull(); + assertThat(license.getId()).isNotNull(); + } + } \ No newline at end of file From 078a09393ab8d084f32554fee478ad55492fe25a Mon Sep 17 00:00:00 2001 From: balasr3 Date: Tue, 5 Sep 2023 10:04:58 +0530 Subject: [PATCH 4/5] BAEL-6572: Modified test to validateId mapping --- .../java/com/baeldung/expression/mapper/LicenseMapper.java | 6 ------ .../baeldung/expression/mapper/LicenseMapperUnitTest.java | 6 ++++-- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/mapstruct/src/main/java/com/baeldung/expression/mapper/LicenseMapper.java b/mapstruct/src/main/java/com/baeldung/expression/mapper/LicenseMapper.java index 8bfcd8b14b..100588b45d 100644 --- a/mapstruct/src/main/java/com/baeldung/expression/mapper/LicenseMapper.java +++ b/mapstruct/src/main/java/com/baeldung/expression/mapper/LicenseMapper.java @@ -4,7 +4,6 @@ import java.time.Duration; import java.time.LocalDateTime; import java.time.OffsetDateTime; import java.time.ZoneOffset; -import java.util.UUID; import org.mapstruct.AfterMapping; import org.mapstruct.Mapper; @@ -21,7 +20,6 @@ public interface LicenseMapper { @Mapping(target = "endDate", ignore = true) @Mapping(target = "active", constant = "true") @Mapping(target = "renewalRequired", conditionExpression = "java(isEndDateInTwoWeeks(licenseDto))", source = ".") - @Mapping(target = "id", expression = "java(setId())") License toLicense(LicenseDto licenseDto); @AfterMapping @@ -42,8 +40,4 @@ public interface LicenseMapper { .toDays() <= 14; } - default UUID setId() { - return UUID.randomUUID(); - } - } diff --git a/mapstruct/src/test/java/com/baeldung/expression/mapper/LicenseMapperUnitTest.java b/mapstruct/src/test/java/com/baeldung/expression/mapper/LicenseMapperUnitTest.java index 1c22f972a9..dcdda5c1ac 100644 --- a/mapstruct/src/test/java/com/baeldung/expression/mapper/LicenseMapperUnitTest.java +++ b/mapstruct/src/test/java/com/baeldung/expression/mapper/LicenseMapperUnitTest.java @@ -63,13 +63,15 @@ class LicenseMapperUnitTest { } @Test - void givenLicenseDtoWithValidDetails_WhenMapperMethodIsInvoked_ThenLicenseShouldBePopulatedWithValidId() { + void givenLicenseDtoWithoutId_WhenMapperMethodIsInvoked_ThenLicenseShouldBePopulatedWithValidId() { LicenseDto licenseDto = new LicenseDto(); + UUID id = UUID.randomUUID(); + licenseDto.setId(id); licenseDto.setEndDate(LocalDateTime.now() .plusDays(10)); License license = licenseMapper.toLicense(licenseDto); assertThat(license).isNotNull(); - assertThat(license.getId()).isNotNull(); + assertThat(license.getId()).isSameAs(id); } } \ No newline at end of file From 2b422a9ba157938903f93e02f9e785fc1a624c42 Mon Sep 17 00:00:00 2001 From: balasr3 Date: Tue, 5 Sep 2023 23:44:09 +0530 Subject: [PATCH 5/5] BAEL-6572: Removed lombok on License model --- .../baeldung/expression/model/License.java | 41 ++++++++++++++++++- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/mapstruct/src/main/java/com/baeldung/expression/model/License.java b/mapstruct/src/main/java/com/baeldung/expression/model/License.java index 9e87be03d4..71e4f086c0 100644 --- a/mapstruct/src/main/java/com/baeldung/expression/model/License.java +++ b/mapstruct/src/main/java/com/baeldung/expression/model/License.java @@ -3,9 +3,7 @@ package com.baeldung.expression.model; import java.time.OffsetDateTime; import java.util.UUID; -import lombok.Data; -@Data public class License { private UUID id; @@ -18,4 +16,43 @@ public class License { private boolean renewalRequired; + public UUID getId() { + return id; + } + + public void setId(UUID id) { + this.id = id; + } + + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(OffsetDateTime startDate) { + this.startDate = startDate; + } + + public OffsetDateTime getEndDate() { + return endDate; + } + + public void setEndDate(OffsetDateTime endDate) { + this.endDate = endDate; + } + + public boolean isActive() { + return active; + } + + public void setActive(boolean active) { + this.active = active; + } + + public boolean isRenewalRequired() { + return renewalRequired; + } + + public void setRenewalRequired(boolean renewalRequired) { + this.renewalRequired = renewalRequired; + } }