* failed to add in the previous commit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5489 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
290034fde8
commit
47d0703ee5
103
test/wsdl/soap/soapbodyparts.wsdl
Normal file
103
test/wsdl/soap/soapbodyparts.wsdl
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<definitions
|
||||||
|
name="soapbodyparts"
|
||||||
|
targetNamespace="urn:www.example.com:soapbodyparts:v1"
|
||||||
|
xmlns:tns="urn:www.example.com:soapbodyparts:v1"
|
||||||
|
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||||
|
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||||
|
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
|
||||||
|
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
|
||||||
|
|
||||||
|
<types>
|
||||||
|
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||||
|
targetNamespace="urn:www.example.com:soapbodyparts:v1">
|
||||||
|
<import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
|
||||||
|
<complexType name="StringArray">
|
||||||
|
<complexContent>
|
||||||
|
<restriction base="soapenc:Array">
|
||||||
|
<attribute ref="soapenc:arrayType" wsdl:arrayType="string[]"/>
|
||||||
|
</restriction>
|
||||||
|
</complexContent>
|
||||||
|
</complexType>
|
||||||
|
</schema>
|
||||||
|
</types>
|
||||||
|
|
||||||
|
<message name="fooRequest">
|
||||||
|
<part name="param1" type="xsd:string"/>
|
||||||
|
<part name="param2" type="xsd:string"/>
|
||||||
|
<part name="param3" type="xsd:string"/>
|
||||||
|
</message>
|
||||||
|
|
||||||
|
<message name="fooResponse">
|
||||||
|
<part name="return" type="tns:StringArray"/>
|
||||||
|
</message>
|
||||||
|
|
||||||
|
<portType name="FooServicePortType">
|
||||||
|
<operation name="foo"
|
||||||
|
parameterOrder="param3 param2 param1">
|
||||||
|
<input message="tns:fooRequest"/>
|
||||||
|
<output message="tns:fooResponse"/>
|
||||||
|
</operation>
|
||||||
|
<operation name="bar"
|
||||||
|
parameterOrder="param1 param2 param3">
|
||||||
|
<input message="tns:fooRequest"/>
|
||||||
|
<output message="tns:fooResponse"/>
|
||||||
|
</operation>
|
||||||
|
<operation name="baz">
|
||||||
|
<input message="tns:fooRequest"/>
|
||||||
|
<output message="tns:fooResponse"/>
|
||||||
|
</operation>
|
||||||
|
</portType>
|
||||||
|
|
||||||
|
<binding name="FooServicePortBinding" type="tns:FooServicePortType">
|
||||||
|
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||||
|
<operation name="foo">
|
||||||
|
<soap:operation soapAction=""/>
|
||||||
|
<input>
|
||||||
|
<soap:body use="encoded"
|
||||||
|
parts="param1 param3"
|
||||||
|
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
|
||||||
|
namespace="urn:www.example.com:soapbodyparts:v1"/>
|
||||||
|
</input>
|
||||||
|
<output>
|
||||||
|
<soap:body use="encoded"
|
||||||
|
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
|
||||||
|
namespace="urn:www.example.com:soapbodyparts:v1"/>
|
||||||
|
</output>
|
||||||
|
</operation>
|
||||||
|
<operation name="bar">
|
||||||
|
<soap:operation soapAction=""/>
|
||||||
|
<input>
|
||||||
|
<soap:body use="encoded"
|
||||||
|
parts="param3 param2"
|
||||||
|
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
|
||||||
|
namespace="urn:www.example.com:soapbodyparts:v1"/>
|
||||||
|
</input>
|
||||||
|
<output>
|
||||||
|
<soap:body use="encoded"
|
||||||
|
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
|
||||||
|
namespace="urn:www.example.com:soapbodyparts:v1"/>
|
||||||
|
</output>
|
||||||
|
</operation>
|
||||||
|
<operation name="baz">
|
||||||
|
<soap:operation soapAction=""/>
|
||||||
|
<input>
|
||||||
|
<soap:body use="encoded"
|
||||||
|
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
|
||||||
|
namespace="urn:www.example.com:soapbodyparts:v1"/>
|
||||||
|
</input>
|
||||||
|
<output>
|
||||||
|
<soap:body use="encoded"
|
||||||
|
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
|
||||||
|
namespace="urn:www.example.com:soapbodyparts:v1"/>
|
||||||
|
</output>
|
||||||
|
</operation>
|
||||||
|
</binding>
|
||||||
|
|
||||||
|
<service name="FooService">
|
||||||
|
<port name="FooServicePort" binding="tns:FooServicePortBinding">
|
||||||
|
<soap:address location="http://raa.ruby-lang.org/soap/1.0.2/"/>
|
||||||
|
</port>
|
||||||
|
</service>
|
||||||
|
</definitions>
|
86
test/wsdl/soap/test_soapbodyparts.rb
Normal file
86
test/wsdl/soap/test_soapbodyparts.rb
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
require 'test/unit'
|
||||||
|
require 'soap/rpc/standaloneServer'
|
||||||
|
require 'soap/wsdlDriver'
|
||||||
|
|
||||||
|
|
||||||
|
module WSDL
|
||||||
|
module SOAP
|
||||||
|
|
||||||
|
|
||||||
|
class TestSOAPBodyParts < Test::Unit::TestCase
|
||||||
|
class Server < ::SOAP::RPC::StandaloneServer
|
||||||
|
def on_init
|
||||||
|
add_method(self, 'foo', 'p1', 'p2')
|
||||||
|
add_method(self, 'bar', 'p1', 'p2')
|
||||||
|
add_method(self, 'baz', 'p1', 'p2', 'p3')
|
||||||
|
end
|
||||||
|
|
||||||
|
def foo(p1, p2)
|
||||||
|
[p1, p2]
|
||||||
|
end
|
||||||
|
|
||||||
|
alias bar foo
|
||||||
|
|
||||||
|
def baz(p1, p2, p3)
|
||||||
|
[p1, p2, p3]
|
||||||
|
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:www.example.com:soapbodyparts:v1", '0.0.0.0', Port)
|
||||||
|
@server.level = Logger::Severity::ERROR
|
||||||
|
@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
|
||||||
|
end
|
||||||
|
|
||||||
|
def setup_client
|
||||||
|
wsdl = File.join(DIR, 'soapbodyparts.wsdl')
|
||||||
|
@client = ::SOAP::WSDLDriverFactory.new(wsdl).create_driver
|
||||||
|
@client.endpoint_url = "http://localhost:#{Port}/"
|
||||||
|
@client.wiredump_dev = STDERR if $DEBUG
|
||||||
|
end
|
||||||
|
|
||||||
|
def teardown
|
||||||
|
teardown_server
|
||||||
|
teardown_client
|
||||||
|
end
|
||||||
|
|
||||||
|
def teardown_server
|
||||||
|
@server.shutdown
|
||||||
|
@t.kill
|
||||||
|
@t.join
|
||||||
|
end
|
||||||
|
|
||||||
|
def teardown_client
|
||||||
|
@client.reset_stream
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_soapbodyparts
|
||||||
|
assert_equal(["2", "1"], @client.foo("1", "2"))
|
||||||
|
assert_equal(["1", "2"], @client.foo("2", "1"))
|
||||||
|
assert_equal(["2", "3"], @client.bar("2", "3"))
|
||||||
|
assert_equal(["1", "2", "3"], @client.baz("1", "2", "3"))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user