summaryrefslogtreecommitdiff
path: root/test/wsdl/qualified
diff options
context:
space:
mode:
Diffstat (limited to 'test/wsdl/qualified')
-rw-r--r--test/wsdl/qualified/lp.wsdl47
-rw-r--r--test/wsdl/qualified/lp.xsd26
-rw-r--r--test/wsdl/qualified/np.wsdl50
-rw-r--r--test/wsdl/qualified/test_qualified.rb154
-rw-r--r--test/wsdl/qualified/test_unqualified.rb143
5 files changed, 420 insertions, 0 deletions
diff --git a/test/wsdl/qualified/lp.wsdl b/test/wsdl/qualified/lp.wsdl
new file mode 100644
index 0000000000..b107b7b392
--- /dev/null
+++ b/test/wsdl/qualified/lp.wsdl
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<definitions
+ name="lp"
+ targetNamespace="urn:lp"
+ xmlns:tns="urn:lp"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema">
+ <import namespace="urn:lp" schemaLocation="lp.xsd"/>
+ </schema>
+ </types>
+
+ <message name="login_in">
+ <part name="parameters" element="tns:login" />
+ </message>
+ <message name="login_out">
+ <part name="parameters" element="tns:loginResponse" />
+ </message>
+
+ <portType name="lp_porttype">
+ <operation name="login">
+ <input message="tns:login_in" />
+ <output message="tns:login_out" />
+ </operation>
+ </portType>
+
+ <binding name="lp_binding" type="tns:lp_porttype">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+ <operation name="login">
+ <soap:operation soapAction="urn:lp:login" style="document" />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+ </binding>
+
+ <service name="lp_service">
+ <port name="lp_service_port" binding="tns:lp_binding">
+ <soap:address location="http://localhost:17171/" />
+ </port>
+ </service>
+</definitions>
diff --git a/test/wsdl/qualified/lp.xsd b/test/wsdl/qualified/lp.xsd
new file mode 100644
index 0000000000..12bcbd8cef
--- /dev/null
+++ b/test/wsdl/qualified/lp.xsd
@@ -0,0 +1,26 @@
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:lp="urn:lp" targetNamespace="urn:lp" elementFormDefault="unqualified">
+
+ <xs:complexType name="login">
+ <xs:sequence>
+ <xs:element name="username" type="xs:string"/>
+ <xs:element name="password" type="xs:string"/>
+ <xs:element name="timezone" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="login" type="lp:login"/>
+
+ <xs:complexType name="loginResponse">
+ <xs:sequence>
+ <xs:element name="loginResult">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="sessionID" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="loginResponse" type="lp:loginResponse"/>
+</xs:schema>
diff --git a/test/wsdl/qualified/np.wsdl b/test/wsdl/qualified/np.wsdl
new file mode 100644
index 0000000000..e2b7253d0e
--- /dev/null
+++ b/test/wsdl/qualified/np.wsdl
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://www50.brinkster.com/vbfacileinpt/np" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://www50.brinkster.com/vbfacileinpt/np" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <wsdl:types>
+ <s:schema elementFormDefault="qualified" targetNamespace="http://www50.brinkster.com/vbfacileinpt/np">
+ <s:element name="GetPrimeNumbers">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1" name="Max" type="s:string" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+ <s:element name="GetPrimeNumbersResponse">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1" name="GetPrimeNumbersResult" type="s:string" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+ </s:schema>
+ </wsdl:types>
+ <wsdl:message name="GetPrimeNumbersSoapIn">
+ <wsdl:part name="parameters" element="tns:GetPrimeNumbers" />
+ </wsdl:message>
+ <wsdl:message name="GetPrimeNumbersSoapOut">
+ <wsdl:part name="parameters" element="tns:GetPrimeNumbersResponse" />
+ </wsdl:message>
+ <wsdl:portType name="pnumSoap">
+ <wsdl:operation name="GetPrimeNumbers">
+ <wsdl:input message="tns:GetPrimeNumbersSoapIn" />
+ <wsdl:output message="tns:GetPrimeNumbersSoapOut" />
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="pnumSoap" type="tns:pnumSoap">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+ <wsdl:operation name="GetPrimeNumbers">
+ <soap:operation soapAction="http://www50.brinkster.com/vbfacileinpt/np/GetPrimeNumbers" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="pnum">
+ <wsdl:port name="pnumSoap" binding="tns:pnumSoap">
+ <soap:address location="http://www50.brinkster.com/vbfacileinpt/np.asmx" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions> \ No newline at end of file
diff --git a/test/wsdl/qualified/test_qualified.rb b/test/wsdl/qualified/test_qualified.rb
new file mode 100644
index 0000000000..d6c1159a87
--- /dev/null
+++ b/test/wsdl/qualified/test_qualified.rb
@@ -0,0 +1,154 @@
+require 'test/unit'
+require 'wsdl/soap/wsdl2ruby'
+require 'soap/rpc/standaloneServer'
+require 'soap/wsdlDriver'
+
+if defined?(HTTPAccess2)
+
+module WSDL
+
+
+class TestQualified < Test::Unit::TestCase
+ class Server < ::SOAP::RPC::StandaloneServer
+ Namespace = 'http://www50.brinkster.com/vbfacileinpt/np'
+
+ def on_init
+ add_document_method(
+ self,
+ Namespace + '/GetPrimeNumbers',
+ 'GetPrimeNumbers',
+ XSD::QName.new(Namespace, 'GetPrimeNumbers'),
+ XSD::QName.new(Namespace, 'GetPrimeNumbersResponse')
+ )
+ end
+
+ def GetPrimeNumbers(arg)
+ nil
+ end
+ end
+
+ DIR = File.dirname(File.expand_path(__FILE__))
+ Port = 17171
+
+ def setup
+ setup_server
+ setup_clientdef
+ @client = nil
+ end
+
+ def teardown
+ teardown_server
+ unless $DEBUG
+ File.unlink(pathname('default.rb'))
+ File.unlink(pathname('defaultDriver.rb'))
+ end
+ @client.reset_stream if @client
+ end
+
+ def setup_server
+ @server = Server.new('Test', "urn:lp", '0.0.0.0', Port)
+ @server.level = Logger::Severity::ERROR
+ @server_thread = start_server_thread(@server)
+ end
+
+ def setup_clientdef
+ backupdir = Dir.pwd
+ begin
+ Dir.chdir(DIR)
+ gen = WSDL::SOAP::WSDL2Ruby.new
+ gen.location = pathname("np.wsdl")
+ gen.basedir = DIR
+ gen.logger.level = Logger::FATAL
+ gen.opt['classdef'] = nil
+ gen.opt['driver'] = nil
+ gen.opt['force'] = true
+ gen.run
+ require pathname('default.rb')
+ ensure
+ Dir.chdir(backupdir)
+ end
+ end
+
+ def teardown_server
+ @server.shutdown
+ @server_thread.kill
+ @server_thread.join
+ end
+
+ def start_server_thread(server)
+ t = Thread.new {
+ Thread.current.abort_on_exception = true
+ server.start
+ }
+ t
+ end
+
+ def pathname(filename)
+ File.join(DIR, filename)
+ end
+
+ LOGIN_REQUEST_QUALIFIED_NS =
+%q[<?xml version="1.0" encoding="utf-8" ?>
+<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <n1:GetPrimeNumbers xmlns:n1="http://www50.brinkster.com/vbfacileinpt/np">
+ <n1:Max>10</n1:Max>
+ </n1:GetPrimeNumbers>
+ </env:Body>
+</env:Envelope>]
+
+ LOGIN_REQUEST_QUALIFIED =
+%q[<?xml version="1.0" encoding="utf-8" ?>
+<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <GetPrimeNumbers xmlns="http://www50.brinkster.com/vbfacileinpt/np">
+ <Max>10</Max>
+ </GetPrimeNumbers>
+ </env:Body>
+</env:Envelope>]
+
+ def test_wsdl
+ wsdl = File.join(DIR, 'np.wsdl')
+ @client = nil
+ backupdir = Dir.pwd
+ begin
+ Dir.chdir(DIR)
+ @client = ::SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
+ ensure
+ Dir.chdir(backupdir)
+ end
+ @client.endpoint_url = "http://localhost:#{Port}/"
+ @client.wiredump_dev = str = ''
+ @client.GetPrimeNumbers(:Max => 10)
+ assert_equal(LOGIN_REQUEST_QUALIFIED_NS, parse_requestxml(str))
+ end
+
+ include ::SOAP
+ def test_naive
+ backupdir = Dir.pwd
+ begin
+ Dir.chdir(DIR)
+ require pathname('defaultDriver')
+ ensure
+ Dir.chdir(backupdir)
+ end
+ @client = PnumSoap.new("http://localhost:#{Port}/")
+
+ @client.wiredump_dev = str = ''
+ @client.getPrimeNumbers(GetPrimeNumbers.new(10))
+ assert_equal(LOGIN_REQUEST_QUALIFIED, parse_requestxml(str))
+ end
+
+ def parse_requestxml(str)
+ str.split(/\r?\n\r?\n/)[3]
+ end
+end
+
+
+end
+
+end
diff --git a/test/wsdl/qualified/test_unqualified.rb b/test/wsdl/qualified/test_unqualified.rb
new file mode 100644
index 0000000000..bcfed73e58
--- /dev/null
+++ b/test/wsdl/qualified/test_unqualified.rb
@@ -0,0 +1,143 @@
+require 'test/unit'
+require 'wsdl/soap/wsdl2ruby'
+require 'soap/rpc/standaloneServer'
+require 'soap/wsdlDriver'
+
+if defined?(HTTPAccess2)
+
+module WSDL
+
+
+class TestUnqualified < Test::Unit::TestCase
+ class Server < ::SOAP::RPC::StandaloneServer
+ Namespace = 'urn:lp'
+
+ def on_init
+ add_document_method(
+ self,
+ Namespace + ':login',
+ 'login',
+ XSD::QName.new(Namespace, 'login'),
+ XSD::QName.new(Namespace, 'loginResponse')
+ )
+ end
+
+ def login(arg)
+ nil
+ end
+ end
+
+ DIR = File.dirname(File.expand_path(__FILE__))
+ Port = 17171
+
+ def setup
+ setup_server
+ setup_clientdef
+ @client = nil
+ end
+
+ def teardown
+ teardown_server
+ File.unlink(pathname('lp.rb'))
+ File.unlink(pathname('lpDriver.rb'))
+ @client.reset_stream if @client
+ end
+
+ def setup_server
+ @server = Server.new('Test', "urn:lp", '0.0.0.0', Port)
+ @server.level = Logger::Severity::ERROR
+ @server_thread = start_server_thread(@server)
+ end
+
+ def setup_clientdef
+ backupdir = Dir.pwd
+ begin
+ Dir.chdir(DIR)
+ gen = WSDL::SOAP::WSDL2Ruby.new
+ gen.location = pathname("lp.wsdl")
+ gen.basedir = DIR
+ gen.logger.level = Logger::FATAL
+ gen.opt['classdef'] = nil
+ gen.opt['driver'] = nil
+ gen.opt['force'] = true
+ gen.run
+ require pathname('lp')
+ ensure
+ Dir.chdir(backupdir)
+ end
+ end
+
+ def teardown_server
+ @server.shutdown
+ @server_thread.kill
+ @server_thread.join
+ end
+
+ def start_server_thread(server)
+ t = Thread.new {
+ Thread.current.abort_on_exception = true
+ server.start
+ }
+ t
+ end
+
+ def pathname(filename)
+ File.join(DIR, filename)
+ end
+
+ LOGIN_REQUEST_QUALIFIED =
+%q[<?xml version="1.0" encoding="utf-8" ?>
+<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <n1:login xmlns:n1="urn:lp">
+ <username>NaHi</username>
+ <password>passwd</password>
+ <timezone>JST</timezone>
+ </n1:login>
+ </env:Body>
+</env:Envelope>]
+
+ def test_wsdl
+ wsdl = File.join(DIR, 'lp.wsdl')
+ @client = nil
+ backupdir = Dir.pwd
+ begin
+ Dir.chdir(DIR)
+ @client = ::SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
+ ensure
+ Dir.chdir(backupdir)
+ end
+ @client.endpoint_url = "http://localhost:#{Port}/"
+ @client.wiredump_dev = str = ''
+ @client.login(:timezone => 'JST', :password => 'passwd',
+ :username => 'NaHi')
+ assert_equal(LOGIN_REQUEST_QUALIFIED, parse_requestxml(str))
+ end
+
+ include ::SOAP
+ def test_naive
+ backupdir = Dir.pwd
+ begin
+ Dir.chdir(DIR)
+ require pathname('lpDriver')
+ ensure
+ Dir.chdir(backupdir)
+ end
+ @client = Lp_porttype.new("http://localhost:#{Port}/")
+
+ @client.wiredump_dev = str = ''
+ @client.login(Login.new('NaHi', 'passwd', 'JST'))
+ assert_equal(LOGIN_REQUEST_QUALIFIED, parse_requestxml(str))
+ end
+
+ def parse_requestxml(str)
+ str.split(/\r?\n\r?\n/)[3]
+ end
+end
+
+
+end
+
+end