diff --git a/maqs-utilities/src/main/java/com/cognizantsoftvision/maqs/utilities/helper/ConfigSection.java b/maqs-utilities/src/main/java/com/cognizantsoftvision/maqs/utilities/helper/ConfigSection.java index c126b38ea..7f6b33261 100644 --- a/maqs-utilities/src/main/java/com/cognizantsoftvision/maqs/utilities/helper/ConfigSection.java +++ b/maqs-utilities/src/main/java/com/cognizantsoftvision/maqs/utilities/helper/ConfigSection.java @@ -55,6 +55,16 @@ public enum ConfigSection { */ SELENIUM_MAQS("SeleniumMaqs"), + /** + * The default soap namespace section. + */ + SOAP_NAMESPACE_MAQS("SoapMaqsNameSpaces"), + + /** + * The default soap maqs section. + */ + SOAP_MAQS("SoapMaqs"), + /** * The default web service section. */ diff --git a/maqs-webservices/config.xml b/maqs-webservices/config.xml index 5965e957c..1cb56900b 100644 --- a/maqs-webservices/config.xml +++ b/maqs-webservices/config.xml @@ -42,4 +42,10 @@ 127.0.0.1:8001 8080 + + soapenv + + + http://spring.io/guides/gs-producing-web-service + \ No newline at end of file diff --git a/maqs-webservices/pom.xml b/maqs-webservices/pom.xml index 5ff348461..b5ae3bff7 100644 --- a/maqs-webservices/pom.xml +++ b/maqs-webservices/pom.xml @@ -17,6 +17,13 @@ 5.3.15 + 2.13.2 + 5.3.16 + + 1.1.1 + 3.0.2 + 2.4.0-b180830.0359 + 1.3.5 @@ -57,5 +64,31 @@ spring-web ${spring.web.version} + + + javax.activation + activation + ${javax.activation.version} + + + org.glassfish.jaxb + jaxb-runtime + ${glassfish.jaxb.version} + + + org.glassfish.jaxb + jaxb-core + ${glassfish.jaxb.version} + + + javax.xml.bind + jaxb-api + ${jaxb.api.version} + + + javax.xml.soap + saaj-api + ${soap.saaj-api.version} + diff --git a/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/BaseWebServiceTest.java b/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/BaseWebServiceTest.java index 8aed91778..ed6ce7e1c 100644 --- a/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/BaseWebServiceTest.java +++ b/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/BaseWebServiceTest.java @@ -7,7 +7,6 @@ import com.cognizantsoftvision.maqs.base.BaseExtendableTest; import com.cognizantsoftvision.maqs.utilities.helper.StringProcessor; import com.cognizantsoftvision.maqs.utilities.logging.Logger; -import java.net.URI; import java.net.URISyntaxException; import java.net.http.HttpRequest; import org.testng.ITestResult; @@ -47,7 +46,7 @@ protected void beforeLoggingTeardown(ITestResult resultType) { * @throws URISyntaxException when URI is incorrect */ protected WebServiceDriver getWebServiceClient() throws URISyntaxException { - return new WebServiceDriver(HttpRequest.newBuilder(URI.create(WebServiceConfig.getWebServiceUri()))); + return new WebServiceDriver(HttpRequest.newBuilder(WebServiceConfig.getWebServiceUri())); } /** diff --git a/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/WebServiceConfig.java b/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/WebServiceConfig.java index bfa07af29..920df224c 100644 --- a/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/WebServiceConfig.java +++ b/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/WebServiceConfig.java @@ -6,6 +6,7 @@ import com.cognizantsoftvision.maqs.utilities.helper.Config; import com.cognizantsoftvision.maqs.utilities.helper.ConfigSection; +import java.net.URI; /** * The Web Service Configuration class. @@ -25,18 +26,27 @@ private WebServiceConfig() { * * @return A String containing the URI for the WebService to test */ - public static String getWebServiceUri() { + public static String getWebServiceURIString() { return Config.getValueForSection(WEBSERVICE_SECTION, "WebServiceUri"); } + /** + * Grabs the URI for the Web Service. + * + * @return A String containing the URI for the WebService to test + */ + public static URI getWebServiceUri() { + return URI.create(getWebServiceURIString()); + } + /** * Gets the expected time out in seconds. * * @return the Timeout value for the web service test, or -1 if none are configured */ public static int getWebServiceTimeOut() { - return Integer - .parseInt(Config.getValueForSection(WEBSERVICE_SECTION, "WebServiceTimeout", "-1")); + return Integer.parseInt( + Config.getValueForSection(WEBSERVICE_SECTION, "WebServiceTimeout", "-1")); } /** @@ -63,7 +73,7 @@ public static String getProxyAddress() { * @return The Proxy Port */ public static int getProxyPort() { - return Integer - .parseInt(Config.getValueForSection(WEBSERVICE_SECTION, "ProxyPort", "-1")); + return Integer.parseInt( + Config.getValueForSection(WEBSERVICE_SECTION, "ProxyPort", "-1")); } } diff --git a/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/soap/BaseSoapWebServiceTest.java b/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/soap/BaseSoapWebServiceTest.java new file mode 100644 index 000000000..8b286a75a --- /dev/null +++ b/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/soap/BaseSoapWebServiceTest.java @@ -0,0 +1,75 @@ +/* + * Copyright 2022 (C) Cognizant SoftVision, All rights Reserved + */ + +package com.cognizantsoftvision.maqs.webservices.soap; + +import com.cognizantsoftvision.maqs.base.BaseExtendableTest; +import com.cognizantsoftvision.maqs.utilities.helper.StringProcessor; +import com.cognizantsoftvision.maqs.utilities.logging.Logger; +import com.cognizantsoftvision.maqs.webservices.WebServiceConfig; +import com.cognizantsoftvision.maqs.webservices.WebServiceTestObject; +import java.net.URISyntaxException; +import javax.xml.soap.SOAPException; +import org.testng.ITestResult; + +/** + * The Base Soap Web Service Test class. + */ +public class BaseSoapWebServiceTest extends BaseExtendableTest { + + /** + * Get the Web Service Driver. + * + * @return WebServiceDriver + */ + public SoapWebServiceDriver getWebServiceDriver() { + return (SoapWebServiceDriver) this.getTestObject().getWebServiceDriver(); + } + + /** + * Set the webServiceDriver. + * + * @param webServiceDriver the webservice driver object + */ + public void setWebServiceDriver(SoapWebServiceDriver webServiceDriver) { + this.getTestObject().setWebServiceDriver(webServiceDriver); + } + + /* + * (non-Javadoc) + * + * @see com.cognizantsoftvision.maqs.utilities.BaseTest.BaseTest# beforeLoggingTeardown + * (org.testng.ITestResult) + */ + @Override + protected void beforeLoggingTeardown(ITestResult resultType) { + // There is no logging tear-down required before + } + + /** + * Gets new WebServiceDriver. + * + * @return WebServiceDriver + * @throws URISyntaxException when URI is incorrect + */ + protected SoapWebServiceDriver getWebServiceClient() throws URISyntaxException, SOAPException { + return new SoapWebServiceDriver(WebServiceConfig.getWebServiceUri()); + } + + /** + * Creates a new test object. + */ + @Override + protected void createNewTestObject() { + Logger logger = this.createLogger(); + try { + WebServiceTestObject webServiceTestObject = new WebServiceTestObject( + this.getWebServiceClient(), logger, this.getFullyQualifiedTestClassName()); + this.setTestObject(webServiceTestObject); + } catch (URISyntaxException | SOAPException e) { + getLogger().logMessage(StringProcessor.safeFormatter( + "Test Object could not be created: %s", e.getMessage())); + } + } +} diff --git a/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/soap/SoapConfig.java b/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/soap/SoapConfig.java new file mode 100644 index 000000000..424a1f9b7 --- /dev/null +++ b/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/soap/SoapConfig.java @@ -0,0 +1,36 @@ +/* + * Copyright 2022 (C) Cognizant SoftVision, All rights Reserved + */ + +package com.cognizantsoftvision.maqs.webservices.soap; + +import com.cognizantsoftvision.maqs.utilities.helper.Config; +import com.cognizantsoftvision.maqs.utilities.helper.ConfigSection; +import java.util.Map; + +/** + * The Soap Config class. + */ +public final class SoapConfig { + + private SoapConfig() { + } + + /** + * Gets the Soap Prefix from the config file. + * + * @return the string of the soap prefix + */ + public static String getSoapPrefix() { + return Config.getValueForSection(ConfigSection.SOAP_MAQS, "SoapPrefix"); + } + + /** + * Gets the Soap namespaces from the config. + * + * @return the Soap namespaces in a map format + */ + public static Map getSoapNamespaces() { + return Config.getSection(ConfigSection.SOAP_NAMESPACE_MAQS); + } +} diff --git a/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/soap/SoapUtilities.java b/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/soap/SoapUtilities.java new file mode 100644 index 000000000..169445567 --- /dev/null +++ b/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/soap/SoapUtilities.java @@ -0,0 +1,43 @@ +/* + * Copyright 2022 (C) Cognizant SoftVision, All rights Reserved + */ + +package com.cognizantsoftvision.maqs.webservices.soap; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Unmarshaller; +import javax.xml.soap.MessageFactory; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPMessage; + +/** + * The Soap Utilities class. + */ +public class SoapUtilities { + + private SoapUtilities() { + + } + + /** + * Gets the response Body as an Object. + * + * @param httpResponse the http response + * @param unMarshaller the unmarshaller for the soap process + * @return the response object + * @throws SOAPException if a SOAP exception is thrown + * @throws IOException if an IO exception is thrown + * @throws JAXBException if a JAXB exception is thrown + */ + public static Object getResponseBodyAsObjects(HttpResponse httpResponse, Unmarshaller unMarshaller) + throws SOAPException, IOException, JAXBException { + SOAPMessage soapResp = MessageFactory.newInstance() + .createMessage(null, new ByteArrayInputStream( + httpResponse.body().getBytes(StandardCharsets.UTF_8))); + return unMarshaller.unmarshal(soapResp.getSOAPBody().extractContentAsDocument()); + } +} diff --git a/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/soap/SoapWebServiceDriver.java b/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/soap/SoapWebServiceDriver.java new file mode 100644 index 000000000..a33194d7a --- /dev/null +++ b/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/soap/SoapWebServiceDriver.java @@ -0,0 +1,178 @@ +/* + * Copyright 2022 (C) Cognizant SoftVision, All rights Reserved + */ + +package com.cognizantsoftvision.maqs.webservices.soap; + +import com.cognizantsoftvision.maqs.webservices.HttpClientFactory; +import com.cognizantsoftvision.maqs.webservices.WebServiceDriver; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.io.StringReader; +import java.net.URI; +import java.net.http.HttpClient; +import java.util.Map; +import java.util.function.Consumer; +import javax.xml.XMLConstants; +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; +import javax.xml.bind.Unmarshaller; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.soap.SOAPEnvelope; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPMessage; +import org.w3c.dom.Document; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; + +/** + * The Soap Web Service Driver class. + */ +public class SoapWebServiceDriver extends WebServiceDriver { + + private final SOAPMessage soapMessage; + private JAXBContext jaxbContext; + private String baseAddress; + + public SoapWebServiceDriver(SOAPMessage message, String baseAddress) { + super(HttpClientFactory.getDefaultClient()); + this.baseAddress = baseAddress; + this.soapMessage = message; + } + + public SoapWebServiceDriver(URI baseAddress) throws SOAPException { + super(HttpClientFactory.getDefaultClient()); + this.baseAddress = baseAddress.toString(); + this.soapMessage = SoapWebServiceDriverFactory.getDefaultMessage(); + } + + public SoapWebServiceDriver(HttpClient newHttpClient, SOAPMessage message) { + super(newHttpClient); + soapMessage = message; + } + + + public String getDefaultSoapMessage(String outputStream) + throws SOAPException, ParserConfigurationException, SAXException, IOException { + modifySoapPrefix(); + addNameSpaceCollectionToMessage(SoapConfig.getSoapNamespaces()); + addStringToBody(outputStream); + return getSoapBodyString(); + } + + public String getSoapBodyString() throws SOAPException, IOException { + return getSoapBodyString(soapMessage); + } + + public String getSoapBodyString(SOAPMessage message) throws SOAPException, IOException { + message.saveChanges(); + OutputStream messageOutputStream = new ByteArrayOutputStream(); + message.writeTo(messageOutputStream); + return messageOutputStream.toString(); + } + + public String getSoapBodyStringEntity() throws IOException, SOAPException { + return getSoapBodyString(); + } + + public void addStringToBody(String outputStream) + throws ParserConfigurationException, SAXException, IOException, SOAPException { + addStringToBody(outputStream, soapMessage); + } + + public void addStringToBody(String outputStream, SOAPMessage message) + throws ParserConfigurationException, SAXException, IOException, SOAPException { + Document document = getDocument(outputStream); + message.getSOAPBody().addDocument(document); + } + + public void addNameSpaceToMessage(String key, String value) throws SOAPException { + addNameSpaceToMessage(soapMessage.getSOAPPart().getEnvelope(), key, value); + } + + public void addNameSpaceToMessage(SOAPEnvelope envelope, String key, String value) throws SOAPException { + envelope.addNamespaceDeclaration(key, value); + } + + public void addNameSpaceCollectionToMessage(Map map) throws SOAPException { + addNameSpaceCollectionToMessage(soapMessage.getSOAPPart().getEnvelope(), map); + } + + public void addNameSpaceCollectionToMessage(SOAPEnvelope envelope, Map map) { + Consumer consumer = key -> { + String value = map.get(key); + try { + addNameSpaceToMessage(envelope, key, value); + } catch (SOAPException e) { + e.printStackTrace(); + } + }; + map.keySet().stream().iterator().forEachRemaining(consumer); + } + + public String createSoapPayload(T object) throws JAXBException, IOException { + OutputStream outputStream = new ByteArrayOutputStream(); + Marshaller marshaller = getMarshaller(object); + marshaller.marshal(object, outputStream); + outputStream.flush(); + outputStream.close(); + return outputStream.toString(); + } + + public Marshaller getMarshaller(T object) throws JAXBException { + jaxbContext = JAXBContext.newInstance(object.getClass().getPackage().getName()); + return getCachedMarshaller(); + } + + public Marshaller getCachedMarshaller() throws JAXBException { + Marshaller marshaller = jaxbContext.createMarshaller(); + marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + return marshaller; + } + + public Unmarshaller getUnMarshaller(T object) throws JAXBException { + jaxbContext = JAXBContext.newInstance(object.getClass().getPackage().getName()); + return getCachedUnMarshaller(); + } + + public Unmarshaller getCachedUnMarshaller() throws JAXBException { + return jaxbContext.createUnmarshaller(); + } + + private Document getDocument(String bodyContent) throws ParserConfigurationException, SAXException, IOException { + DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + documentBuilderFactory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, ""); + documentBuilderFactory.setAttribute(XMLConstants.ACCESS_EXTERNAL_SCHEMA, ""); // compliant + documentBuilderFactory.setNamespaceAware(true); + DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); + return documentBuilder.parse(new InputSource(new StringReader(bodyContent))); + } + + private SOAPEnvelope modifySoapPrefix() throws SOAPException { + return modifySoapPrefix(SoapConfig.getSoapPrefix()); + } + + private SOAPEnvelope modifySoapPrefix(String prefix) throws SOAPException { + return modifySoapPrefix( + soapMessage.getSOAPPart().getEnvelope(), prefix, "http://schemas.xmlsoap.org/soap/envelope/"); + } + + private SOAPEnvelope modifySoapPrefix(SOAPEnvelope envelope, String prefix, String url) throws SOAPException { + envelope.removeNamespaceDeclaration(envelope.getPrefix()); + addNameSpaceToMessage(envelope, prefix, url); + envelope.setPrefix(prefix); + envelope.getBody().setPrefix(prefix); + envelope.getHeader().setPrefix(prefix); + return envelope; + } + + public void addObjectToSoapMessage(T object) + throws JAXBException, IOException, SOAPException, SAXException, ParserConfigurationException { + String soapPayload = createSoapPayload(object); + addStringToBody(soapPayload); + } +} \ No newline at end of file diff --git a/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/soap/SoapWebServiceDriverFactory.java b/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/soap/SoapWebServiceDriverFactory.java new file mode 100644 index 000000000..5e1fe685b --- /dev/null +++ b/maqs-webservices/src/main/java/com/cognizantsoftvision/maqs/webservices/soap/SoapWebServiceDriverFactory.java @@ -0,0 +1,65 @@ +/* + * Copyright 2022 (C) Cognizant SoftVision, All rights Reserved + */ + +package com.cognizantsoftvision.maqs.webservices.soap; + +import com.cognizantsoftvision.maqs.webservices.WebServiceConfig; +import java.util.HashMap; +import java.util.function.Consumer; +import javax.xml.soap.MessageFactory; +import javax.xml.soap.SOAPEnvelope; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPMessage; + +/** + * The Soap Web Service Driver Factory class. + */ +public class SoapWebServiceDriverFactory { + + private SoapWebServiceDriverFactory() { + } + + public static SOAPMessage getDefaultMessage() throws SOAPException { + SOAPMessage message = MessageFactory.newInstance().createMessage(); + SOAPEnvelope envelope = message.getSOAPPart().getEnvelope(); + + if (!SoapConfig.getSoapPrefix().isEmpty()) { + modifySoapPrefix(envelope); + } + + if (!SoapConfig.getSoapNamespaces().isEmpty()) { + addNameSpaceCollectionToMessage(envelope, (HashMap) SoapConfig.getSoapNamespaces()); + } + return message; + } + + public static SoapWebServiceDriver getDefaultSoapDriver() throws SOAPException { + return new SoapWebServiceDriver(getDefaultMessage(), WebServiceConfig.getWebServiceURIString()); + } + + protected static SOAPEnvelope modifySoapPrefix(SOAPEnvelope envelope) throws SOAPException { + envelope.removeNamespaceDeclaration(envelope.getPrefix()); + addNameSpaceToMessage(envelope, SoapConfig.getSoapPrefix(), "http://schemas.xmlsoap.org/soap/envelope/"); + envelope.setPrefix(SoapConfig.getSoapPrefix()); + envelope.getBody().setPrefix(SoapConfig.getSoapPrefix()); + envelope.getHeader().setPrefix(SoapConfig.getSoapPrefix()); + return envelope; + } + + protected static void addNameSpaceCollectionToMessage(SOAPEnvelope envelope, HashMap map) { + Consumer consumer = key -> { + String value = map.get(key); + try { + addNameSpaceToMessage(envelope, key, value); + } catch (SOAPException e) { + e.printStackTrace(); + } + }; + map.keySet().stream().iterator().forEachRemaining(consumer); + } + + public static void addNameSpaceToMessage(SOAPEnvelope envelope, String key, String value) throws SOAPException { + envelope.addNamespaceDeclaration(key, value); + } +} diff --git a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceConfigUnitTest.java b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceConfigUnitTest.java index f30240a11..ab30481c8 100644 --- a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceConfigUnitTest.java +++ b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceConfigUnitTest.java @@ -6,9 +6,12 @@ package com.cognizantsoftvision.maqs.webservices; import com.cognizantsoftvision.maqs.utilities.helper.TestCategories; +import java.net.URI; +import java.net.URISyntaxException; import org.testng.Assert; import org.testng.annotations.Test; + /** * The Web Service Config unit test class. */ @@ -18,9 +21,9 @@ public class WebServiceConfigUnitTest { * gets if proxy can be used. */ @Test(groups = TestCategories.WEB_SERVICE) - public void getWebServiceUri() { + public void getWebServiceUri() throws URISyntaxException { Assert.assertEquals(WebServiceConfig.getWebServiceUri(), - "http://localhost:5026", "the web service URI does not match"); + new URI("http://localhost:5026"), "the web service URI does not match"); } /** diff --git a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverManagerUnitTest.java b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverManagerUnitTest.java index 659d2ff4c..40bb738fa 100644 --- a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverManagerUnitTest.java +++ b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverManagerUnitTest.java @@ -7,6 +7,7 @@ import com.cognizantsoftvision.maqs.base.BaseGenericTest; import com.cognizantsoftvision.maqs.utilities.helper.TestCategories; import java.net.URI; +import java.net.URISyntaxException; import java.net.http.HttpRequest; import org.testng.Assert; import org.testng.annotations.Test; @@ -23,7 +24,7 @@ public class WebServiceDriverManagerUnitTest extends BaseGenericTest { @Test(groups = TestCategories.WEB_SERVICE) public void getWebServiceDriverWithSupplierTest() { WebServiceDriver webServiceDriver = new WebServiceDriver( - HttpRequest.newBuilder(URI.create(WebServiceConfig.getWebServiceUri()))); + HttpRequest.newBuilder(WebServiceConfig.getWebServiceUri())); webServiceDriver.setHttpClient(webServiceDriver.getHttpClient()); try (WebServiceDriverManager driverManager = new WebServiceDriverManager( @@ -39,7 +40,7 @@ public void getWebServiceDriverWithSupplierTest() { @Test(groups = TestCategories.WEB_SERVICE) public void getWebServiceDriverTest() { WebServiceDriver webServiceDriver = new WebServiceDriver( - HttpRequest.newBuilder(URI.create(WebServiceConfig.getWebServiceUri()))); + HttpRequest.newBuilder(WebServiceConfig.getWebServiceUri())); try (WebServiceDriverManager driverManager = new WebServiceDriverManager(webServiceDriver, this.getTestObject())) { Assert.assertNotNull(driverManager.getWebServiceDriver(), "Expected Web Service Driver to not be null"); } @@ -53,7 +54,7 @@ public void getWebServiceDriverTest() { @Test(groups = TestCategories.WEB_SERVICE) public void getWebServiceDriverNullDriver() { WebServiceDriver webServiceDriver = new WebServiceDriver( - HttpRequest.newBuilder(URI.create(WebServiceConfig.getWebServiceUri()))); + HttpRequest.newBuilder(WebServiceConfig.getWebServiceUri())); try (WebServiceDriverManager driverManager = new WebServiceDriverManager(webServiceDriver, this.getTestObject())) { // Set the Driver to be null then check Get Web Service Driver creates default Driver. driverManager.overrideDriver(null); @@ -69,7 +70,7 @@ public void getWebServiceDriverNullDriver() { @Test(groups = TestCategories.WEB_SERVICE) public void overrideWebServiceDriverTest() { WebServiceDriver webServiceDriver = new WebServiceDriver( - HttpRequest.newBuilder(URI.create(WebServiceConfig.getWebServiceUri()))); + HttpRequest.newBuilder(WebServiceConfig.getWebServiceUri())); WebServiceDriver webServiceDriver2 = new WebServiceDriver( HttpRequest.newBuilder(URI.create("http://www.google.com/"))); @@ -88,7 +89,7 @@ public void overrideWebServiceDriverTest() { @Test(groups = TestCategories.WEB_SERVICE) public void closeWebServiceDriverTest() { WebServiceDriver webServiceDriver = new WebServiceDriver( - HttpRequest.newBuilder(URI.create(WebServiceConfig.getWebServiceUri()))); + HttpRequest.newBuilder(WebServiceConfig.getWebServiceUri())); WebServiceDriverManager driverManager = new WebServiceDriverManager(webServiceDriver, this.getTestObject()); driverManager.close(); diff --git a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverDeleteUnitTest.java b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverDeleteUnitTest.java index bd1579427..377b5c4bd 100644 --- a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverDeleteUnitTest.java +++ b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverDeleteUnitTest.java @@ -28,7 +28,7 @@ public class WebServiceDriverDeleteUnitTest { /** * String to hold the URL. */ - private static final String baseUrl = WebServiceConfig.getWebServiceUri(); + private static final String baseUrl = WebServiceConfig.getWebServiceURIString(); /** * The web service driver to be used in a test. diff --git a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverGetUnitTest.java b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverGetUnitTest.java index 6918492cd..9c18079e2 100644 --- a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverGetUnitTest.java +++ b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverGetUnitTest.java @@ -26,7 +26,7 @@ public class WebServiceDriverGetUnitTest { /** * String to hold the URL. */ - private static final String baseUrl = WebServiceConfig.getWebServiceUri(); + private static final String baseUrl = WebServiceConfig.getWebServiceURIString(); /** * The web service driver to be used in a test. diff --git a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverPatchUnitTest.java b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverPatchUnitTest.java index 7a8afaa45..a837818b2 100644 --- a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverPatchUnitTest.java +++ b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverPatchUnitTest.java @@ -27,7 +27,7 @@ public class WebServiceDriverPatchUnitTest { /** * String to hold the URL. */ - private static final String baseUrl = WebServiceConfig.getWebServiceUri(); + private static final String baseUrl = WebServiceConfig.getWebServiceURIString(); /** * Product object to be used in a test. diff --git a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverPostUnitTest.java b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverPostUnitTest.java index e56cdac2f..9805428dc 100644 --- a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverPostUnitTest.java +++ b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverPostUnitTest.java @@ -27,7 +27,7 @@ public class WebServiceDriverPostUnitTest { /** * String to hold the URL. */ - private static final String baseUrl = WebServiceConfig.getWebServiceUri(); + private static final String baseUrl = WebServiceConfig.getWebServiceURIString(); /** * Product object to be used in a test. diff --git a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverPutUnitTest.java b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverPutUnitTest.java index 4372b1373..676bb1849 100644 --- a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverPutUnitTest.java +++ b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceDriverRequestUnitTest/WebServiceDriverPutUnitTest.java @@ -26,7 +26,7 @@ public class WebServiceDriverPutUnitTest { /** * String to hold the URL. */ - private static final String baseUrl = WebServiceConfig.getWebServiceUri(); + private static final String baseUrl = WebServiceConfig.getWebServiceURIString(); /** * The full put url with the base URL diff --git a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceTestObjectUnitTest.java b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceTestObjectUnitTest.java index ea268ccbf..0cbe11ea7 100644 --- a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceTestObjectUnitTest.java +++ b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceTestObjectUnitTest.java @@ -6,7 +6,6 @@ import com.cognizantsoftvision.maqs.base.BaseGenericTest; import com.cognizantsoftvision.maqs.utilities.helper.TestCategories; -import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.util.function.Supplier; @@ -129,6 +128,6 @@ private Supplier getHttpClientSupplier() { * @return a web service driver. */ private WebServiceDriver getWebServiceDriver() { - return new WebServiceDriver(HttpRequest.newBuilder(URI.create(WebServiceConfig.getWebServiceUri()))); + return new WebServiceDriver(HttpRequest.newBuilder(WebServiceConfig.getWebServiceUri())); } } diff --git a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceUtilitiesUnitTest.java b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceUtilitiesUnitTest.java index 3cf51a4f1..38e7d06b7 100644 --- a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceUtilitiesUnitTest.java +++ b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/WebServiceUtilitiesUnitTest.java @@ -26,7 +26,7 @@ public class WebServiceUtilitiesUnitTest extends BaseWebServiceTest { /** * String to hold the URL. */ - private static final String baseUrl = WebServiceConfig.getWebServiceUri(); + private static final String baseUrl = WebServiceConfig.getWebServiceURIString(); /** * Tests the functionality of the Get Response body. diff --git a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/soap/BaseSoapWebServiceUnitTest.java b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/soap/BaseSoapWebServiceUnitTest.java new file mode 100644 index 000000000..0b5d3b36d --- /dev/null +++ b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/soap/BaseSoapWebServiceUnitTest.java @@ -0,0 +1,43 @@ +package com.cognizantsoftvision.maqs.webservices.soap; + +import com.cognizantsoftvision.maqs.utilities.helper.TestCategories; +import org.testng.Assert; +import org.testng.annotations.Test; + +/** + * The Base Soap Web Service unit test class. + */ +public class BaseSoapWebServiceUnitTest extends BaseSoapWebServiceTest { + + /** + * Test getting the web service driver. + */ + @Test(groups = TestCategories.WEB_SERVICE) + public void testGetSoapWebServiceDriver() { + Assert.assertNotNull(this.getWebServiceDriver()); + } + + /** + * Test getting the web service Test Object. + */ + @Test(groups = TestCategories.WEB_SERVICE) + public void testGetSoapWebServiceTestObject() { + Assert.assertNotNull(this.getTestObject()); + } + + /** + * Tests setting the web service driver. + */ + @Test(groups = TestCategories.WEB_SERVICE) + public void testSetSoapWebServiceDriver() { + int hashCode = this.getWebServiceDriver().hashCode(); + + try { + this.setWebServiceDriver(this.getWebServiceClient()); + } catch (Exception e) { + e.printStackTrace(); + } + int hashCode1 = this.getWebServiceDriver().hashCode(); + Assert.assertNotEquals(hashCode, hashCode1); + } +} diff --git a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/soap/SoapConfigUnitTest.java b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/soap/SoapConfigUnitTest.java new file mode 100644 index 000000000..982f31251 --- /dev/null +++ b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/soap/SoapConfigUnitTest.java @@ -0,0 +1,28 @@ +package com.cognizantsoftvision.maqs.webservices.soap; + +import java.util.Collections; +import java.util.Map; + +import com.cognizantsoftvision.maqs.utilities.helper.TestCategories; +import org.testng.Assert; +import org.testng.annotations.Test; + +/** + * The Soap Utilities unit test class. + */ +public class SoapConfigUnitTest { + + @Test(groups = TestCategories.WEB_SERVICE) + public void getSoapPrefix() { + Assert.assertEquals(SoapConfig.getSoapPrefix(), + "soapenv", "the SOAP Prefixes does not match"); + } + + @Test(groups = TestCategories.WEB_SERVICE) + public void getSoapNamespaces() { + Map namespaces = + Collections.singletonMap("gs", "http://spring.io/guides/gs-producing-web-service"); + Assert.assertEquals(SoapConfig.getSoapNamespaces(), + namespaces , "The SOAP Namespaces do not matche"); + } +} diff --git a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/soap/SoapUtilitiesUnitTest.java b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/soap/SoapUtilitiesUnitTest.java new file mode 100644 index 000000000..d88030ba4 --- /dev/null +++ b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/soap/SoapUtilitiesUnitTest.java @@ -0,0 +1,33 @@ +package com.cognizantsoftvision.maqs.webservices.soap; + +import com.cognizantsoftvision.maqs.utilities.helper.TestCategories; +import com.cognizantsoftvision.maqs.webservices.MediaType; +import com.cognizantsoftvision.maqs.webservices.WebServiceConfig; +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.http.HttpResponse; +import javax.xml.bind.JAXBException; +import javax.xml.soap.SOAPException; +import org.springframework.http.HttpStatus; +import org.testng.annotations.Test; + +/** + * The Soap Utilities unit test class. + */ +public class SoapUtilitiesUnitTest { + + /** + * String to hold the URL. + */ + private static final String baseUrl = WebServiceConfig.getWebServiceURIString(); + + @Test(groups = TestCategories.WEB_SERVICE) + public void getResponseBodyAsObjects() + throws SOAPException, IOException, InterruptedException, JAXBException { + SoapWebServiceDriver driver = new SoapWebServiceDriver(WebServiceConfig.getWebServiceUri()); + HttpResponse res = driver.get( + baseUrl + "/api/XML_JSON/GetAllProducts", MediaType.APP_XML, HttpStatus.OK); + + SoapUtilities.getResponseBodyAsObjects(res, driver.getCachedUnMarshaller()); + } +} diff --git a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/soap/SoapWebServiceDriverFactoryUnitTest.java b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/soap/SoapWebServiceDriverFactoryUnitTest.java new file mode 100644 index 000000000..3c1c993a7 --- /dev/null +++ b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/soap/SoapWebServiceDriverFactoryUnitTest.java @@ -0,0 +1,22 @@ +package com.cognizantsoftvision.maqs.webservices.soap; + +import com.cognizantsoftvision.maqs.utilities.helper.TestCategories; +import org.testng.Assert; +import org.testng.annotations.Test; +import javax.xml.soap.SOAPException; + +/** + * The Soap Web Service Driver Factory unit test class. + */ +public class SoapWebServiceDriverFactoryUnitTest { + + @Test(groups = TestCategories.WEB_SERVICE) + public void getDefaultMessage() throws SOAPException { + Assert.assertNotNull(SoapWebServiceDriverFactory.getDefaultMessage()); + } + + @Test(groups = TestCategories.WEB_SERVICE) + public void getDefaultSoapDriver() throws SOAPException { + Assert.assertNotNull(SoapWebServiceDriverFactory.getDefaultSoapDriver()); + } +} diff --git a/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/soap/SoapWebServiceDriverUnitTest.java b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/soap/SoapWebServiceDriverUnitTest.java new file mode 100644 index 000000000..3ada2a77a --- /dev/null +++ b/maqs-webservices/src/test/java/com/cognizantsoftvision/maqs/webservices/soap/SoapWebServiceDriverUnitTest.java @@ -0,0 +1,55 @@ +package com.cognizantsoftvision.maqs.webservices.soap; + +import com.cognizantsoftvision.maqs.utilities.helper.TestCategories; +import com.cognizantsoftvision.maqs.webservices.WebServiceConfig; +import org.testng.Assert; +import org.testng.annotations.Test; +import org.xml.sax.SAXException; +import java.io.IOException; +import javax.xml.bind.JAXBException; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.soap.SOAPException; + +/** + * The Soap Web Service Driver unit test class. + */ +public class SoapWebServiceDriverUnitTest extends BaseSoapWebServiceTest { + + @Test(groups = TestCategories.WEB_SERVICE) + public void getDefaultSoapMessage() + throws SOAPException, ParserConfigurationException, IOException, + SAXException { + SoapWebServiceDriver driver = new SoapWebServiceDriver(WebServiceConfig.getWebServiceUri()); + Assert.assertNotNull(driver.getDefaultSoapMessage("Test String")); + } + + @Test(groups = TestCategories.WEB_SERVICE) + public void getSoapBodyStringEntity() + throws SOAPException, ParserConfigurationException, IOException, + SAXException { + SoapWebServiceDriver driver = new SoapWebServiceDriver(WebServiceConfig.getWebServiceUri()); + Assert.assertNotNull(driver.getDefaultSoapMessage("Test String")); + Assert.assertNotNull(driver.getSoapBodyStringEntity()); + } + + @Test(groups = TestCategories.WEB_SERVICE) + public void addNameSpaceToMessage() throws SOAPException { + SoapWebServiceDriver driver = new SoapWebServiceDriver(WebServiceConfig.getWebServiceUri()); + driver.addNameSpaceToMessage("Test", "Value"); + } + + @Test(groups = TestCategories.WEB_SERVICE) + public void getUnMarshaller() throws SOAPException, JAXBException { + SoapWebServiceDriver driver = new SoapWebServiceDriver(WebServiceConfig.getWebServiceUri()); + Assert.assertNotNull(driver.getUnMarshaller("Test")); + } + + @Test(groups = TestCategories.WEB_SERVICE) + public void addObjectToSoapMessage() + throws JAXBException, SOAPException, IOException, + ParserConfigurationException, SAXException { + SoapWebServiceDriver driver = new SoapWebServiceDriver(WebServiceConfig.getWebServiceUri()); + driver.addObjectToSoapMessage("Test String"); + Assert.assertEquals(driver.getSoapBodyString(), "Test String"); + } +}