From f801e24aeb9f218adc373415f113f36ee2b4b1cd Mon Sep 17 00:00:00 2001 From: Mohsin A Date: Fri, 23 Dec 2022 12:22:19 -0500 Subject: [PATCH 1/9] so far converter is done --- .../Utility/ResponseConverterUtility.java | 0 .../example/model/NotificationData.java | 23 ++++++++++++++++ .../khoubyari/example/model/Template1.java | 15 +++++++++++ .../khoubyari/example/model/Template2.java | 15 +++++++++++ .../khoubyari/example/model/Template3.java | 15 +++++++++++ .../example/service/MohasinService.java | 27 +++++++++++++++++++ 6 files changed, 95 insertions(+) create mode 100644 src/main/java/com/khoubyari/example/Utility/ResponseConverterUtility.java create mode 100644 src/main/java/com/khoubyari/example/model/NotificationData.java create mode 100644 src/main/java/com/khoubyari/example/model/Template1.java create mode 100644 src/main/java/com/khoubyari/example/model/Template2.java create mode 100644 src/main/java/com/khoubyari/example/model/Template3.java create mode 100644 src/main/java/com/khoubyari/example/service/MohasinService.java diff --git a/src/main/java/com/khoubyari/example/Utility/ResponseConverterUtility.java b/src/main/java/com/khoubyari/example/Utility/ResponseConverterUtility.java new file mode 100644 index 00000000..e69de29b diff --git a/src/main/java/com/khoubyari/example/model/NotificationData.java b/src/main/java/com/khoubyari/example/model/NotificationData.java new file mode 100644 index 00000000..c56d51c1 --- /dev/null +++ b/src/main/java/com/khoubyari/example/model/NotificationData.java @@ -0,0 +1,23 @@ +public class NotificationData implements Serializable { + + + + public String key; + + public String value; + + public String valueType; + + public String getKey() { return key; } + + public void setKey() { this.key = key; } + + public String getValue() { return value; } + + public void setValue() { this.value = value; } + + public String getValueType() { return valueType; } + + public void setValueType() { this.valueType = valueType; } + +} \ No newline at end of file diff --git a/src/main/java/com/khoubyari/example/model/Template1.java b/src/main/java/com/khoubyari/example/model/Template1.java new file mode 100644 index 00000000..5c613b16 --- /dev/null +++ b/src/main/java/com/khoubyari/example/model/Template1.java @@ -0,0 +1,15 @@ +public class Template1 implements Serializable { + + public String firstName; + + public List updatedInfo; + + public String getfirstName() { return firstName; } + + public void setFirstName(String firstName) { this.firstName = firstName; } + + public List getUpdatedInfo() { return updatedInfo; } + + public void setUpdatedInfo(List updatedInfo) { this.updatedInfo = updatedInfo; } + +} \ No newline at end of file diff --git a/src/main/java/com/khoubyari/example/model/Template2.java b/src/main/java/com/khoubyari/example/model/Template2.java new file mode 100644 index 00000000..4bf838b1 --- /dev/null +++ b/src/main/java/com/khoubyari/example/model/Template2.java @@ -0,0 +1,15 @@ +public class Template2 implements Serializable { + + public String firstName; + + public List cardholderNames; + + public String getfirstName() { return firstName; } + + public void setFirstName(String firstName) { this.firstName = firstName; } + + public List getCardholderNames() { return CardholderNames; } + + public void setCardholderNames(List cardholderNames) { this.cardholderNames = cardholderNames; } + +} \ No newline at end of file diff --git a/src/main/java/com/khoubyari/example/model/Template3.java b/src/main/java/com/khoubyari/example/model/Template3.java new file mode 100644 index 00000000..64757119 --- /dev/null +++ b/src/main/java/com/khoubyari/example/model/Template3.java @@ -0,0 +1,15 @@ +public class Template3 implements Serializable { + + public String firstName; + + public List testItems; + + public String getfirstName() { return firstName; } + + public void setFirstName(String firstName) { this.firstName = firstName; } + + public List getTestItems() { return testItems; } + + public void setTestItems(List testItems) { this.testItems = testItems; } + +} \ No newline at end of file diff --git a/src/main/java/com/khoubyari/example/service/MohasinService.java b/src/main/java/com/khoubyari/example/service/MohasinService.java new file mode 100644 index 00000000..2bd77fda --- /dev/null +++ b/src/main/java/com/khoubyari/example/service/MohasinService.java @@ -0,0 +1,27 @@ +package com.khoubyari.example.service; + + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.actuate.health.Health; +import org.springframework.boot.actuate.health.HealthIndicator; +import org.springframework.stereotype.Component; + +/** + * This is an optional class used to inject application specific health check + * into the Spring Boot health management endpoint. + */ +@Component +public class MohasinService { + + public String notificationDataMapConverter(String url, List notificationData) { + + + Template1 template1 = new Template1(); + + + + + return finalOutput; + } + +} From fe9c55f38c42e5930842ce264966dc35b9896803 Mon Sep 17 00:00:00 2001 From: Mohsin A Date: Fri, 23 Dec 2022 12:37:49 -0500 Subject: [PATCH 2/9] updated the current state --- .../khoubyari/example/model/Template1.java | 6 ++ .../khoubyari/example/model/Template2.java | 6 ++ .../khoubyari/example/model/Template3.java | 6 ++ .../example/service/MohasinService.java | 56 +++++++++++++++++-- 4 files changed, 70 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/khoubyari/example/model/Template1.java b/src/main/java/com/khoubyari/example/model/Template1.java index 5c613b16..c759491c 100644 --- a/src/main/java/com/khoubyari/example/model/Template1.java +++ b/src/main/java/com/khoubyari/example/model/Template1.java @@ -2,12 +2,18 @@ public class Template1 implements Serializable { public String firstName; + public String alertTypeCode; + public List updatedInfo; public String getfirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } + public String getAlertTypeCode() { return alertTypeCode; } + + public void setAlertTypeCode(String alertTypeCode) { this.alertTypeCode = alertTypeCode; } + public List getUpdatedInfo() { return updatedInfo; } public void setUpdatedInfo(List updatedInfo) { this.updatedInfo = updatedInfo; } diff --git a/src/main/java/com/khoubyari/example/model/Template2.java b/src/main/java/com/khoubyari/example/model/Template2.java index 4bf838b1..110a9c9e 100644 --- a/src/main/java/com/khoubyari/example/model/Template2.java +++ b/src/main/java/com/khoubyari/example/model/Template2.java @@ -2,12 +2,18 @@ public class Template2 implements Serializable { public String firstName; + public String alertTypeCode; + public List cardholderNames; public String getfirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } + public String getAlertTypeCode() { return alertTypeCode; } + + public void setAlertTypeCode(String alertTypeCode) { this.alertTypeCode = alertTypeCode; } + public List getCardholderNames() { return CardholderNames; } public void setCardholderNames(List cardholderNames) { this.cardholderNames = cardholderNames; } diff --git a/src/main/java/com/khoubyari/example/model/Template3.java b/src/main/java/com/khoubyari/example/model/Template3.java index 64757119..a10bf2fe 100644 --- a/src/main/java/com/khoubyari/example/model/Template3.java +++ b/src/main/java/com/khoubyari/example/model/Template3.java @@ -2,12 +2,18 @@ public class Template3 implements Serializable { public String firstName; + public String alertTypeCode; + public List testItems; public String getfirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } + public String getAlertTypeCode() { return alertTypeCode; } + + public void setAlertTypeCode(String alertTypeCode) { this.alertTypeCode = alertTypeCode; } + public List getTestItems() { return testItems; } public void setTestItems(List testItems) { this.testItems = testItems; } diff --git a/src/main/java/com/khoubyari/example/service/MohasinService.java b/src/main/java/com/khoubyari/example/service/MohasinService.java index 2bd77fda..813468f4 100644 --- a/src/main/java/com/khoubyari/example/service/MohasinService.java +++ b/src/main/java/com/khoubyari/example/service/MohasinService.java @@ -13,15 +13,63 @@ @Component public class MohasinService { + public String incomingRequest(){ + + //map with template1 + notificationDataMapConverter("abc", notificationDataMap); + + //map with template2 + notificationDataMapConverter("def", notificationDataMap); + + //map with template3 + notificationDataMapConverter("ghi", notificationDataMap); + + } + + public String notificationDataMapConverter(String url, List notificationData) { Template1 template1 = new Template1(); - - - - return finalOutput; + template1.setAlertTypeCode(url) + + for(int i=0; i>(){}.getType(); + List test = new Gson().fromJson(notificationData.get(i).value, listType); + template1.setUpdatedInfo(test); + break; + case "firstName": + template1.setFirstName(notificationData.get(i).value); + } + } + + Gson gson = new GsonBuilder().disableHtmlEscaping().create(); + String output = gson.toJson(gson.toJson(template1)); + + return output; } + /* + Response + Response1 + Response2 + + Class Response { + toResponse(notificationData, type); + switch(type){ + case "": + new Converter(notificationData); + Response1; + break; + case ""; + new Converter(notificationData); + Response2; + break; + } + } + */ + } From 6f999fc7e0721a7c4695c069f61f54b89820bc7c Mon Sep 17 00:00:00 2001 From: Mohsin A Date: Fri, 23 Dec 2022 12:52:03 -0500 Subject: [PATCH 3/9] updated the refactor --- .../Utility/ResponseConverterUtility.java | 77 +++++++++++++++++++ .../example/service/MohasinService.java | 17 +--- 2 files changed, 78 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/khoubyari/example/Utility/ResponseConverterUtility.java b/src/main/java/com/khoubyari/example/Utility/ResponseConverterUtility.java index e69de29b..8a4d30c8 100644 --- a/src/main/java/com/khoubyari/example/Utility/ResponseConverterUtility.java +++ b/src/main/java/com/khoubyari/example/Utility/ResponseConverterUtility.java @@ -0,0 +1,77 @@ +class ResponseConverterUtility { + + public void test(String templateType, List notificationData){ + + switch(templateType){ + case "abc": + executeTemplate1(templateType, notificationData); + break; + case "def": + executeTemplate2(templateType, notificationData); + break; + case "ghi": + executeTemplate3(templateType, notificationData); + break; + } + + + } + + private void executeTemplate1(){ + Template1 template1 = new Template1(); + template1.setAlertTypeCode(url); + + for(int i=0; i>(){}.getType(); + List test = new Gson().fromJson(notificationData.get(i).value, listType); + template1.setUpdatedInfo(test); + break; + case "firstName": + template1.setFirstName(notificationData.get(i).value); + break; + } + } + } + + + private void executeTemplate2(){ + Template2 template2 = new Template2(); + template2.setAlertTypeCode(url); + + for(int i=0; i>(){}.getType(); + List test = new Gson().fromJson(notificationData.get(i).value, listType); + template2.setCardholderNames(test); + break; + case "firstName": + template2.setFirstName(notificationData.get(i).value); + break; + } + } + } + + private void executeTemplate3(){ + Template3 template3 = new Template3(); + template3.setAlertTypeCode(url); + + for(int i=0; i>(){}.getType(); + List test = new Gson().fromJson(notificationData.get(i).value, listType); + template3.setTestItems(test); + break; + case "firstName": + template3.setFirstName(notificationData.get(i).value); + break; + } + } + } + + + +} \ No newline at end of file diff --git a/src/main/java/com/khoubyari/example/service/MohasinService.java b/src/main/java/com/khoubyari/example/service/MohasinService.java index 813468f4..55d3a3b4 100644 --- a/src/main/java/com/khoubyari/example/service/MohasinService.java +++ b/src/main/java/com/khoubyari/example/service/MohasinService.java @@ -29,22 +29,7 @@ public String incomingRequest(){ public String notificationDataMapConverter(String url, List notificationData) { - - Template1 template1 = new Template1(); - - template1.setAlertTypeCode(url) - - for(int i=0; i>(){}.getType(); - List test = new Gson().fromJson(notificationData.get(i).value, listType); - template1.setUpdatedInfo(test); - break; - case "firstName": - template1.setFirstName(notificationData.get(i).value); - } - } + responseConverterUtility.test(url, notificationData); Gson gson = new GsonBuilder().disableHtmlEscaping().create(); String output = gson.toJson(gson.toJson(template1)); From 8b2b868195c37a0272dd0383753c4b6fe381eb97 Mon Sep 17 00:00:00 2001 From: Mohsin A Date: Sun, 25 Dec 2022 01:09:12 -0500 Subject: [PATCH 4/9] fixed all the dependencies issue --- pom.xml | 91 +++++++++++++++++-- .../example/api/rest/docs/SwaggerConfig.java | 28 ++---- .../com/khoubyari/example/domain/Hotel.java | 7 +- .../example/model/CardholderName.java | 4 + .../example/model/NotificationData.java | 10 +- .../example/model/NotificationDataMap.java | 36 ++++++++ .../khoubyari/example/model/Template1.java | 7 +- .../khoubyari/example/model/Template2.java | 10 +- .../khoubyari/example/model/Template3.java | 7 +- .../com/khoubyari/example/model/TestItem.java | 4 + .../example/model/UpdatedInfoItem.java | 4 + .../example/service/MohasinService.java | 60 ------------ .../example/service/MohsinService.java | 78 ++++++++++++++++ .../ResponseConverterUtility.java | 36 ++++++-- .../example/test/MohsinServiceTest.java | 47 ++++++++++ 15 files changed, 326 insertions(+), 103 deletions(-) create mode 100644 src/main/java/com/khoubyari/example/model/CardholderName.java create mode 100644 src/main/java/com/khoubyari/example/model/NotificationDataMap.java create mode 100644 src/main/java/com/khoubyari/example/model/TestItem.java create mode 100644 src/main/java/com/khoubyari/example/model/UpdatedInfoItem.java delete mode 100644 src/main/java/com/khoubyari/example/service/MohasinService.java create mode 100644 src/main/java/com/khoubyari/example/service/MohsinService.java rename src/main/java/com/khoubyari/example/{Utility => utility}/ResponseConverterUtility.java (66%) create mode 100644 src/test/java/com/khoubyari/example/test/MohsinServiceTest.java diff --git a/pom.xml b/pom.xml index e5a9405a..eef58541 100644 --- a/pom.xml +++ b/pom.xml @@ -24,23 +24,27 @@ org.springframework.boot spring-boot-actuator + 3.0.0 org.springframework.boot spring-boot-starter-web + 3.0.0 org.springframework.boot spring-boot-starter-security + 3.0.0 org.springframework.boot spring-boot-starter-tomcat + 3.0.0 provided @@ -48,18 +52,20 @@ org.springframework.boot spring-boot-starter-data-jpa + 3.0.0 com.h2database h2 - 1.4.193 + 2.1.214 org.springframework.boot spring-boot-starter-test + 3.0.0 test @@ -73,12 +79,12 @@ com.jayway.jsonpath json-path - 2.4.0 + 2.7.0 com.jayway.jsonpath json-path-assert - 0.9.1 + 2.7.0 test @@ -86,17 +92,18 @@ io.springfox springfox-swagger2 - 2.5.0 + 3.0.0 io.springfox springfox-swagger-ui - 2.5.0 + 3.0.0 org.hsqldb hsqldb + 2.7.1 runtime @@ -104,7 +111,72 @@ javax.xml.bind jaxb-api - 2.3.0 + 2.4.0-b180830.0359 + + + com.khoubyari + spring-boot-rest-example + 0.5.0 + + + commons-io + commons-io + 2.11.0 + + + com.google.code.gson + gson + 2.10 + + + serializable-fn + serializable-fn + 1.1.4 + + + io.github.portlek + serializable + 2.0.0 + + + jp.co.ap-com + spring-oauth2-serializable + 0.0.2 + + + org.danekja + jdk-serializable-functional + 1.9.0 + + + org.aksw.commons + aksw-commons-lambdas-serializable + 0.9.4 + + + junit + junit + test + + + org.springframework.boot + spring-boot-actuator + 1.5.9.RELEASE + + + javax.validation + validation-api + 1.1.0.Final + + + com.google.collections + google-collections + 18.0 + + + com.google.collections + google-collections + 1.0 @@ -135,4 +207,11 @@ + + + clojars + Clojars + https://repo.clojars.org/ + + diff --git a/src/main/java/com/khoubyari/example/api/rest/docs/SwaggerConfig.java b/src/main/java/com/khoubyari/example/api/rest/docs/SwaggerConfig.java index f3c33b8a..89fb2f44 100644 --- a/src/main/java/com/khoubyari/example/api/rest/docs/SwaggerConfig.java +++ b/src/main/java/com/khoubyari/example/api/rest/docs/SwaggerConfig.java @@ -1,17 +1,9 @@ package com.khoubyari.example.api.rest.docs; -import com.google.common.base.Predicates; - -import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; - import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @@ -20,16 +12,16 @@ @ComponentScan("com.khoubyari.example.api.rest") public class SwaggerConfig { - - @Bean - public Docket api() { - return new Docket(DocumentationType.SWAGGER_2) - .select() - .apis(RequestHandlerSelectors.any()) - .paths(Predicates.not(PathSelectors.regex("/error"))) - .build() - .apiInfo(apiInfo()); - } +// +// @Bean +// public Docket api() { +// return new Docket(DocumentationType.SWAGGER_2) +// .select() +// .apis(RequestHandlerSelectors.any()) +// .paths(Predicates.not(PathSelectors.regex("/error"))) +// .build() +// .apiInfo(apiInfo()); +// } private ApiInfo apiInfo() { diff --git a/src/main/java/com/khoubyari/example/domain/Hotel.java b/src/main/java/com/khoubyari/example/domain/Hotel.java index fb41e08d..c92f3b06 100644 --- a/src/main/java/com/khoubyari/example/domain/Hotel.java +++ b/src/main/java/com/khoubyari/example/domain/Hotel.java @@ -1,7 +1,10 @@ package com.khoubyari.example.domain; -import javax.persistence.*; -import javax.xml.bind.annotation.*; +import jakarta.persistence.*; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlRootElement; /* * a simple domain entity doubling as a DTO diff --git a/src/main/java/com/khoubyari/example/model/CardholderName.java b/src/main/java/com/khoubyari/example/model/CardholderName.java new file mode 100644 index 00000000..c22319e2 --- /dev/null +++ b/src/main/java/com/khoubyari/example/model/CardholderName.java @@ -0,0 +1,4 @@ +package com.khoubyari.example.model; + +public class CardholderName { +} diff --git a/src/main/java/com/khoubyari/example/model/NotificationData.java b/src/main/java/com/khoubyari/example/model/NotificationData.java index c56d51c1..c2f4f7b8 100644 --- a/src/main/java/com/khoubyari/example/model/NotificationData.java +++ b/src/main/java/com/khoubyari/example/model/NotificationData.java @@ -1,6 +1,8 @@ -public class NotificationData implements Serializable { +package com.khoubyari.example.model; +import java.io.Serializable; +public class NotificationData implements Serializable { public String key; @@ -10,14 +12,14 @@ public class NotificationData implements Serializable { public String getKey() { return key; } - public void setKey() { this.key = key; } + public void setKey(String a) { this.key = key; } public String getValue() { return value; } - public void setValue() { this.value = value; } + public void setValue(String mohasin) { this.value = value; } public String getValueType() { return valueType; } - public void setValueType() { this.valueType = valueType; } + public void setValueType(String looparray) { this.valueType = valueType; } } \ No newline at end of file diff --git a/src/main/java/com/khoubyari/example/model/NotificationDataMap.java b/src/main/java/com/khoubyari/example/model/NotificationDataMap.java new file mode 100644 index 00000000..e3506451 --- /dev/null +++ b/src/main/java/com/khoubyari/example/model/NotificationDataMap.java @@ -0,0 +1,36 @@ +package com.khoubyari.example.model; + +import java.util.List; + +public class NotificationDataMap { + + private String templateCode; + + private String templateId; + + private List notificationDataList; + + public String getTemplateCode() { + return templateCode; + } + + public void setTemplateCode(String templateCode) { + this.templateCode = templateCode; + } + + public String getTemplateId() { + return templateId; + } + + public void setTemplateId(String templateId) { + this.templateId = templateId; + } + + public List getNotificationDataList() { + return notificationDataList; + } + + public void setNotificationDataList(List notificationDataList) { + this.notificationDataList = notificationDataList; + } +} diff --git a/src/main/java/com/khoubyari/example/model/Template1.java b/src/main/java/com/khoubyari/example/model/Template1.java index c759491c..1bcf80f2 100644 --- a/src/main/java/com/khoubyari/example/model/Template1.java +++ b/src/main/java/com/khoubyari/example/model/Template1.java @@ -1,3 +1,8 @@ +package com.khoubyari.example.model; + +import java.io.Serializable; +import java.util.List; + public class Template1 implements Serializable { public String firstName; @@ -6,7 +11,7 @@ public class Template1 implements Serializable { public List updatedInfo; - public String getfirstName() { return firstName; } + public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } diff --git a/src/main/java/com/khoubyari/example/model/Template2.java b/src/main/java/com/khoubyari/example/model/Template2.java index 110a9c9e..24038cb5 100644 --- a/src/main/java/com/khoubyari/example/model/Template2.java +++ b/src/main/java/com/khoubyari/example/model/Template2.java @@ -1,3 +1,9 @@ +package com.khoubyari.example.model; + + +import java.io.Serializable; +import java.util.List; + public class Template2 implements Serializable { public String firstName; @@ -6,7 +12,7 @@ public class Template2 implements Serializable { public List cardholderNames; - public String getfirstName() { return firstName; } + public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } @@ -14,7 +20,7 @@ public class Template2 implements Serializable { public void setAlertTypeCode(String alertTypeCode) { this.alertTypeCode = alertTypeCode; } - public List getCardholderNames() { return CardholderNames; } + public List getCardholderNames() { return cardholderNames; } public void setCardholderNames(List cardholderNames) { this.cardholderNames = cardholderNames; } diff --git a/src/main/java/com/khoubyari/example/model/Template3.java b/src/main/java/com/khoubyari/example/model/Template3.java index a10bf2fe..07ef1f62 100644 --- a/src/main/java/com/khoubyari/example/model/Template3.java +++ b/src/main/java/com/khoubyari/example/model/Template3.java @@ -1,3 +1,8 @@ +package com.khoubyari.example.model; + +import java.io.Serializable; +import java.util.List; + public class Template3 implements Serializable { public String firstName; @@ -6,7 +11,7 @@ public class Template3 implements Serializable { public List testItems; - public String getfirstName() { return firstName; } + public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } diff --git a/src/main/java/com/khoubyari/example/model/TestItem.java b/src/main/java/com/khoubyari/example/model/TestItem.java new file mode 100644 index 00000000..3a9edebe --- /dev/null +++ b/src/main/java/com/khoubyari/example/model/TestItem.java @@ -0,0 +1,4 @@ +package com.khoubyari.example.model; + +public class TestItem { +} diff --git a/src/main/java/com/khoubyari/example/model/UpdatedInfoItem.java b/src/main/java/com/khoubyari/example/model/UpdatedInfoItem.java new file mode 100644 index 00000000..2f796108 --- /dev/null +++ b/src/main/java/com/khoubyari/example/model/UpdatedInfoItem.java @@ -0,0 +1,4 @@ +package com.khoubyari.example.model; + +public class UpdatedInfoItem { +} diff --git a/src/main/java/com/khoubyari/example/service/MohasinService.java b/src/main/java/com/khoubyari/example/service/MohasinService.java deleted file mode 100644 index 55d3a3b4..00000000 --- a/src/main/java/com/khoubyari/example/service/MohasinService.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.khoubyari.example.service; - - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.actuate.health.Health; -import org.springframework.boot.actuate.health.HealthIndicator; -import org.springframework.stereotype.Component; - -/** - * This is an optional class used to inject application specific health check - * into the Spring Boot health management endpoint. - */ -@Component -public class MohasinService { - - public String incomingRequest(){ - - //map with template1 - notificationDataMapConverter("abc", notificationDataMap); - - //map with template2 - notificationDataMapConverter("def", notificationDataMap); - - //map with template3 - notificationDataMapConverter("ghi", notificationDataMap); - - } - - - public String notificationDataMapConverter(String url, List notificationData) { - - responseConverterUtility.test(url, notificationData); - - Gson gson = new GsonBuilder().disableHtmlEscaping().create(); - String output = gson.toJson(gson.toJson(template1)); - - return output; - } - - /* - Response - Response1 - Response2 - - Class Response { - toResponse(notificationData, type); - switch(type){ - case "": - new Converter(notificationData); - Response1; - break; - case ""; - new Converter(notificationData); - Response2; - break; - } - } - */ - -} diff --git a/src/main/java/com/khoubyari/example/service/MohsinService.java b/src/main/java/com/khoubyari/example/service/MohsinService.java new file mode 100644 index 00000000..92ffa9b8 --- /dev/null +++ b/src/main/java/com/khoubyari/example/service/MohsinService.java @@ -0,0 +1,78 @@ +package com.khoubyari.example.service; + + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.khoubyari.example.model.NotificationData; +import com.khoubyari.example.model.NotificationDataMap; +import com.khoubyari.example.utility.ResponseConverterUtility; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * This is an optional class used to inject application specific health check + * into the Spring Boot health management endpoint. + */ +@Service +public class MohsinService { + + @Autowired + ResponseConverterUtility responseConverterUtility; + + //request starts here, this is just skeleton + public String incomingRequest(NotificationDataMap notificationDataMap){ + + if(notificationDataMap.getTemplateCode()=="abc"){ + //map with template1 + return notificationDataMapConverter(notificationDataMap.getTemplateCode(), notificationDataMap.getNotificationDataList()); + } + + if(notificationDataMap.getTemplateCode()=="def"){ + //map with template1 + return notificationDataMapConverter(notificationDataMap.getTemplateCode(), notificationDataMap.getNotificationDataList()); + } + + if(notificationDataMap.getTemplateCode()=="ghi"){ + //map with template1 + return notificationDataMapConverter(notificationDataMap.getTemplateCode(), notificationDataMap.getNotificationDataList()); + } + + return null; + } + + + public String notificationDataMapConverter(String url, List notificationData) { + + // this returns NULL, how to fix this? //VIJAY + Object x = responseConverterUtility.test(url, notificationData); + + //output is null as of now + Gson gson = new GsonBuilder().disableHtmlEscaping().create(); + String output = gson.toJson(gson.toJson(x)); + + return output; + } + + /* + Response + Response1 + Response2 + + Class Response { + toResponse(notificationData, type); + switch(type){ + case "": + new Converter(notificationData); + Response1; + break; + case ""; + new Converter(notificationData); + Response2; + break; + } + } + */ + +} diff --git a/src/main/java/com/khoubyari/example/Utility/ResponseConverterUtility.java b/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java similarity index 66% rename from src/main/java/com/khoubyari/example/Utility/ResponseConverterUtility.java rename to src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java index 8a4d30c8..8b8f1ebb 100644 --- a/src/main/java/com/khoubyari/example/Utility/ResponseConverterUtility.java +++ b/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java @@ -1,7 +1,19 @@ -class ResponseConverterUtility { +package com.khoubyari.example.utility; - public void test(String templateType, List notificationData){ +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.khoubyari.example.model.*; +import org.springframework.stereotype.Component; +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.List; + +@Component +public class ResponseConverterUtility { + + //how in java to return different ObjectTypes in a method?? this Object returns NULL value //Vijay + public Object test(String templateType, List notificationData){ switch(templateType){ case "abc": executeTemplate1(templateType, notificationData); @@ -14,12 +26,14 @@ public void test(String templateType, List notificationData){ break; } - + return null; } - private void executeTemplate1(){ + //how to refactor this common executeTemplate1, 2, 3 into a generic function ?? //VIJAY + + private Template1 executeTemplate1(String templateType, List notificationData){ Template1 template1 = new Template1(); - template1.setAlertTypeCode(url); + template1.setAlertTypeCode(templateType); for(int i=0; i notificationData){ Template2 template2 = new Template2(); - template2.setAlertTypeCode(url); + template2.setAlertTypeCode(templateType); for(int i=0; i notificationData){ Template3 template3 = new Template3(); - template3.setAlertTypeCode(url); + template3.setAlertTypeCode(templateType); for(int i=0; i notificationDataList = new ArrayList<>(); + NotificationData notificationData = new NotificationData(); + notificationData.setKey("firstName"); + notificationData.setValue("Mohsin"); + NotificationData notificationData1 = new NotificationData(); + notificationData1.setKey("updatedInfo"); + notificationData1.setValue(""); + notificationData1.setValueType("looparray"); + notificationDataList.add(notificationData); + notificationDataList.add(notificationData1); + notificationDataMap.setNotificationDataList(notificationDataList); + + Object x = new Object(); + + Mockito.when(responseConverterUtility.test(Mockito.anyString(), Mockito.anyList())).thenReturn(x); + mohsinService.incomingRequest(notificationDataMap); + } +} From 814b93bbe120b349f057388d15962470565ac1b9 Mon Sep 17 00:00:00 2001 From: Mohsin A Date: Sun, 25 Dec 2022 01:31:11 -0500 Subject: [PATCH 5/9] fixing the code refactor --- .../example/model/CardholderName.java | 11 +++- .../example/model/NotificationData.java | 34 +++++++--- .../example/model/TableTestItem.java | 24 +++++++ .../com/khoubyari/example/model/TestItem.java | 62 +++++++++++++++++++ .../example/model/UpdatedInfoItem.java | 11 +++- .../utility/ResponseConverterUtility.java | 25 ++++---- 6 files changed, 143 insertions(+), 24 deletions(-) create mode 100644 src/main/java/com/khoubyari/example/model/TableTestItem.java diff --git a/src/main/java/com/khoubyari/example/model/CardholderName.java b/src/main/java/com/khoubyari/example/model/CardholderName.java index c22319e2..69d5873b 100644 --- a/src/main/java/com/khoubyari/example/model/CardholderName.java +++ b/src/main/java/com/khoubyari/example/model/CardholderName.java @@ -1,4 +1,13 @@ package com.khoubyari.example.model; -public class CardholderName { +import org.codehaus.jackson.annotate.JsonProperty; + +public class CardholderName { + + @JsonProperty("key") + public T key; + + public T getKey(){ + return key; + } } diff --git a/src/main/java/com/khoubyari/example/model/NotificationData.java b/src/main/java/com/khoubyari/example/model/NotificationData.java index c2f4f7b8..9f1d9ec2 100644 --- a/src/main/java/com/khoubyari/example/model/NotificationData.java +++ b/src/main/java/com/khoubyari/example/model/NotificationData.java @@ -1,25 +1,39 @@ package com.khoubyari.example.model; +import javax.annotation.Nullable; import java.io.Serializable; +import java.util.Optional; public class NotificationData implements Serializable { - public String key; + private String key; - public String value; + private String value; - public String valueType; + private String valueType; - public String getKey() { return key; } + public String getKey() { + return key; + } - public void setKey(String a) { this.key = key; } + public void setKey(String key) { + this.key = key; + } - public String getValue() { return value; } + public String getValue() { + return value; + } - public void setValue(String mohasin) { this.value = value; } + public void setValue(String value) { + this.value = value; + } - public String getValueType() { return valueType; } - - public void setValueType(String looparray) { this.valueType = valueType; } + @Nullable + public Optional getValueType() { + return Optional.ofNullable(valueType); + } + public void setValueType(String valueType) { + this.valueType = valueType; + } } \ No newline at end of file diff --git a/src/main/java/com/khoubyari/example/model/TableTestItem.java b/src/main/java/com/khoubyari/example/model/TableTestItem.java new file mode 100644 index 00000000..a211414e --- /dev/null +++ b/src/main/java/com/khoubyari/example/model/TableTestItem.java @@ -0,0 +1,24 @@ +package com.khoubyari.example.model; + +public class TableTestItem { + + private String description; + + private String number; + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getNumber() { + return number; + } + + public void setNumber(String number) { + this.number = number; + } +} diff --git a/src/main/java/com/khoubyari/example/model/TestItem.java b/src/main/java/com/khoubyari/example/model/TestItem.java index 3a9edebe..d8b938ac 100644 --- a/src/main/java/com/khoubyari/example/model/TestItem.java +++ b/src/main/java/com/khoubyari/example/model/TestItem.java @@ -1,4 +1,66 @@ package com.khoubyari.example.model; +import java.util.List; + public class TestItem { + + private String lastFour; + + private String icceUrl; + + private String clientName; + + private String bodyMod; + + private String firstName; + + private List tableTestItemList; + + public String getLastFour() { + return lastFour; + } + + public void setLastFour(String lastFour) { + this.lastFour = lastFour; + } + + public String getIcceUrl() { + return icceUrl; + } + + public void setIcceUrl(String icceUrl) { + this.icceUrl = icceUrl; + } + + public String getClientName() { + return clientName; + } + + public void setClientName(String clientName) { + this.clientName = clientName; + } + + public String getBodyMod() { + return bodyMod; + } + + public void setBodyMod(String bodyMod) { + this.bodyMod = bodyMod; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public List getTableTestItemList() { + return tableTestItemList; + } + + public void setTableTestItemList(List tableTestItemList) { + this.tableTestItemList = tableTestItemList; + } } diff --git a/src/main/java/com/khoubyari/example/model/UpdatedInfoItem.java b/src/main/java/com/khoubyari/example/model/UpdatedInfoItem.java index 2f796108..fc6760b5 100644 --- a/src/main/java/com/khoubyari/example/model/UpdatedInfoItem.java +++ b/src/main/java/com/khoubyari/example/model/UpdatedInfoItem.java @@ -1,4 +1,13 @@ package com.khoubyari.example.model; -public class UpdatedInfoItem { +import org.codehaus.jackson.annotate.JsonProperty; + +public class UpdatedInfoItem { + + @JsonProperty("value") + private T value; + + public T getValue(){ + return value; + } } diff --git a/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java b/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java index 8b8f1ebb..dd58a101 100644 --- a/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java +++ b/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java @@ -29,21 +29,21 @@ public Object test(String templateType, List notificationData) return null; } - //how to refactor this common executeTemplate1, 2, 3 into a generic function ?? //VIJAY + //how to refactor this common executeTemplate1, executeTemplate2, executeTemplate3 into a generic function ?? //VIJAY private Template1 executeTemplate1(String templateType, List notificationData){ Template1 template1 = new Template1(); template1.setAlertTypeCode(templateType); for(int i=0; i>(){}.getType(); - List test = new Gson().fromJson(notificationData.get(i).value, listType); + List test = new Gson().fromJson(notificationData.get(i).getValue(), listType); template1.setUpdatedInfo(test); break; case "firstName": - template1.setFirstName(notificationData.get(i).value); + template1.setFirstName(notificationData.get(i).getValue()); break; } } @@ -57,33 +57,34 @@ private Template2 executeTemplate2(String templateType, List n template2.setAlertTypeCode(templateType); for(int i=0; i>(){}.getType(); - List test = new Gson().fromJson(notificationData.get(i).value, listType); + List test = new Gson().fromJson(notificationData.get(i).getKey(), listType); template2.setCardholderNames(test); break; case "firstName": - template2.setFirstName(notificationData.get(i).value); + template2.setFirstName(notificationData.get(i).getValue()); break; } } return template2; } + //template 3 is different use case with key,value pair in case TableTestItem. //Vijay private Template3 executeTemplate3(String templateType, List notificationData){ Template3 template3 = new Template3(); template3.setAlertTypeCode(templateType); for(int i=0; i>(){}.getType(); - List test = new Gson().fromJson(notificationData.get(i).value, listType); + List test = new Gson().fromJson(notificationData.get(i).getValue(), listType); template3.setTestItems(test); break; case "firstName": - template3.setFirstName(notificationData.get(i).value); + template3.setFirstName(notificationData.get(i).getValue()); break; } } From 73b1105bcf5bb35ce7c1b334051952aa35098af9 Mon Sep 17 00:00:00 2001 From: Mohsin A Date: Sun, 25 Dec 2022 01:32:27 -0500 Subject: [PATCH 6/9] rewrite a logic --- .../example/utility/ResponseConverterUtility.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java b/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java index dd58a101..a13174d2 100644 --- a/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java +++ b/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java @@ -79,9 +79,10 @@ private Template3 executeTemplate3(String templateType, List n for(int i=0; i>(){}.getType(); - List test = new Gson().fromJson(notificationData.get(i).getValue(), listType); - template3.setTestItems(test); + // need to rewrite this logic for this case request +// Type listType = new TypeToken>(){}.getType(); +// List test = new Gson().fromJson(notificationData.get(i).getValue(), listType); +// template3.setTestItems(test); break; case "firstName": template3.setFirstName(notificationData.get(i).getValue()); From ab25f189219864f250f0190d292c02c04423b156 Mon Sep 17 00:00:00 2001 From: Mohsin A Date: Sun, 25 Dec 2022 23:17:28 -0500 Subject: [PATCH 7/9] its printing NULL --- .../khoubyari/example/model/Template3.java | 65 ++++++++++++++++-- .../com/khoubyari/example/model/TestItem.java | 66 ------------------- .../utility/ResponseConverterUtility.java | 27 ++++++-- 3 files changed, 80 insertions(+), 78 deletions(-) delete mode 100644 src/main/java/com/khoubyari/example/model/TestItem.java diff --git a/src/main/java/com/khoubyari/example/model/Template3.java b/src/main/java/com/khoubyari/example/model/Template3.java index 07ef1f62..c91a6bde 100644 --- a/src/main/java/com/khoubyari/example/model/Template3.java +++ b/src/main/java/com/khoubyari/example/model/Template3.java @@ -9,18 +9,69 @@ public class Template3 implements Serializable { public String alertTypeCode; - public List testItems; + private String lastFour; - public String getFirstName() { return firstName; } + private String icceUrl; - public void setFirstName(String firstName) { this.firstName = firstName; } + private String clientName; - public String getAlertTypeCode() { return alertTypeCode; } + private String bodyMod; - public void setAlertTypeCode(String alertTypeCode) { this.alertTypeCode = alertTypeCode; } + private List tableTestItemList; - public List getTestItems() { return testItems; } + public String getFirstName() { + return firstName; + } - public void setTestItems(List testItems) { this.testItems = testItems; } + public void setFirstName(String firstName) { + this.firstName = firstName; + } + public String getAlertTypeCode() { + return alertTypeCode; + } + + public void setAlertTypeCode(String alertTypeCode) { + this.alertTypeCode = alertTypeCode; + } + + public String getLastFour() { + return lastFour; + } + + public void setLastFour(String lastFour) { + this.lastFour = lastFour; + } + + public String getIcceUrl() { + return icceUrl; + } + + public void setIcceUrl(String icceUrl) { + this.icceUrl = icceUrl; + } + + public String getClientName() { + return clientName; + } + + public void setClientName(String clientName) { + this.clientName = clientName; + } + + public String getBodyMod() { + return bodyMod; + } + + public void setBodyMod(String bodyMod) { + this.bodyMod = bodyMod; + } + + public List getTableTestItemList() { + return tableTestItemList; + } + + public void setTableTestItemList(List tableTestItemList) { + this.tableTestItemList = tableTestItemList; + } } \ No newline at end of file diff --git a/src/main/java/com/khoubyari/example/model/TestItem.java b/src/main/java/com/khoubyari/example/model/TestItem.java deleted file mode 100644 index d8b938ac..00000000 --- a/src/main/java/com/khoubyari/example/model/TestItem.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.khoubyari.example.model; - -import java.util.List; - -public class TestItem { - - private String lastFour; - - private String icceUrl; - - private String clientName; - - private String bodyMod; - - private String firstName; - - private List tableTestItemList; - - public String getLastFour() { - return lastFour; - } - - public void setLastFour(String lastFour) { - this.lastFour = lastFour; - } - - public String getIcceUrl() { - return icceUrl; - } - - public void setIcceUrl(String icceUrl) { - this.icceUrl = icceUrl; - } - - public String getClientName() { - return clientName; - } - - public void setClientName(String clientName) { - this.clientName = clientName; - } - - public String getBodyMod() { - return bodyMod; - } - - public void setBodyMod(String bodyMod) { - this.bodyMod = bodyMod; - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public List getTableTestItemList() { - return tableTestItemList; - } - - public void setTableTestItemList(List tableTestItemList) { - this.tableTestItemList = tableTestItemList; - } -} diff --git a/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java b/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java index a13174d2..c678b060 100644 --- a/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java +++ b/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java @@ -78,15 +78,32 @@ private Template3 executeTemplate3(String templateType, List n for(int i=0; i>(){}.getType(); -// List test = new Gson().fromJson(notificationData.get(i).getValue(), listType); -// template3.setTestItems(test); + case "tableItem": + // need to rewrite this logic for this case request //VIJAY + /* + key="tableItem" + value="[{"number":"1", "description":"test1"},{"number":"2", "description":"test2"},{"number":"3", "description":"test3"}]" + */ + Type listType = new TypeToken>(){}.getType(); + List test = new Gson().fromJson(notificationData.get(i).getValue(), listType); + // test is printing as NULL //VIJAY + template3.setTableTestItemList(test); break; case "firstName": template3.setFirstName(notificationData.get(i).getValue()); break; + case "icceUrl": + template3.setIcceUrl(notificationData.get(i).getValue()); + break; + case "lastFour": + template3.setLastFour(notificationData.get(i).getValue()); + break; + case "clientName": + template3.setClientName(notificationData.get(i).getValue()); + break; + case "bodyMod": + template3.setBodyMod(notificationData.get(i).getValue()); + break; } } return template3; From 11f2b423090439108d24979772825c8e0a9d6565 Mon Sep 17 00:00:00 2001 From: Mohsin A Date: Sun, 25 Dec 2022 23:42:24 -0500 Subject: [PATCH 8/9] updated the unit tests for clarification --- .../example/model/CardholderName.java | 7 ++ .../example/model/NotificationData.java | 9 ++ .../example/model/NotificationDataMap.java | 9 ++ .../example/model/TableTestItem.java | 8 ++ .../khoubyari/example/model/Template1.java | 8 ++ .../khoubyari/example/model/Template2.java | 8 ++ .../khoubyari/example/model/Template3.java | 13 +++ .../example/model/UpdatedInfoItem.java | 7 ++ .../utility/ResponseConverterUtility.java | 7 ++ .../utility/ResponseConverterUtiltiyTest.java | 83 +++++++++++++++++++ 10 files changed, 159 insertions(+) create mode 100644 src/test/java/com/khoubyari/example/test/utility/ResponseConverterUtiltiyTest.java diff --git a/src/main/java/com/khoubyari/example/model/CardholderName.java b/src/main/java/com/khoubyari/example/model/CardholderName.java index 69d5873b..7f1f27db 100644 --- a/src/main/java/com/khoubyari/example/model/CardholderName.java +++ b/src/main/java/com/khoubyari/example/model/CardholderName.java @@ -10,4 +10,11 @@ public class CardholderName { public T getKey(){ return key; } + + @Override + public String toString() { + return "CardholderName{" + + "key=" + key + + '}'; + } } diff --git a/src/main/java/com/khoubyari/example/model/NotificationData.java b/src/main/java/com/khoubyari/example/model/NotificationData.java index 9f1d9ec2..744fe448 100644 --- a/src/main/java/com/khoubyari/example/model/NotificationData.java +++ b/src/main/java/com/khoubyari/example/model/NotificationData.java @@ -36,4 +36,13 @@ public Optional getValueType() { public void setValueType(String valueType) { this.valueType = valueType; } + + @Override + public String toString() { + return "NotificationData{" + + "key='" + key + '\'' + + ", value='" + value + '\'' + + ", valueType='" + valueType + '\'' + + '}'; + } } \ No newline at end of file diff --git a/src/main/java/com/khoubyari/example/model/NotificationDataMap.java b/src/main/java/com/khoubyari/example/model/NotificationDataMap.java index e3506451..ad6aca66 100644 --- a/src/main/java/com/khoubyari/example/model/NotificationDataMap.java +++ b/src/main/java/com/khoubyari/example/model/NotificationDataMap.java @@ -33,4 +33,13 @@ public List getNotificationDataList() { public void setNotificationDataList(List notificationDataList) { this.notificationDataList = notificationDataList; } + + @Override + public String toString() { + return "NotificationDataMap{" + + "templateCode='" + templateCode + '\'' + + ", templateId='" + templateId + '\'' + + ", notificationDataList=" + notificationDataList + + '}'; + } } diff --git a/src/main/java/com/khoubyari/example/model/TableTestItem.java b/src/main/java/com/khoubyari/example/model/TableTestItem.java index a211414e..7351d729 100644 --- a/src/main/java/com/khoubyari/example/model/TableTestItem.java +++ b/src/main/java/com/khoubyari/example/model/TableTestItem.java @@ -21,4 +21,12 @@ public String getNumber() { public void setNumber(String number) { this.number = number; } + + @Override + public String toString() { + return "TableTestItem{" + + "description='" + description + '\'' + + ", number='" + number + '\'' + + '}'; + } } diff --git a/src/main/java/com/khoubyari/example/model/Template1.java b/src/main/java/com/khoubyari/example/model/Template1.java index 1bcf80f2..0002d6f8 100644 --- a/src/main/java/com/khoubyari/example/model/Template1.java +++ b/src/main/java/com/khoubyari/example/model/Template1.java @@ -23,4 +23,12 @@ public class Template1 implements Serializable { public void setUpdatedInfo(List updatedInfo) { this.updatedInfo = updatedInfo; } + @Override + public String toString() { + return "Template1{" + + "firstName='" + firstName + '\'' + + ", alertTypeCode='" + alertTypeCode + '\'' + + ", updatedInfo=" + updatedInfo + + '}'; + } } \ No newline at end of file diff --git a/src/main/java/com/khoubyari/example/model/Template2.java b/src/main/java/com/khoubyari/example/model/Template2.java index 24038cb5..081f15ba 100644 --- a/src/main/java/com/khoubyari/example/model/Template2.java +++ b/src/main/java/com/khoubyari/example/model/Template2.java @@ -24,4 +24,12 @@ public class Template2 implements Serializable { public void setCardholderNames(List cardholderNames) { this.cardholderNames = cardholderNames; } + @Override + public String toString() { + return "Template2{" + + "firstName='" + firstName + '\'' + + ", alertTypeCode='" + alertTypeCode + '\'' + + ", cardholderNames=" + cardholderNames + + '}'; + } } \ No newline at end of file diff --git a/src/main/java/com/khoubyari/example/model/Template3.java b/src/main/java/com/khoubyari/example/model/Template3.java index c91a6bde..61cd39e7 100644 --- a/src/main/java/com/khoubyari/example/model/Template3.java +++ b/src/main/java/com/khoubyari/example/model/Template3.java @@ -74,4 +74,17 @@ public List getTableTestItemList() { public void setTableTestItemList(List tableTestItemList) { this.tableTestItemList = tableTestItemList; } + + @Override + public String toString() { + return "Template3{" + + "firstName='" + firstName + '\'' + + ", alertTypeCode='" + alertTypeCode + '\'' + + ", lastFour='" + lastFour + '\'' + + ", icceUrl='" + icceUrl + '\'' + + ", clientName='" + clientName + '\'' + + ", bodyMod='" + bodyMod + '\'' + + ", tableTestItemList=" + tableTestItemList + + '}'; + } } \ No newline at end of file diff --git a/src/main/java/com/khoubyari/example/model/UpdatedInfoItem.java b/src/main/java/com/khoubyari/example/model/UpdatedInfoItem.java index fc6760b5..92e359a0 100644 --- a/src/main/java/com/khoubyari/example/model/UpdatedInfoItem.java +++ b/src/main/java/com/khoubyari/example/model/UpdatedInfoItem.java @@ -10,4 +10,11 @@ public class UpdatedInfoItem { public T getValue(){ return value; } + + @Override + public String toString() { + return "UpdatedInfoItem{" + + "value=" + value + + '}'; + } } diff --git a/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java b/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java index c678b060..98c48a00 100644 --- a/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java +++ b/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java @@ -48,6 +48,7 @@ private Template1 executeTemplate1(String templateType, List n } } + System.out.println("print template1: " + template1); return template1; } @@ -68,6 +69,9 @@ private Template2 executeTemplate2(String templateType, List n break; } } + + System.out.println("print template2: " + template2); + return template2; } @@ -106,6 +110,9 @@ private Template3 executeTemplate3(String templateType, List n break; } } + + System.out.println("print template3: " + template3); + return template3; } diff --git a/src/test/java/com/khoubyari/example/test/utility/ResponseConverterUtiltiyTest.java b/src/test/java/com/khoubyari/example/test/utility/ResponseConverterUtiltiyTest.java new file mode 100644 index 00000000..d76195a1 --- /dev/null +++ b/src/test/java/com/khoubyari/example/test/utility/ResponseConverterUtiltiyTest.java @@ -0,0 +1,83 @@ +package com.khoubyari.example.test.utility; + +import com.khoubyari.example.model.NotificationData; +import com.khoubyari.example.utility.ResponseConverterUtility; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.runners.MockitoJUnitRunner; + +import java.util.ArrayList; +import java.util.List; + +@RunWith(MockitoJUnitRunner.class) +public class ResponseConverterUtiltiyTest { + + @InjectMocks + ResponseConverterUtility responseConverterUtility; + + // this test case has conversion issue + @Test + public void testTestTemplate3(){ + List notificationDataList = new ArrayList<>(); + NotificationData notificationData = new NotificationData(); + notificationData.setKey("firstName"); + notificationData.setValue("Mohsin"); + + NotificationData notificationData1 = new NotificationData(); + notificationData1.setKey("tableItem"); + notificationData1.setValue("\"[{\"number\":\"1\", \"description\":\"test1\"},{\"number\":\"2\", \"description\":\"test2\"},{\"number\":\"3\", \"description\":\"test3\"}]\""); + notificationData1.setValueType("table"); + + NotificationData notificationData2 = new NotificationData(); + notificationData2.setKey("icceUrl"); + notificationData2.setValue("icceUrl"); + + NotificationData notificationData3 = new NotificationData(); + notificationData3.setKey("lastFour"); + notificationData3.setValue("1234"); + + NotificationData notificationData4 = new NotificationData(); + notificationData4.setKey("clientName"); + notificationData4.setValue("Test"); + + NotificationData notificationData5 = new NotificationData(); + notificationData5.setKey("bodyMod"); + notificationData5.setValue("1"); + + notificationDataList.add(notificationData); + notificationDataList.add(notificationData1); + notificationDataList.add(notificationData2); + notificationDataList.add(notificationData3); + notificationDataList.add(notificationData4); + notificationDataList.add(notificationData5); + + responseConverterUtility.test("ghi", notificationDataList); + } + + //this test case works + @Test + public void testTestTemplate1(){ + List notificationDataList = new ArrayList<>(); + NotificationData notificationData = new NotificationData(); + notificationData.setKey("firstName"); + notificationData.setValue("Mohsin"); + + NotificationData notificationData1 = new NotificationData(); + notificationData1.setKey("updatedInfo"); + notificationData1.setValue("[{\"value\": \"email address\"}, {\"value\": \"test code\"}, {\"value\": \"name\"}]"); + notificationData1.setValueType("looparray"); + + + NotificationData notificationData5 = new NotificationData(); + notificationData5.setKey("bodyMod"); + notificationData5.setValue("1"); + + notificationDataList.add(notificationData); + notificationDataList.add(notificationData1); + notificationDataList.add(notificationData5); + + responseConverterUtility.test("abc", notificationDataList); + } + +} From b07436c45b25f6628acad61de1953fb2ac26cee0 Mon Sep 17 00:00:00 2001 From: Mohsin A Date: Mon, 26 Dec 2022 00:11:55 -0500 Subject: [PATCH 9/9] fixed the template3 converter issue --- .../java/com/khoubyari/example/model/TableTestItem.java | 4 ++++ .../example/utility/ResponseConverterUtility.java | 8 +------- .../test/utility/ResponseConverterUtiltiyTest.java | 3 +-- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/khoubyari/example/model/TableTestItem.java b/src/main/java/com/khoubyari/example/model/TableTestItem.java index 7351d729..9f36f3e2 100644 --- a/src/main/java/com/khoubyari/example/model/TableTestItem.java +++ b/src/main/java/com/khoubyari/example/model/TableTestItem.java @@ -1,9 +1,13 @@ package com.khoubyari.example.model; +import org.codehaus.jackson.annotate.JsonProperty; + public class TableTestItem { + @JsonProperty("desc") private String description; + @JsonProperty("no") private String number; public String getDescription() { diff --git a/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java b/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java index 98c48a00..0c5d3420 100644 --- a/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java +++ b/src/main/java/com/khoubyari/example/utility/ResponseConverterUtility.java @@ -75,7 +75,6 @@ private Template2 executeTemplate2(String templateType, List n return template2; } - //template 3 is different use case with key,value pair in case TableTestItem. //Vijay private Template3 executeTemplate3(String templateType, List notificationData){ Template3 template3 = new Template3(); template3.setAlertTypeCode(templateType); @@ -83,14 +82,9 @@ private Template3 executeTemplate3(String templateType, List n for(int i=0; i>(){}.getType(); + System.out.println(listType.toString()); List test = new Gson().fromJson(notificationData.get(i).getValue(), listType); - // test is printing as NULL //VIJAY template3.setTableTestItemList(test); break; case "firstName": diff --git a/src/test/java/com/khoubyari/example/test/utility/ResponseConverterUtiltiyTest.java b/src/test/java/com/khoubyari/example/test/utility/ResponseConverterUtiltiyTest.java index d76195a1..908167a5 100644 --- a/src/test/java/com/khoubyari/example/test/utility/ResponseConverterUtiltiyTest.java +++ b/src/test/java/com/khoubyari/example/test/utility/ResponseConverterUtiltiyTest.java @@ -26,7 +26,7 @@ public void testTestTemplate3(){ NotificationData notificationData1 = new NotificationData(); notificationData1.setKey("tableItem"); - notificationData1.setValue("\"[{\"number\":\"1\", \"description\":\"test1\"},{\"number\":\"2\", \"description\":\"test2\"},{\"number\":\"3\", \"description\":\"test3\"}]\""); + notificationData1.setValue("[{\"number\":\"1\", \"description\":\"test1\"},{\"number\":\"2\", \"description\":\"test2\"},{\"number\":\"3\", \"description\":\"test3\"}]"); notificationData1.setValueType("table"); NotificationData notificationData2 = new NotificationData(); @@ -55,7 +55,6 @@ public void testTestTemplate3(){ responseConverterUtility.test("ghi", notificationDataList); } - //this test case works @Test public void testTestTemplate1(){ List notificationDataList = new ArrayList<>();