Package org.wso2.carbon.dataservices.core.test.tools

Source Code of org.wso2.carbon.dataservices.core.test.tools.ToolsTest

/*
* Copyright 2004,2005 The Apache Software Foundation.
*
* Licensed 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.dataservices.core.test.tools;

import java.io.File;
import java.io.FileInputStream;
import java.util.HashMap;
import java.util.Map;

import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
import org.wso2.carbon.dataservices.core.engine.DataService;
import org.wso2.carbon.dataservices.core.engine.ParamValue;
import org.wso2.carbon.dataservices.core.test.DataServiceBaseTestCase;
import org.wso2.carbon.dataservices.core.test.util.TestUtils;
import org.wso2.carbon.dataservices.core.tools.DSTools;

public class ToolsTest extends DataServiceBaseTestCase {

  public ToolsTest() {
    super("ToolsTest");
  }
 
  private OMElement loadXML(String filePath) throws Exception {
    FileInputStream in = new FileInputStream(filePath);
    OMElement dsElement = (new StAXOMBuilder(in)).getDocumentElement();
    dsElement.build();
    return dsElement;
  }
 
  private String getTestDBSDirectory() {
    return "." + File.separator + "src" + File.separator + "test"
        + File.separator + "resources" + File.separator + "test-dbs"
        + File.separator;
  }
 
  /**
   * Tests local, RDBMS data source based, operation invocation without parameters.
   */
  public void testLocalOperationInvocation1() {
    TestUtils.showMessage("testLocalOperationInvocation1");
    try {
      String filePath = this.getTestDBSDirectory() + "H2BasicService.dbs";
      DataService dataService = DSTools.createDataService(this.loadXML(filePath), filePath);
      OMElement result = DSTools.invokeOperation(dataService, "select_op_given_fields",
              new HashMap<String, ParamValue>());
      assertTrue(TestUtils.validateResultStructure(result, TestUtils.CUSTOMER_XSD_PATH));
    } catch (Exception e) {
      e.printStackTrace();
      fail(e.getMessage());
    }
  }
 
  /**
   * Tests local, RDBMS data source based, operation invocation with parameters.
   */
  public void testLocalOperationInvocation2() {
    TestUtils.showMessage("testLocalOperationInvocation2");
    try {
      String filePath = this.getTestDBSDirectory() + "H2InputMappingService.dbs";
      DataService dataService = DSTools.createDataService(this.loadXML(filePath), filePath);
      Map<String, ParamValue> params = new HashMap<String, ParamValue>();
      params.put("orderNumber", new ParamValue("10242"));
      params.put("orderDate", new ParamValue("2004-04-20"));
      OMElement result = DSTools.invokeOperation(dataService, "select_input_mappings_op1", params);
      assertTrue(TestUtils.validateResultStructure(result,
          TestUtils.ORDERS_XSD_PATH));
      String val = TestUtils.getFirstValue(result,
          "/Orders/Order/orderNumber",
          TestUtils.DEFAULT_DS_WS_NAMESPACE);
      assertTrue(params.get("orderNumber").getScalarValue().equals(val));
    } catch (Exception e) {
      e.printStackTrace();
      fail(e.getMessage());
    }
  }
 
  /**
   * Tests local, CSV data source based, operation invocation.
   */
  public void testLocalOperationInvocation3() {
    TestUtils.showMessage("testLocalOperationInvocation3");
    try {
      String filePath = this.getTestDBSDirectory() + "CSVService.dbs";
      DataService dataService = DSTools.createDataService(this.loadXML(filePath), filePath);
      OMElement result = DSTools.invokeOperation(dataService, "customer_list_op",
          new HashMap<String, ParamValue>());
      assertTrue(TestUtils.validateResultStructure(result,
          TestUtils.CUSTOMER_XSD_PATH));
      String val = TestUtils.getFirstValue(result,
          "/Customers/Customer/customerNumber",
          TestUtils.DEFAULT_DS_WS_NAMESPACE);
      assertTrue(Integer.parseInt(val) == 103);
    } catch (Exception e) {
      e.printStackTrace();
      fail(e.getMessage());
    }
  }
 
  /**
   * Tests local, Excel data source based, operation invocation.
   */
  public void testLocalOperationInvocation4() {
    TestUtils.showMessage("testLocalOperationInvocation4");
    try {
      String filePath = this.getTestDBSDirectory() + "ExcelService.dbs";
      DataService dataService = DSTools.createDataService(this.loadXML(filePath), filePath);
      OMElement result = DSTools.invokeOperation(dataService, "excel_old_noheader_with_ints_op",
          new HashMap<String, ParamValue>());
      assertTrue(TestUtils.validateResultStructure(result,
          TestUtils.CUSTOMER_XSD_PATH));
    } catch (Exception e) {
      e.printStackTrace();
      fail(e.getMessage());
    }
  }
 
  /**
   * Tests local, RDBMS data source based, resource access without parameters.
   */
  public void testLocalResourceAccess1() {
    TestUtils.showMessage("testLocalResourceAccess1");
    try {
      String filePath = this.getTestDBSDirectory() + "H2BasicService.dbs";
      DataService dataService = DSTools.createDataService(this.loadXML(filePath), filePath);
      OMElement result = DSTools.accessResource(dataService, "customers1",
              new HashMap<String, ParamValue>(), "GET");
      assertTrue(TestUtils.validateResultStructure(result, TestUtils.CUSTOMER_XSD_PATH));
    } catch (Exception e) {
      e.printStackTrace();
      fail(e.getMessage());
    }
  }
 
}
TOP

Related Classes of org.wso2.carbon.dataservices.core.test.tools.ToolsTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.