Package com.smartbear.soapui.other.soap.wsdl

Source Code of com.smartbear.soapui.other.soap.wsdl.SchemaUtilsTest

/*
* Copyright 2004-2014 SmartBear Software
*
* Licensed under the EUPL, Version 1.1 or - as soon as they will be approved by the European Commission - subsequent
* versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
*
* http://ec.europa.eu/idabc/eupl
*
* Unless required by applicable law or agreed to in writing, software distributed under the Licence is
* distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the Licence for the specific language governing permissions and limitations
* under the Licence.
*/

package com.smartbear.soapui.other.soap.wsdl;

import com.eviware.soapui.impl.wsdl.support.UrlSchemaLoader;
import com.eviware.soapui.impl.wsdl.support.wsdl.UrlWsdlLoader;
import com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils;
import com.smartbear.soapui.utils.IntegrationTest;
import com.smartbear.soapui.utils.jetty.JettyTestCaseBase;
import org.apache.xmlbeans.SchemaTypeLoader;
import org.apache.xmlbeans.XmlObject;
import org.junit.Test;
import org.junit.experimental.categories.Category;

import javax.xml.namespace.QName;
import java.util.Map;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;

@Category(IntegrationTest.class)
public class SchemaUtilsTest extends JettyTestCaseBase
{

  @Test
  public void testFileImport() throws Exception
  {
    validatePath( "/wsdls/test1/TestService.wsdl", 3 );
  }

  @Test
  public void testHttpImport() throws Exception
  {
    validatePath( "/wsdls/test1/TestService.wsdl", 3 );
    validate( "http://localhost:" + getPort() + "/wsdls/test1/TestService.wsdl", 3 );
  }

  @Test
  public void testHttpImport2() throws Exception
  {
    validate( "http://localhost:" + getPort() + "/wsdls/test2/TestService.wsdl", 3 );
    validatePath( "/wsdls/test2/TestService.wsdl", 3 );
  }

  @Test
  public void testHttpImport3() throws Exception
  {
    validate( "http://localhost:" + getPort() + "/wsdls/test3/TestService.wsdl", 3 );
    validatePath( "/wsdls/test3/TestService.wsdl", 3 );

  }

  @Test
  public void testHttpImport4() throws Exception
  {
    validate( "http://localhost:" + getPort() + "/wsdls/test4/TestService.wsdl", 3 );
    validatePath( "/wsdls/test4/TestService.wsdl", 3 );

  }

  @Test
  public void testHttpImport5() throws Exception
  {
    validate( "http://localhost:" + getPort() + "/wsdls/test5/TestService.wsdl", 4 );
    validatePath( "/wsdls/test5/TestService.wsdl", 4 );
  }

  @Test
  public void testHttpImport6() throws Exception
  {
    SchemaTypeLoader schemaTypes = validate( "http://localhost:" + getPort() + "/wsdls/test6/TestService.wsdl", 4 );
    assertNotNull( schemaTypes.findType( new QName( "http://schemas.eviware.com/TestService/v2/", "TestType" ) ) );

    schemaTypes = validatePath( "/wsdls/test6/TestService.wsdl", 4 );
    assertNotNull( schemaTypes.findType( new QName( "http://schemas.eviware.com/TestService/v2/", "TestType" ) ) );
  }

  @Test
  public void testHttpImport7() throws Exception
  {
    SchemaTypeLoader schemaTypes = validate( "http://localhost:" + getPort() + "/wsdls/test7/TestService.wsdl", 4 );
    assertNotNull( schemaTypes.findType( new QName( "http://schemas.eviware.com/TestService/v2/", "TestType" ) ) );

    schemaTypes = validatePath( "/wsdls/test7/TestService.wsdl", 4 );
    assertNotNull( schemaTypes.findType( new QName( "http://schemas.eviware.com/TestService/v2/", "TestType" ) ) );
  }

  @Test
  public void testHttpImport8() throws Exception
  {
    SchemaTypeLoader schemaTypes = validate( "http://localhost:" + getPort() + "/wsdls/test8/TestService.wsdl", 4 );
    assertNotNull( schemaTypes.findType( new QName( "http://schemas.eviware.com/TestService/v2/", "TestType" ) ) );

    schemaTypes = validatePath( "/wsdls/test8/TestService.wsdl", 4 );
    assertNotNull( schemaTypes.findType( new QName( "http://schemas.eviware.com/TestService/v2/", "TestType" ) ) );
  }

  @Test
  public void testHttpImport9() throws Exception
  {
    String url = "http://localhost:" + getPort() + "/wsdls/test9/testcase.wsdl";
    SchemaTypeLoader schemaTypes = SchemaUtils.loadSchemaTypes( url, new UrlWsdlLoader( url ) );
    assertNotNull( schemaTypes.findElement( new QName( "http://testcase/wsdl", "One" ) ) );
    assertNotNull( schemaTypes.findElement( new QName( "http://testcase/wsdl", "Two" ) ) );
    assertNotNull( schemaTypes.findType( new QName( "http://testcase/one", "OneType" ) ) );
    assertNotNull( schemaTypes.findType( new QName( "http://testcase/two", "TwoType" ) ) );

    url = SchemaUtilsTest.class.getResource( "/wsdls/test9/testcase.wsdl" ).toURI().toURL().toString();
    schemaTypes = SchemaUtils.loadSchemaTypes( url, new UrlWsdlLoader( url ) );
    assertNotNull( schemaTypes.findElement( new QName( "http://testcase/wsdl", "One" ) ) );
    assertNotNull( schemaTypes.findElement( new QName( "http://testcase/wsdl", "Two" ) ) );
  }

  @Test
  public void testWadlImport() throws Exception
  {
    String file = SchemaUtilsTest.class.getResource( "/wadl/YahooSearch.wadl" ).toURI().toURL().toString();
    SchemaTypeLoader types = SchemaUtils.loadSchemaTypes( file, new UrlSchemaLoader( file ) );

    assertNotNull( types.findElement( new QName( "urn:yahoo:yn", "ResultSet" ) ) );
    assertNotNull( types.findElement( new QName( "urn:yahoo:api", "Error" ) ) );
  }


  /*
  Helpers
   */

  private SchemaTypeLoader validatePath( String wsdlPath, int count ) throws Exception
  {
    return validate( SchemaUtilsTest.class.getResource( wsdlPath ).toURI().toURL().toString(), count );
  }

  private SchemaTypeLoader validate( String url, int cnt ) throws Exception
  {
    SchemaTypeLoader schemaTypes = SchemaUtils.loadSchemaTypes( url, new UrlWsdlLoader( url ) );
    Map<String, XmlObject> definitionUrls = SchemaUtils.getDefinitionParts( new UrlWsdlLoader( url ) );

    assertNotNull( schemaTypes );
    assertNotNull( definitionUrls );
    assertEquals( cnt, definitionUrls.size() );

    assertNotNull( schemaTypes.findType( new QName( "http://schemas.eviware.com/TestService/v1/", "PageReference" ) ) );

    return schemaTypes;
  }
}
TOP

Related Classes of com.smartbear.soapui.other.soap.wsdl.SchemaUtilsTest

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.