diff options
author | (no author) <(no author)@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-07-03 15:38:36 +0000 |
---|---|---|
committer | (no author) <(no author)@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-07-03 15:38:36 +0000 |
commit | 5548c7bff292de16abb9f6e8d9cc4999e0b22c71 (patch) | |
tree | ce6b571d063d031d1b5cba3ba7671ca138405a3a /test/wsdl | |
parent | ab31bf0d4d44942e46d98d8848b788ac6df32a46 (diff) |
This commit was manufactured by cvs2svn to create branch 'ruby_1_8'.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/wsdl')
-rw-r--r-- | test/wsdl/multiplefault.wsdl | 68 | ||||
-rw-r--r-- | test/wsdl/simpletype/simpletype.wsdl | 67 | ||||
-rw-r--r-- | test/wsdl/simpletype/test_simpletype.rb | 81 | ||||
-rw-r--r-- | test/wsdl/test_multiplefault.rb | 39 |
4 files changed, 255 insertions, 0 deletions
diff --git a/test/wsdl/multiplefault.wsdl b/test/wsdl/multiplefault.wsdl new file mode 100644 index 0000000000..2d928b60b0 --- /dev/null +++ b/test/wsdl/multiplefault.wsdl @@ -0,0 +1,68 @@ +<?xml version="1.0"?> +<definitions name="MultipleFaultTest" + targetNamespace="urn:jp.gr.jin.rrr.example.ele" + xmlns:tns="urn:jp.gr.jin.rrr.example.ele" + xmlns:typens="urn:jp.gr.jin.rrr.example.datatypes" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" + xmlns="http://schemas.xmlsoap.org/wsdl/"> + + <types> + <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" + targetNamespace="urn:jp.gr.jin.rrr.example.datatypes"> + <xsd:complexType name="AuthenticationError"> + <all> + <element name="message" type="xsd:string" /> + <element name="backtrace" type="xoapenc:Array" /> + </all> + </xsd:complexType> + <xsd:complexType name="AuthorizationError"> + <all> + <element name="message" type="xsd:string" /> + <element name="backtrace" type="xoapenc:Array" /> + </all> + </xsd:complexType> + </xsd:schema> + </types> + + <message name="inputmsg"/> + <message name="outputmsg"/> + <message name="faultmsg1" > + <part name="exception" type="typens:AuthenticationError" /> + </message> + <message name="faultmsg2" > + <part name="exception" type="typens:AuthorizationError" /> + </message> + + <portType name="MultipleFaultPortType"> + <operation name="myoperation"> + <input message="tns:inputmsg"/> + <output message="tns:outputmsg"/> + <fault message="tns:faultmsg1"/> + <fault message="tns:faultmsg2"/> + </operation> + </portType> + + <binding name="MultipleFaultBinding" type="tns:MultipleFaultPortType"> + <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> + <operation name="myoperation"> + <soap:operation soapAction="urn:jp.gr.jin.rrr.example.ele"/> + <input> + <soap:body use="encoded" namespace="urn:jp.gr.jin.rrr.example.ele" + encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> + </input> + <output> + <soap:body use="encoded" namespace="urn:jp.gr.jin.rrr.example.ele" + encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> + </output> + </operation> + </binding> + + <service name="MultipleFaultService"> + <port name="MultipleFaultPortType" binding="tns:MultipleFaultBinding"> + <soap:address location="http://localhost:17171/"/> + </port> + </service> +</definitions> diff --git a/test/wsdl/simpletype/simpletype.wsdl b/test/wsdl/simpletype/simpletype.wsdl new file mode 100644 index 0000000000..ec3266fc14 --- /dev/null +++ b/test/wsdl/simpletype/simpletype.wsdl @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="utf-8"?> +<definitions name="ping_service" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:tns="urn:example.com:simpletype" + targetNamespace="urn:example.com:simpletype" + xmlns="http://schemas.xmlsoap.org/wsdl/"> + <types> + <xsd:schema targetNamespace="urn:example.com:simpletype"> + <xsd:element name="ruby"> + <xsd:complexType> + <xsd:sequence> + <xsd:element minOccurs="1" maxOccurs="1" name="version" type="tns:version"/> + <xsd:element minOccurs="0" maxOccurs="1" name="date" type="xsd:dateTime"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + <xsd:simpleType name="version"> + <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="ping_in"> + <part name="parameters" element="tns:ruby"/> + </message> + + <message name="ping_out"> + <part name="parameters" element="xsd:string"/> + </message> + + <message name="versionmsg"> + <part name="version" element="tns:version"/> + </message> + + <portType name="ping_port_type"> + <operation name="ping"> + <input message="tns:ping_in"/> + <output message="tns:ping_out"/> + </operation> + + <operation name="echo_version"> + <input message="tns:versionmsg"/> + <output message="tns:versionmsg"/> + </operation> + </portType> + + <binding name="ping_binding" type="tns:ping_port_type"> + <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> + <operation name="ping"> + <soap:operation soapAction="urn:example.com:simpletype" style="document"/> + <input><soap:body use="literal"/></input> + <output><soap:body use="literal"/></output> + </operation> + </binding> + + <service name="ping_service"> + <port name="ping_port" binding="tns:ping_binding"> + <soap:address location="http://localhost:10080"/> + </port> + </service> +</definitions> diff --git a/test/wsdl/simpletype/test_simpletype.rb b/test/wsdl/simpletype/test_simpletype.rb new file mode 100644 index 0000000000..a46bf5dd78 --- /dev/null +++ b/test/wsdl/simpletype/test_simpletype.rb @@ -0,0 +1,81 @@ +require 'test/unit' +require 'soap/rpc/standaloneServer' +require 'soap/wsdlDriver' + + +module WSDL +module SimpleType + + +class TestSimpleType < Test::Unit::TestCase + class Server < ::SOAP::RPC::StandaloneServer + def on_init + add_method(self, 'ruby', 'version', 'date') + end + + def ruby(version, date) + "#{version} (#{date})" + 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', "urn:example.com:simpletype", '0.0.0.0', Port) + @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_driver + @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 + } + while server.status != :Running + sleep 0.1 + unless t.alive? + t.join + raise + end + end + t + end + + def test_ping + header, body = @client.ping(nil, {:version => "1.9", :date => "2004-01-01T00:00:00Z"}) + assert_equal("1.9 (2004-01-01T00:00:00Z)", body) + end +end + + +end +end diff --git a/test/wsdl/test_multiplefault.rb b/test/wsdl/test_multiplefault.rb new file mode 100644 index 0000000000..7004297dc9 --- /dev/null +++ b/test/wsdl/test_multiplefault.rb @@ -0,0 +1,39 @@ +require 'test/unit' +require 'wsdl/parser' +require 'wsdl/soap/classDefCreator' + + +module WSDL + + +class TestMultipleFault < Test::Unit::TestCase + def self.setup(filename) + @@filename = filename + end + + def test_multiplefault + @wsdl = WSDL::Parser.new.parse(File.open(@@filename) { |f| f.read }) + classdefstr = WSDL::SOAP::ClassDefCreator.new(@wsdl).dump + yield_eval_binding(classdefstr) do |b| + assert_equal( + WSDL::TestMultipleFault::AuthenticationError, + eval("AuthenticationError", b) + ) + assert_equal( + WSDL::TestMultipleFault::AuthorizationError, + eval("AuthorizationError", b) + ) + end + end + + def yield_eval_binding(evaled) + b = binding + eval(evaled, b) + yield(b) + end +end + +TestMultipleFault.setup(File.join(File.dirname(__FILE__), 'multiplefault.wsdl')) + + +end |