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
+
+
+
+
+ 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
+