diff options
author | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-08-29 04:06:12 +0000 |
---|---|---|
committer | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-08-29 04:06:12 +0000 |
commit | 11dbedfaad4a9a9521ece2198a8dc491678b1902 (patch) | |
tree | 4806dc0ff0c3827ecc40921838c4507340cfdb3a /ruby_1_8_6/test/wsdl/datetime | |
parent | 29e8d8b439b34c2a394407dc598fc01d14be0c20 (diff) |
add tag v1_8_6_5001v1_8_6_5001
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_6_5001@13304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby_1_8_6/test/wsdl/datetime')
-rw-r--r-- | ruby_1_8_6/test/wsdl/datetime/DatetimeService.rb | 44 | ||||
-rw-r--r-- | ruby_1_8_6/test/wsdl/datetime/datetime.rb | 0 | ||||
-rw-r--r-- | ruby_1_8_6/test/wsdl/datetime/datetime.wsdl | 45 | ||||
-rw-r--r-- | ruby_1_8_6/test/wsdl/datetime/datetimeServant.rb | 21 | ||||
-rw-r--r-- | ruby_1_8_6/test/wsdl/datetime/test_datetime.rb | 82 |
5 files changed, 192 insertions, 0 deletions
diff --git a/ruby_1_8_6/test/wsdl/datetime/DatetimeService.rb b/ruby_1_8_6/test/wsdl/datetime/DatetimeService.rb new file mode 100644 index 0000000000..800e06d66f --- /dev/null +++ b/ruby_1_8_6/test/wsdl/datetime/DatetimeService.rb @@ -0,0 +1,44 @@ +#!/usr/bin/env ruby +require 'datetimeServant.rb' + +require 'soap/rpc/standaloneServer' +require 'soap/mapping/registry' + +class DatetimePortType + MappingRegistry = ::SOAP::Mapping::Registry.new + + Methods = [ + ["now", "now", + [ + ["in", "now", [::SOAP::SOAPDateTime]], + ["retval", "now", [::SOAP::SOAPDateTime]] + ], + "", "urn:jp.gr.jin.rrr.example.datetime", :rpc + ] + ] +end + +class DatetimePortTypeApp < ::SOAP::RPC::StandaloneServer + def initialize(*arg) + super(*arg) + servant = DatetimePortType.new + DatetimePortType::Methods.each do |name_as, name, param_def, soapaction, namespace, style| + if style == :document + @router.add_document_operation(servant, soapaction, name, param_def) + else + qname = XSD::QName.new(namespace, name_as) + @router.add_rpc_operation(servant, qname, soapaction, name, param_def) + end + end + self.mapping_registry = DatetimePortType::MappingRegistry + end +end + +if $0 == __FILE__ + # Change listen port. + server = DatetimePortTypeApp.new('app', nil, '0.0.0.0', 10080) + trap(:INT) do + server.shutdown + end + server.start +end diff --git a/ruby_1_8_6/test/wsdl/datetime/datetime.rb b/ruby_1_8_6/test/wsdl/datetime/datetime.rb new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/ruby_1_8_6/test/wsdl/datetime/datetime.rb diff --git a/ruby_1_8_6/test/wsdl/datetime/datetime.wsdl b/ruby_1_8_6/test/wsdl/datetime/datetime.wsdl new file mode 100644 index 0000000000..4998dc48d6 --- /dev/null +++ b/ruby_1_8_6/test/wsdl/datetime/datetime.wsdl @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8"?> +<wsdl:definitions name = "datetime" + targetNamespace="urn:jp.gr.jin.rrr.example.datetime" + xmlns:tns="urn:jp.gr.jin.rrr.example.datetime" + xmlns="http://schemas.xmlsoap.org/wsdl/" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + + <wsdl:message name="nowRequest"> + <wsdl:part name="now" type="xsd:dateTime"/> + </wsdl:message> + + <wsdl:message name="nowResponse"> + <wsdl:part name="now" type="xsd:dateTime"/> + </wsdl:message> + + <wsdl:portType name="DatetimePortType"> + <wsdl:operation name="now"> + <wsdl:input message="tns:nowRequest" name="nowRequest"/> + <wsdl:output message="tns:nowResponse" name="nowResponse"/> + </wsdl:operation> + </wsdl:portType> + + <wsdl:binding name="DatetimeBinding" type="tns:DatetimePortType"> + <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> + <wsdl:operation name="now"> + <soap:operation soapAction=""/> + <wsdl:input name="nowRequest"> + <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" + namespace="urn:jp.gr.jin.rrr.example.datetime" use="encoded"/> + </wsdl:input> + <wsdl:output name="nowResponse"> + <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" + namespace="urn:jp.gr.jin.rrr.example.datetime" use="encoded"/> + </wsdl:output> + </wsdl:operation> + </wsdl:binding> + + <wsdl:service name="DatetimeService"> + <wsdl:port binding="tns:DatetimeBinding" name="DatetimePort"> + <soap:address location="http://localhost:10080/"/> + </wsdl:port> + </wsdl:service> +</wsdl:definitions> diff --git a/ruby_1_8_6/test/wsdl/datetime/datetimeServant.rb b/ruby_1_8_6/test/wsdl/datetime/datetimeServant.rb new file mode 100644 index 0000000000..14145c42e5 --- /dev/null +++ b/ruby_1_8_6/test/wsdl/datetime/datetimeServant.rb @@ -0,0 +1,21 @@ +require 'datetime.rb' + +class DatetimePortType + # SYNOPSIS + # now(now) + # + # ARGS + # now - {http://www.w3.org/2001/XMLSchema}dateTime + # + # RETURNS + # now - {http://www.w3.org/2001/XMLSchema}dateTime + # + # RAISES + # (undefined) + # + def now(now) + #raise NotImplementedError.new + now + 1 + end +end + diff --git a/ruby_1_8_6/test/wsdl/datetime/test_datetime.rb b/ruby_1_8_6/test/wsdl/datetime/test_datetime.rb new file mode 100644 index 0000000000..7652318205 --- /dev/null +++ b/ruby_1_8_6/test/wsdl/datetime/test_datetime.rb @@ -0,0 +1,82 @@ +require 'test/unit' +require 'soap/wsdlDriver' +require 'DatetimeService.rb' + + +module WSDL +module Datetime + + +class TestDatetime < Test::Unit::TestCase + DIR = File.dirname(File.expand_path(__FILE__)) + + Port = 17171 + + def setup + setup_server + setup_client + end + + def setup_server + @server = DatetimePortTypeApp.new('Datetime server', nil, '0.0.0.0', Port) + @server.level = Logger::Severity::ERROR + @t = Thread.new { + Thread.current.abort_on_exception = true + @server.start + } + end + + def setup_client + wsdl = File.join(DIR, 'datetime.wsdl') + @client = ::SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver + @client.endpoint_url = "http://localhost:#{Port}/" + @client.generate_explicit_type = true + @client.wiredump_dev = STDOUT 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_datetime + d = DateTime.now + d1 = d + 1 + d2 = @client.now(d) + assert_equal(d1.year, d2.year) + assert_equal(d1.month, d2.month) + assert_equal(d1.day, d2.day) + assert_equal(d1.hour, d2.hour) + assert_equal(d1.min, d2.min) + assert_equal(d1.sec, d2.sec) + assert_equal(d1.sec, d2.sec) + end + + def test_time + d = DateTime.now + t = Time.gm(d.year, d.month, d.day, d.hour, d.min, d.sec) + d1 = d + 1 + d2 = @client.now(t) + assert_equal(d1.year, d2.year) + assert_equal(d1.month, d2.month) + assert_equal(d1.day, d2.day) + assert_equal(d1.hour, d2.hour) + assert_equal(d1.min, d2.min) + assert_equal(d1.sec, d2.sec) + assert_equal(d1.sec, d2.sec) + end +end + + +end +end |