summaryrefslogtreecommitdiff
path: root/ruby_1_8_5/test/soap/wsdlDriver
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_1_8_5/test/soap/wsdlDriver')
-rw-r--r--ruby_1_8_5/test/soap/wsdlDriver/README.txt2
-rw-r--r--ruby_1_8_5/test/soap/wsdlDriver/calc.wsdl126
-rw-r--r--ruby_1_8_5/test/soap/wsdlDriver/document.wsdl54
-rw-r--r--ruby_1_8_5/test/soap/wsdlDriver/echo_version.rb20
-rw-r--r--ruby_1_8_5/test/soap/wsdlDriver/simpletype.wsdl63
-rw-r--r--ruby_1_8_5/test/soap/wsdlDriver/test_calc.rb100
-rw-r--r--ruby_1_8_5/test/soap/wsdlDriver/test_document.rb78
-rw-r--r--ruby_1_8_5/test/soap/wsdlDriver/test_simpletype.rb87
8 files changed, 530 insertions, 0 deletions
diff --git a/ruby_1_8_5/test/soap/wsdlDriver/README.txt b/ruby_1_8_5/test/soap/wsdlDriver/README.txt
new file mode 100644
index 0000000000..b4d45a0486
--- /dev/null
+++ b/ruby_1_8_5/test/soap/wsdlDriver/README.txt
@@ -0,0 +1,2 @@
+echo_version.rb is generated by wsdl2ruby.rb;
+% wsdl2ruby.rb --wsdl simpletype.wsdl --classdef --force
diff --git a/ruby_1_8_5/test/soap/wsdlDriver/calc.wsdl b/ruby_1_8_5/test/soap/wsdlDriver/calc.wsdl
new file mode 100644
index 0000000000..694a01e87e
--- /dev/null
+++ b/ruby_1_8_5/test/soap/wsdlDriver/calc.wsdl
@@ -0,0 +1,126 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--generated by GLUE Standard 4.0.1 on Wed Mar 09 10:20:07 GMT-08:00
+2005-->
+<wsdl:definitions name='Calculator'
+targetNamespace='http://www.themindelectric.com/wsdl/Calculator/'
+ xmlns:tns='http://www.themindelectric.com/wsdl/Calculator/'
+ xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
+ xmlns:http='http://schemas.xmlsoap.org/wsdl/http/'
+ xmlns:mime='http://schemas.xmlsoap.org/wsdl/mime/'
+ xmlns:xsd='http://www.w3.org/2001/XMLSchema'
+ xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'
+ xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'
+ xmlns:tme='http://www.themindelectric.com/'>
+ <wsdl:message name='add0In'>
+ <wsdl:part name='x' type='xsd:float'/>
+ <wsdl:part name='y' type='xsd:float'/>
+ </wsdl:message>
+ <wsdl:message name='add0Out'>
+ <wsdl:part name='Result' type='xsd:float'/>
+ </wsdl:message>
+ <wsdl:message name='divide1In'>
+ <wsdl:part name='numerator' type='xsd:float'/>
+ <wsdl:part name='denominator' type='xsd:float'/>
+ </wsdl:message>
+ <wsdl:message name='divide1Out'>
+ <wsdl:part name='Result' type='xsd:float'/>
+ </wsdl:message>
+ <wsdl:message name='multiply2In'>
+ <wsdl:part name='x' type='xsd:float'/>
+ <wsdl:part name='y' type='xsd:float'/>
+ </wsdl:message>
+ <wsdl:message name='multiply2Out'>
+ <wsdl:part name='Result' type='xsd:float'/>
+ </wsdl:message>
+ <wsdl:message name='subtract3In'>
+ <wsdl:part name='x' type='xsd:float'/>
+ <wsdl:part name='y' type='xsd:float'/>
+ </wsdl:message>
+ <wsdl:message name='subtract3Out'>
+ <wsdl:part name='Result' type='xsd:float'/>
+ </wsdl:message>
+ <wsdl:portType name='ICalculator'>
+ <wsdl:operation name='add' parameterOrder='x y'>
+ <wsdl:input name='add0In' message='tns:add0In'/>
+ <wsdl:output name='add0Out' message='tns:add0Out'/>
+ </wsdl:operation>
+ <wsdl:operation name='divide' parameterOrder='numerator
+denominator'>
+ <wsdl:input name='divide1In' message='tns:divide1In'/>
+ <wsdl:output name='divide1Out' message='tns:divide1Out'/>
+ </wsdl:operation>
+ <wsdl:operation name='multiply' parameterOrder='x y'>
+ <wsdl:input name='multiply2In' message='tns:multiply2In'/>
+ <wsdl:output name='multiply2Out'
+message='tns:multiply2Out'/>
+ </wsdl:operation>
+ <wsdl:operation name='subtract' parameterOrder='x y'>
+ <wsdl:input name='subtract3In' message='tns:subtract3In'/>
+ <wsdl:output name='subtract3Out'
+message='tns:subtract3Out'/>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name='ICalculator' type='tns:ICalculator'>
+ <soap:binding style='rpc'
+transport='http://schemas.xmlsoap.org/soap/http'/>
+ <wsdl:operation name='add'>
+ <soap:operation soapAction='add' style='rpc'/>
+ <wsdl:input name='add0In'>
+ <soap:body use='encoded'
+namespace='http://www.fred.com'
+encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
+ </wsdl:input>
+ <wsdl:output name='add0Out'>
+ <soap:body use='encoded'
+namespace='http://www.fred.com'
+encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name='divide'>
+ <soap:operation soapAction='divide' style='rpc'/>
+ <wsdl:input name='divide1In'>
+ <soap:body use='encoded'
+namespace='http://www.fred.com'
+encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
+ </wsdl:input>
+ <wsdl:output name='divide1Out'>
+ <soap:body use='encoded'
+namespace='http://www.fred.com'
+encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name='multiply'>
+ <soap:operation soapAction='multiply' style='rpc'/>
+ <wsdl:input name='multiply2In'>
+ <soap:body use='encoded'
+namespace='http://www.fred.com'
+encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
+ </wsdl:input>
+ <wsdl:output name='multiply2Out'>
+ <soap:body use='encoded'
+namespace='http://www.fred.com'
+encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name='subtract'>
+ <soap:operation soapAction='subtract' style='rpc'/>
+ <wsdl:input name='subtract3In'>
+ <soap:body use='encoded'
+namespace='http://www.fred.com'
+encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
+ </wsdl:input>
+ <wsdl:output name='subtract3Out'>
+ <soap:body use='encoded'
+namespace='http://www.fred.com'
+encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name='Calculator'>
+ <wsdl:documentation>calculator service</wsdl:documentation>
+ <wsdl:port name='ICalculator' binding='tns:ICalculator'>
+ <soap:address
+location='http://ukulele:8080/calcapp/services/calculator'/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/ruby_1_8_5/test/soap/wsdlDriver/document.wsdl b/ruby_1_8_5/test/soap/wsdlDriver/document.wsdl
new file mode 100644
index 0000000000..5e9e74b9df
--- /dev/null
+++ b/ruby_1_8_5/test/soap/wsdlDriver/document.wsdl
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<definitions name="submit_service"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="urn:example.com:document"
+ targetNamespace="urn:example.com:document"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <xsd:schema targetNamespace="urn:example.com:document">
+ <xsd:element name="ruby">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element minOccurs="1" maxOccurs="1" name="myversion" type="tns:myversion"/>
+ <xsd:element minOccurs="0" maxOccurs="1" name="date" type="xsd:dateTime"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:simpleType name="myversion">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="1.6"/>
+ <xsd:enumeration value="1.8"/>
+ <xsd:enumeration value="1.9"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:schema>
+ </types>
+
+ <message name="submit_msg">
+ <part name="parameters" element="tns:ruby"/>
+ </message>
+
+ <portType name="submit_port_type">
+ <operation name="submit">
+ <input message="tns:submit_msg"/>
+ <output message="tns:submit_msg"/>
+ </operation>
+ </portType>
+
+ <binding name="submit_binding" type="tns:submit_port_type">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+ <operation name="submit">
+ <soap:operation soapAction="urn:example.com:document#submit" style="document"/>
+ <input><soap:body use="literal"/></input>
+ <output><soap:body use="literal"/></output>
+ </operation>
+ </binding>
+
+ <service name="submit_service">
+ <port name="submit_port" binding="tns:submit_binding">
+ <soap:address location="http://localhost:10080"/>
+ </port>
+ </service>
+</definitions>
diff --git a/ruby_1_8_5/test/soap/wsdlDriver/echo_version.rb b/ruby_1_8_5/test/soap/wsdlDriver/echo_version.rb
new file mode 100644
index 0000000000..7d76fb7587
--- /dev/null
+++ b/ruby_1_8_5/test/soap/wsdlDriver/echo_version.rb
@@ -0,0 +1,20 @@
+# urn:example.com:simpletype-rpc-type
+class Version_struct
+ @@schema_type = "version_struct"
+ @@schema_ns = "urn:example.com:simpletype-rpc-type"
+
+ attr_accessor :version
+ attr_accessor :msg
+
+ def initialize(version = nil, msg = nil)
+ @version = version
+ @msg = msg
+ end
+end
+
+# urn:example.com:simpletype-rpc-type
+module Versions
+ C_16 = "1.6"
+ C_18 = "1.8"
+ C_19 = "1.9"
+end
diff --git a/ruby_1_8_5/test/soap/wsdlDriver/simpletype.wsdl b/ruby_1_8_5/test/soap/wsdlDriver/simpletype.wsdl
new file mode 100644
index 0000000000..6781dda552
--- /dev/null
+++ b/ruby_1_8_5/test/soap/wsdlDriver/simpletype.wsdl
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<definitions name="echo_version"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="urn:example.com:simpletype-rpc"
+ xmlns:txd="urn:example.com:simpletype-rpc-type"
+ targetNamespace="urn:example.com:simpletype-rpc"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <xsd:schema targetNamespace="urn:example.com:simpletype-rpc-type">
+ <xsd:complexType name="version_struct">
+ <xsd:all>
+ <xsd:element name="myversion" type="txd:myversions" />
+ <xsd:element name="msg" type="xsd:string" />
+ </xsd:all>
+ </xsd:complexType>
+
+ <xsd:simpleType name="myversions">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="1.6"/>
+ <xsd:enumeration value="1.8"/>
+ <xsd:enumeration value="1.9"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:schema>
+ </types>
+
+ <message name="msg_version">
+ <part name="myversion" type="txd:myversions"/>
+ </message>
+
+ <message name="msg_version_struct">
+ <part name="return" type="txd:version_struct"/>
+ </message>
+
+ <portType name="echo_version_port_type">
+ <operation name="echo_version">
+ <input message="tns:msg_version"/>
+ <output message="tns:msg_version_struct"/>
+ </operation>
+ </portType>
+
+ <binding name="echo_version_binding" type="tns:echo_version_port_type">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
+ <operation name="echo_version">
+ <soap:operation soapAction="urn:example.com:simpletype-rpc"/>
+ <input>
+ <soap:body use="encoded" namespace="urn:example.com:simpletype-rpc"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="urn:example.com:simpletype-rpc"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+
+ <service name="echo_version_service">
+ <port name="echo_version_port" binding="tns:echo_version_binding">
+ <soap:address location="http://localhost:10080"/>
+ </port>
+ </service>
+</definitions>
diff --git a/ruby_1_8_5/test/soap/wsdlDriver/test_calc.rb b/ruby_1_8_5/test/soap/wsdlDriver/test_calc.rb
new file mode 100644
index 0000000000..d031f663a3
--- /dev/null
+++ b/ruby_1_8_5/test/soap/wsdlDriver/test_calc.rb
@@ -0,0 +1,100 @@
+require 'test/unit'
+require 'soap/rpc/httpserver'
+require 'soap/wsdlDriver'
+
+
+module SOAP
+
+
+class TestCalc < Test::Unit::TestCase
+ class Server < ::SOAP::RPC::HTTPServer
+ def on_init
+ add_method(self, 'add', 'x', 'y')
+ end
+
+ def add(x, y)
+ x.to_f + y.to_f
+ end
+ end
+
+ DIR = File.dirname(File.expand_path(__FILE__))
+ Port = 17171
+
+ def setup
+ setup_server
+ setup_client
+ end
+
+ def setup_server
+ @server = Server.new(
+ :BindAddress => "0.0.0.0",
+ :Port => Port,
+ :AccessLog => [],
+ :SOAPDefaultNamespace => 'http://www.fred.com'
+ )
+ @server.level = Logger::Severity::ERROR
+ @server_thread = start_server_thread(@server)
+ end
+
+ def setup_client
+ @wsdl = File.join(DIR, 'calc.wsdl')
+ end
+
+ def teardown
+ teardown_server
+ teardown_client
+ end
+
+ def teardown_server
+ @server.shutdown
+ @server_thread.kill
+ @server_thread.join
+ end
+
+ def teardown_client
+ @client.reset_stream if @client
+ end
+
+ def start_server_thread(server)
+ t = Thread.new {
+ Thread.current.abort_on_exception = true
+ server.start
+ }
+ t
+ end
+
+ def test_rpc_driver
+ @client = ::SOAP::WSDLDriverFactory.new(@wsdl).create_rpc_driver
+ @client.wiredump_dev = STDOUT if $DEBUG
+ @client.endpoint_url = "http://localhost:#{Port}/"
+ @client.generate_explicit_type = true
+ assert_equal(0.3, @client.add(0.1, 0.2))
+ @client.generate_explicit_type = false
+ assert_equal(0.3, @client.add(0.1, 0.2))
+ end
+
+ def test_old_driver
+ silent do
+ @client = ::SOAP::WSDLDriverFactory.new(@wsdl).create_driver
+ end
+ @client.wiredump_dev = STDOUT if $DEBUG
+ @client.endpoint_url = "http://localhost:#{Port}/"
+ @client.generate_explicit_type = true
+ assert_equal(0.3, @client.add(0.1, 0.2))
+ @client.generate_explicit_type = false
+ assert_equal(0.3, @client.add(0.1, 0.2))
+ end
+
+ def silent
+ back = $VERBOSE
+ $VERBOSE = nil
+ begin
+ yield
+ ensure
+ $VERBOSE = back
+ end
+ end
+end
+
+
+end
diff --git a/ruby_1_8_5/test/soap/wsdlDriver/test_document.rb b/ruby_1_8_5/test/soap/wsdlDriver/test_document.rb
new file mode 100644
index 0000000000..634b827aae
--- /dev/null
+++ b/ruby_1_8_5/test/soap/wsdlDriver/test_document.rb
@@ -0,0 +1,78 @@
+require 'test/unit'
+require 'soap/rpc/standaloneServer'
+require 'soap/wsdlDriver'
+
+
+module SOAP
+
+
+class TestDocument < Test::Unit::TestCase
+ Namespace = 'urn:example.com:document'
+
+ class Server < ::SOAP::RPC::StandaloneServer
+ def on_init
+ add_document_method(self, 'urn:example.com:document#submit', 'submit', XSD::QName.new(Namespace, 'ruby'), XSD::QName.new(Namespace, 'ruby'))
+ end
+
+ def submit(ruby)
+ ruby
+ end
+ end
+
+ DIR = File.dirname(File.expand_path(__FILE__))
+
+ Port = 17171
+
+ def setup
+ setup_server
+ setup_client
+ end
+
+ def setup_server
+ @server = Server.new('Test', Namespace, '0.0.0.0', Port)
+ @server.level = Logger::Severity::ERROR
+ @server_thread = start_server_thread(@server)
+ end
+
+ def setup_client
+ wsdl = File.join(DIR, 'document.wsdl')
+ @client = ::SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
+ @client.endpoint_url = "http://localhost:#{Port}/"
+ @client.wiredump_dev = STDOUT if $DEBUG
+ end
+
+ def teardown
+ teardown_server
+ teardown_client
+ end
+
+ def teardown_server
+ @server.shutdown
+ @server_thread.kill
+ @server_thread.join
+ end
+
+ def teardown_client
+ @client.reset_stream
+ end
+
+ def start_server_thread(server)
+ t = Thread.new {
+ Thread.current.abort_on_exception = true
+ server.start
+ }
+ t
+ end
+
+ def test_document
+ msg = {'myversion' => "1.9", 'date' => "2004-01-01T00:00:00Z"}
+ reply_msg = @client.submit(msg)
+ assert_equal('1.9', reply_msg.myversion)
+ assert_equal('1.9', reply_msg['myversion'])
+ assert_equal('2004-01-01T00:00:00Z', reply_msg.date)
+ assert_equal('2004-01-01T00:00:00Z', reply_msg['date'])
+ end
+end
+
+
+end
diff --git a/ruby_1_8_5/test/soap/wsdlDriver/test_simpletype.rb b/ruby_1_8_5/test/soap/wsdlDriver/test_simpletype.rb
new file mode 100644
index 0000000000..76b3a32df7
--- /dev/null
+++ b/ruby_1_8_5/test/soap/wsdlDriver/test_simpletype.rb
@@ -0,0 +1,87 @@
+require 'test/unit'
+require 'soap/rpc/httpserver'
+require 'soap/wsdlDriver'
+
+
+module SOAP
+
+
+class TestSimpleType < Test::Unit::TestCase
+ class Server < ::SOAP::RPC::HTTPServer
+ def on_init
+ add_method(self, 'echo_version', 'version')
+ end
+
+ def echo_version(version)
+ # "2.0" is out of range.
+ Version_struct.new(version || "2.0", 'checked')
+ end
+ end
+
+ DIR = File.dirname(File.expand_path(__FILE__))
+ require File.join(DIR, 'echo_version')
+
+ Port = 17171
+
+ def setup
+ setup_server
+ setup_client
+ end
+
+ def setup_server
+ @server = Server.new(
+ :BindAddress => "0.0.0.0",
+ :Port => Port,
+ :AccessLog => [],
+ :SOAPDefaultNamespace => "urn:example.com:simpletype-rpc"
+ )
+ @server.level = Logger::Severity::ERROR
+ @server_thread = start_server_thread(@server)
+ end
+
+ def setup_client
+ wsdl = File.join(DIR, 'simpletype.wsdl')
+ @client = ::SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
+ @client.wiredump_dev = STDOUT if $DEBUG
+ @client.endpoint_url = "http://localhost:#{Port}/"
+ @client.generate_explicit_type = false
+ end
+
+ def teardown
+ teardown_server
+ teardown_client
+ end
+
+ def teardown_server
+ @server.shutdown
+ @server_thread.kill
+ @server_thread.join
+ end
+
+ def teardown_client
+ @client.reset_stream
+ end
+
+ def start_server_thread(server)
+ t = Thread.new {
+ Thread.current.abort_on_exception = true
+ server.start
+ }
+ t
+ end
+
+ def test_ping
+ result = @client.echo_version("1.9")
+ assert_equal("1.9", result.version)
+ assert_equal("checked", result.msg)
+ assert_raise(XSD::ValueSpaceError) do
+ @client.echo_version("2.0")
+ end
+ assert_raise(XSD::ValueSpaceError) do
+ @client.echo_version(nil) # nil => "2.0" => out of range
+ end
+ end
+end
+
+
+end