/* * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * * WSO2 Inc. licenses this file to you under the Apache License, * Version 2.0 (the "License"); you may not use this file except * in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package org.wso2.carbon.esb.mediator.test.datamapper; import org.testng.Assert; import org.testng.annotations.Test; import java.io.File; /** * This class contains integration tests for Data Mapper mediator. * */ public class DataMapperSimpleTestCase extends DataMapperIntegrationTest { private final String ARTIFACT_ROOT_PATH = "/artifacts/ESB/mediatorconfig/datamapper/one_to_one/"; private final String REGISTRY_ROOT_PATH = "datamapper/one_to_one/"; /** * This method contains the test case for mapping single xml object element without arrays * to a single xml object element without array * * @throws Exception */ @Test(groups = { "wso2.esb" }, description = "Datamapper simple one to one xml to xml conversion") public void testOneToOneXmlToXml() throws Exception { loadESBConfigurationFromClasspath(ARTIFACT_ROOT_PATH + "xml_to_xml/" + File.separator + "synapse.xml"); uploadResourcesToGovernanceRegistry(REGISTRY_ROOT_PATH + "xml_to_xml/", ARTIFACT_ROOT_PATH + "xml_to_xml" + File.separator); String request = " <company>\n" + " <name>WSO2</name>\n" + " <usoffice>\n" + " <address>\n" + " <no>787</no>\n" + " <street>Castro Street,Mountain View</street>\n" + " <city>CA</city>\n" + " <code>94041</code>\n" + " <country>US</country>\n" + " </address>\n" + " <phone> +1 650 745 4499</phone>\n" + " <fax> +1 408 689 4328</fax>\n" + " </usoffice>\n" + " <europeoffice>\n" + " <address>\n" + " <no>2-6 </no>\n" + " <street>Boundary Row</street>\n" + " <city>London</city>\n" + " <code>SE1 8HP</code>\n" + " <country>UK</country>\n" + " </address>\n" + " <phone>+44 203 318 6025</phone>\n" + " </europeoffice>\n" + " <asiaoffice>\n" + " <address>\n" + " <no>20</no>\n" + " <street>Palm Grove</street>\n" + " <city>Colombo 03</city>\n" + " <code>10003</code>\n" + " <country>LKA</country>\n" + " </address>\n" + " <phone>+94 11 214 5345</phone>\n" + " <fax>+94 11 2145300</fax>\n" + " </asiaoffice>\n" + " </company>\n"; String response = sendRequest(getProxyServiceURLHttp("OneToOneXmlToXml"), request, "text/xml"); Assert.assertEquals(response, "<company><offices><asiaoffice><fax> +1 408 689 4328</fax><phone> +1 650 745 " + "4499</phone><address>WSO220Colombo 03</address></asiaoffice><europeoffice><fax>+94 11 " + "2145300</fax><phone>+94 11 214 5345</phone><address>WSO220Colombo " + "03</address></europeoffice><usoffice><phone>+44 203 318 " + "6025</phone><address>WSO2787CA</address></usoffice></offices></company>"); } /** * This method contains the test case for mapping single json object element without arrays * to a single json object element without array * * @throws Exception */ @Test(groups = { "wso2.esb" }, description = "Datamapper simple one to one json to json conversion") public void testOneToOneJsonToJson() throws Exception { loadESBConfigurationFromClasspath(ARTIFACT_ROOT_PATH + "json_to_json/" + File.separator + "synapse.xml"); uploadResourcesToGovernanceRegistry(REGISTRY_ROOT_PATH + "json_to_json/", ARTIFACT_ROOT_PATH + "json_to_json" + File.separator); String request = "{\n" + " \"name\": \"WSO2\",\n" + " \"usoffice\": {\n" + " \"address\": {\n" + " \"no\": \"787\",\n" + " \"street\": \"Castro Street,Mountain View\",\n" + " \"city\": \"CA\",\n" + " \"code\": \"94041\",\n" + " \"country\": \"US\"\n" + " },\n" + " \"phone\": \" +1 650 745 4499\",\n" + " \"fax\": \" +1 408 689 4328\"\n" + " },\n" + " \"europeoffice\": {\n" + " \"address\": {\n" + " \"no\": \"2-6 \",\n" + " \"street\": \"Boundary Row\",\n" + " \"city\": \"London\",\n" + " \"code\": \"SE1 8HP\",\n" + " \"country\": \"UK\"\n" + " },\n" + " \"phone\": \"+44 203 318 6025\",\n" + " \"fax\": \"+44 11 2145300\"\n" + " },\n" + " \"asiaoffice\": {\n" + " \"address\": {\n" + " \"no\": \"20\",\n" + " \"street\": \"Palm Grove\",\n" + " \"city\": \"Colombo 03\",\n" + " \"code\": \"10003\",\n" + " \"country\": \"LKA\"\n" + " },\n" + " \"phone\": \"+94 11 214 5345\",\n" + " \"fax\": \"+94 11 2145300\"\n" + " }\n" + "}\n"; String response = sendRequest(getProxyServiceURLHttp("OneToOneJsonToJson"), request, "application/json"); Assert.assertEquals(response, "{\"offices\":{\"usoffice\":{\"address\":\"WSO2787CA\",\"phone\":\" +1 650 745 4499\"," + "\"fax\":\" +1 408 689 4328\"},\"europeoffice\":{\"address\":\"WSO22-6 London\"," + "\"phone\":\"+44 203 318 6025\",\"fax\":\"+44 11 2145300\"}," + "\"asiaoffice\":{\"address\":\"WSO220Colombo 03\",\"phone\":\"+94 11 214 5345\"," + "\"fax\":\"+94 11 2145300\"}}}"); } /** * This method contains the test case for mapping single xml object with elements containing * underscore in name to a single xml object with elements containing underscore in name * * @throws Exception */ @Test(groups = { "wso2.esb" }, description = "Data-mapper conversion of input xml messages with underscore " + "element names for xml messages with element names with underscore") public void testXmlWithUnderscoreToXmlWithUnderscore() throws Exception { loadESBConfigurationFromClasspath(ARTIFACT_ROOT_PATH + "xml_un_to_xml_un/" + File.separator + "synapse.xml"); uploadResourcesToGovernanceRegistry(REGISTRY_ROOT_PATH + "xml_un_to_xml_un/", ARTIFACT_ROOT_PATH + "xml_un_to_xml_un" + File.separator); String expectedResponse = "<test xmlns:sf=\"urn:sobject.partner.soap.sforce.com\"" + " xmlns:axis2ns11=\"urn:partner.soap.sforce.com\"" + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><axis2ns11:records_un " + "xsi:type=\"sf:sObject\"><sf:type>Account</sf:type><sf:Id>001E0000002SFO2IAO</sf:Id>" + "<sf:CreatedDate>2011-03-15T00:15:00.000Z</sf:CreatedDate><sf:Name>WSO2</sf:Name>" + "</axis2ns11:records_un></test>"; String request = "<test>\n" + " <axis2ns11:records_un xmlns:axis2ns11=\"urn:partner.soap.sforce.com\" " + "xmlns:sf=\"urn:sobject.partner.soap.sforce.com\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" + " xsi:type=\"sf:sObject\">\n" + " <sf:type xmlns:sf=\"urn:sobject.partner.soap.sforce.com\">Account</sf:type>\n" + " <sf:Id xmlns:sf=\"urn:sobject.partner.soap.sforce.com\">001E0000002SFO2IAO</sf:Id>\n" + " <sf:CreatedDate xmlns:sf=\"urn:sobject.partner.soap.sforce.com\">" + "2011-03-15T00:15:00.000Z</sf:CreatedDate>\n" + " <sf:Id xmlns:sf=\"urn:sobject.partner.soap.sforce.com\">001E0000002SFO2IAO</sf:Id>\n" + " <sf:Name xmlns:sf=\"urn:sobject.partner.soap.sforce.com\">WSO2</sf:Name>\n" + " </axis2ns11:records_un>\n" + "</test>"; String response = sendRequest(getProxyServiceURLHttp("OneToOneXmlunToXmlun"), request, "text/xml"); Assert.assertEquals(response,expectedResponse); } }