From 24d57f0ab6604b49806c465c4fc249cb98abb63c Mon Sep 17 00:00:00 2001 From: Kilian Schneider <48420258+Basler182@users.noreply.github.com> Date: Tue, 28 Feb 2023 22:57:57 +0100 Subject: [PATCH] BAEL-6207 (#13557) * BAEL-6207 IDD * Update pom.xml * Rename HelpRequestServiceTest.java to HelpRequestServiceUnitTest.java * Update HelpRequestServiceUnitTest.java --- patterns-modules/idd/README.md | 1 + patterns-modules/idd/pom.xml | 29 ++++++++++++ .../baeldung/idd/CreateHelpRequestDTO.java | 15 ++++++ .../java/com/baeldung/idd/HelpRequestDTO.java | 13 +++++ .../com/baeldung/idd/HelpRequestService.java | 11 +++++ .../baeldung/idd/HelpRequestServiceImpl.java | 24 ++++++++++ .../com/baeldung/idd/HelpRequestStatus.java | 6 +++ .../baeldung/idd/UpdateHelpRequestDTO.java | 14 ++++++ .../idd/HelpRequestServiceUnitTest.java | 47 +++++++++++++++++++ patterns-modules/pom.xml | 3 +- 10 files changed, 162 insertions(+), 1 deletion(-) create mode 100644 patterns-modules/idd/README.md create mode 100644 patterns-modules/idd/pom.xml create mode 100644 patterns-modules/idd/src/main/java/com/baeldung/idd/CreateHelpRequestDTO.java create mode 100644 patterns-modules/idd/src/main/java/com/baeldung/idd/HelpRequestDTO.java create mode 100644 patterns-modules/idd/src/main/java/com/baeldung/idd/HelpRequestService.java create mode 100644 patterns-modules/idd/src/main/java/com/baeldung/idd/HelpRequestServiceImpl.java create mode 100644 patterns-modules/idd/src/main/java/com/baeldung/idd/HelpRequestStatus.java create mode 100644 patterns-modules/idd/src/main/java/com/baeldung/idd/UpdateHelpRequestDTO.java create mode 100644 patterns-modules/idd/src/test/java/com/baeldung/idd/HelpRequestServiceUnitTest.java diff --git a/patterns-modules/idd/README.md b/patterns-modules/idd/README.md new file mode 100644 index 0000000000..e320af31b4 --- /dev/null +++ b/patterns-modules/idd/README.md @@ -0,0 +1 @@ +### Relevant Articles: \ No newline at end of file diff --git a/patterns-modules/idd/pom.xml b/patterns-modules/idd/pom.xml new file mode 100644 index 0000000000..02795089e0 --- /dev/null +++ b/patterns-modules/idd/pom.xml @@ -0,0 +1,29 @@ + + + 4.0.0 + idd + 1.0 + idd + + + + org.apache.maven.plugins + maven-compiler-plugin + + 9 + 9 + + + + + jar + + + com.baeldung + patterns-modules + 1.0.0-SNAPSHOT + + + \ No newline at end of file diff --git a/patterns-modules/idd/src/main/java/com/baeldung/idd/CreateHelpRequestDTO.java b/patterns-modules/idd/src/main/java/com/baeldung/idd/CreateHelpRequestDTO.java new file mode 100644 index 0000000000..87084474db --- /dev/null +++ b/patterns-modules/idd/src/main/java/com/baeldung/idd/CreateHelpRequestDTO.java @@ -0,0 +1,15 @@ +package com.baeldung.idd; + +public class CreateHelpRequestDTO { + + private final HelpRequestStatus status; + + public CreateHelpRequestDTO(HelpRequestStatus status) { + this.status = status; + } + + public HelpRequestStatus getStatus() { + return status; + } + +} diff --git a/patterns-modules/idd/src/main/java/com/baeldung/idd/HelpRequestDTO.java b/patterns-modules/idd/src/main/java/com/baeldung/idd/HelpRequestDTO.java new file mode 100644 index 0000000000..2ad0c5f100 --- /dev/null +++ b/patterns-modules/idd/src/main/java/com/baeldung/idd/HelpRequestDTO.java @@ -0,0 +1,13 @@ +package com.baeldung.idd; + +public class HelpRequestDTO { + private HelpRequestStatus status; + + public HelpRequestStatus getStatus() { + return status; + } + + public HelpRequestDTO(HelpRequestStatus status) { + this.status = status; + } +} diff --git a/patterns-modules/idd/src/main/java/com/baeldung/idd/HelpRequestService.java b/patterns-modules/idd/src/main/java/com/baeldung/idd/HelpRequestService.java new file mode 100644 index 0000000000..02c0b2531c --- /dev/null +++ b/patterns-modules/idd/src/main/java/com/baeldung/idd/HelpRequestService.java @@ -0,0 +1,11 @@ +package com.baeldung.idd; + +import java.util.List; + +public interface HelpRequestService { + HelpRequestDTO createHelpRequest(CreateHelpRequestDTO createHelpRequestDTO); + + List findAllByStatus(HelpRequestStatus status); + + HelpRequestDTO updateHelpRequest(UpdateHelpRequestDTO updateHelpRequestDTO); +} diff --git a/patterns-modules/idd/src/main/java/com/baeldung/idd/HelpRequestServiceImpl.java b/patterns-modules/idd/src/main/java/com/baeldung/idd/HelpRequestServiceImpl.java new file mode 100644 index 0000000000..8ffed62078 --- /dev/null +++ b/patterns-modules/idd/src/main/java/com/baeldung/idd/HelpRequestServiceImpl.java @@ -0,0 +1,24 @@ +package com.baeldung.idd; + +import java.util.List; + +public class HelpRequestServiceImpl implements HelpRequestService { + + @Override + public HelpRequestDTO createHelpRequest(CreateHelpRequestDTO createHelpRequestDTO) { + // here goes the implementation + return new HelpRequestDTO(createHelpRequestDTO.getStatus()); + } + + @Override + public List findAllByStatus(HelpRequestStatus status) { + // here goes the implementation + return List.of(new HelpRequestDTO(status), new HelpRequestDTO(status)); + } + + @Override + public HelpRequestDTO updateHelpRequest(UpdateHelpRequestDTO updateHelpRequestDTO) { + // here goes the implementation + return new HelpRequestDTO(updateHelpRequestDTO.getStatus()); + } +} diff --git a/patterns-modules/idd/src/main/java/com/baeldung/idd/HelpRequestStatus.java b/patterns-modules/idd/src/main/java/com/baeldung/idd/HelpRequestStatus.java new file mode 100644 index 0000000000..adb2fb5cc3 --- /dev/null +++ b/patterns-modules/idd/src/main/java/com/baeldung/idd/HelpRequestStatus.java @@ -0,0 +1,6 @@ +package com.baeldung.idd; + +public enum HelpRequestStatus { + OPEN, IN_PROGRESS, CLOSED +} + diff --git a/patterns-modules/idd/src/main/java/com/baeldung/idd/UpdateHelpRequestDTO.java b/patterns-modules/idd/src/main/java/com/baeldung/idd/UpdateHelpRequestDTO.java new file mode 100644 index 0000000000..04a46e3d27 --- /dev/null +++ b/patterns-modules/idd/src/main/java/com/baeldung/idd/UpdateHelpRequestDTO.java @@ -0,0 +1,14 @@ +package com.baeldung.idd; + +public class UpdateHelpRequestDTO { + + private final HelpRequestStatus status; + + public UpdateHelpRequestDTO(HelpRequestStatus status) { + this.status = status; + } + + public HelpRequestStatus getStatus() { + return status; + } +} diff --git a/patterns-modules/idd/src/test/java/com/baeldung/idd/HelpRequestServiceUnitTest.java b/patterns-modules/idd/src/test/java/com/baeldung/idd/HelpRequestServiceUnitTest.java new file mode 100644 index 0000000000..7bfacf8a48 --- /dev/null +++ b/patterns-modules/idd/src/test/java/com/baeldung/idd/HelpRequestServiceUnitTest.java @@ -0,0 +1,47 @@ +package com.baeldung.idd; + +import org.assertj.core.api.Assertions; +import org.junit.Test; + +import java.util.List; + +public class HelpRequestServiceUnitTest { + + HelpRequestService testHelpRequestService = new HelpRequestService() { + @Override + public HelpRequestDTO createHelpRequest(CreateHelpRequestDTO createHelpRequestDTO) { + return new HelpRequestDTO(HelpRequestStatus.OPEN); + } + + @Override + public List findAllByStatus(HelpRequestStatus status) { + return List.of(new HelpRequestDTO(HelpRequestStatus.OPEN)); + } + + @Override + public HelpRequestDTO updateHelpRequest(UpdateHelpRequestDTO updateHelpRequestDTO) { + return new HelpRequestDTO(HelpRequestStatus.OPEN); + } + }; + + @Test + public void givenHelpRequest_whenCreateHelpRequest_thenHelpRequestIsCreated() { + // given + CreateHelpRequestDTO createHelpRequestDTO = new CreateHelpRequestDTO(HelpRequestStatus.OPEN); + + // when + HelpRequestDTO helpRequestDTO = testHelpRequestService.createHelpRequest(createHelpRequestDTO); + + // then + Assertions.assertThat(helpRequestDTO).isNotNull(); + Assertions.assertThat(helpRequestDTO.getStatus()).isEqualTo(HelpRequestStatus.OPEN); + } + + @Test + public void givenHelpRequestList_whenFindAllByStatus_shouldContainOnlyStatus() { + HelpRequestService helpRequestService = new HelpRequestServiceImpl(); + List allByStatusOpen = helpRequestService.findAllByStatus(HelpRequestStatus.OPEN); + Assertions.assertThat(allByStatusOpen).extracting(HelpRequestDTO::getStatus).containsOnly(HelpRequestStatus.OPEN); + } + +} diff --git a/patterns-modules/pom.xml b/patterns-modules/pom.xml index 26d9a76aee..5a99b539be 100644 --- a/patterns-modules/pom.xml +++ b/patterns-modules/pom.xml @@ -31,6 +31,7 @@ clean-architecture enterprise-patterns coupling + idd @@ -71,4 +72,4 @@ 9.4.0.v20161208 - \ No newline at end of file +