diff options
author | nahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-09-24 15:18:44 +0000 |
---|---|---|
committer | nahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-09-24 15:18:44 +0000 |
commit | db9445103c082a306ba085f7677da02ea94b8841 (patch) | |
tree | a311d59f031ae5def87f68be71ed1f58abadc031 /test/soap/calc | |
parent | 8c2fb77787d1f20b4c19c9c52552856c339b86e9 (diff) |
* lib/soap/* (29 files): SOAP4R added.
* lib/wsdl/* (42 files): WSDL4R added.
* lib/xsd/* (12 files): XSD4R added.
* test/soap/* (16 files): added.
* test/wsdl/* (2 files): added.
* test/xsd/* (3 files): added.
* sample/soap/* (27 files): added.
* sample/wsdl/* (13 files): added.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4591 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/soap/calc')
-rw-r--r-- | test/soap/calc/calc.rb | 17 | ||||
-rw-r--r-- | test/soap/calc/calc2.rb | 29 | ||||
-rw-r--r-- | test/soap/calc/server.cgi | 15 | ||||
-rw-r--r-- | test/soap/calc/server.rb | 17 | ||||
-rw-r--r-- | test/soap/calc/server2.rb | 20 | ||||
-rw-r--r-- | test/soap/calc/test_calc.rb | 41 | ||||
-rw-r--r-- | test/soap/calc/test_calc2.rb | 43 | ||||
-rw-r--r-- | test/soap/calc/test_calc_cgi.rb | 42 |
8 files changed, 224 insertions, 0 deletions
diff --git a/test/soap/calc/calc.rb b/test/soap/calc/calc.rb new file mode 100644 index 0000000000..6bc78803b3 --- /dev/null +++ b/test/soap/calc/calc.rb @@ -0,0 +1,17 @@ +module CalcService + def self.add(lhs, rhs) + lhs + rhs + end + + def self.sub(lhs, rhs) + lhs - rhs + end + + def self.multi(lhs, rhs) + lhs * rhs + end + + def self.div(lhs, rhs) + lhs / rhs + end +end diff --git a/test/soap/calc/calc2.rb b/test/soap/calc/calc2.rb new file mode 100644 index 0000000000..e9cf6bbca7 --- /dev/null +++ b/test/soap/calc/calc2.rb @@ -0,0 +1,29 @@ +class CalcService2 + def initialize(value = 0) + @value = value + end + + def set(value) + @value = value + end + + def get + @value + end + + def +(rhs) + @value + rhs + end + + def -(rhs) + @value - rhs + end + + def *(rhs) + @value * rhs + end + + def /(rhs) + @value / rhs + end +end diff --git a/test/soap/calc/server.cgi b/test/soap/calc/server.cgi new file mode 100644 index 0000000000..c4fa687550 --- /dev/null +++ b/test/soap/calc/server.cgi @@ -0,0 +1,15 @@ +#!/usr/bin/env ruby + +require 'soap/rpc/cgistub' + +class CalcServer < SOAP::RPC::CGIStub + def initialize(*arg) + super + + require 'calc' + servant = CalcService + add_servant(servant, 'http://tempuri.org/calcService') + end +end + +status = CalcServer.new('CalcServer', nil).start diff --git a/test/soap/calc/server.rb b/test/soap/calc/server.rb new file mode 100644 index 0000000000..12a3968b5a --- /dev/null +++ b/test/soap/calc/server.rb @@ -0,0 +1,17 @@ +#!/usr/bin/env ruby + +require 'soap/rpc/standaloneServer' +require 'calc' + +class CalcServer < SOAP::RPC::StandaloneServer + def initialize(*arg) + super + + servant = CalcService + add_servant(servant, 'http://tempuri.org/calcService') + end +end + +if $0 == __FILE__ + status = CalcServer.new('CalcServer', nil, '0.0.0.0', 7000).start +end diff --git a/test/soap/calc/server2.rb b/test/soap/calc/server2.rb new file mode 100644 index 0000000000..735721de64 --- /dev/null +++ b/test/soap/calc/server2.rb @@ -0,0 +1,20 @@ +#!/usr/bin/env ruby + +require 'soap/rpc/standaloneServer' +require 'calc2' + +class CalcServer2 < SOAP::RPC::StandaloneServer + def on_init + servant = CalcService2.new + add_method(servant, 'set', 'newValue') + add_method(servant, 'get') + add_method_as(servant, '+', 'add', 'lhs') + add_method_as(servant, '-', 'sub', 'lhs') + add_method_as(servant, '*', 'multi', 'lhs') + add_method_as(servant, '/', 'div', 'lhs') + end +end + +if $0 == __FILE__ + status = CalcServer2.new('CalcServer', 'http://tempuri.org/calcService', '0.0.0.0', 7000).start +end diff --git a/test/soap/calc/test_calc.rb b/test/soap/calc/test_calc.rb new file mode 100644 index 0000000000..191295bac0 --- /dev/null +++ b/test/soap/calc/test_calc.rb @@ -0,0 +1,41 @@ +require 'test/unit' +require 'soap/rpc/driver' + +dir = File.dirname(__FILE__) +$:.push(dir) +require 'server.rb' +$:.delete(dir) + +class TestCalc < Test::Unit::TestCase + def setup + @server = CalcServer.new(self.class.name, nil, '0.0.0.0', 7000) + @t = Thread.new { + @server.start + } + while @server.server.status != :Running + sleep 0.1 + end + @calc = SOAP::RPC::Driver.new('http://localhost:7000/', 'http://tempuri.org/calcService') + @calc.add_method('add', 'lhs', 'rhs') + @calc.add_method('sub', 'lhs', 'rhs') + @calc.add_method('multi', 'lhs', 'rhs') + @calc.add_method('div', 'lhs', 'rhs') + end + + def teardown + @server.server.shutdown + @t.kill + end + + def test_calc + assert_equal(3, @calc.add(1, 2)) + assert_equal(-1.1, @calc.sub(1.1, 2.2)) + assert_equal(2.42, @calc.multi(1.1, 2.2)) + assert_equal(2, @calc.div(5, 2)) + assert_equal(2.5, @calc.div(5.0, 2)) + assert_equal(1.0/0.0, @calc.div(1.1, 0)) + assert_raises(ZeroDivisionError) do + @calc.div(1, 0) + end + end +end diff --git a/test/soap/calc/test_calc2.rb b/test/soap/calc/test_calc2.rb new file mode 100644 index 0000000000..05a43b60ec --- /dev/null +++ b/test/soap/calc/test_calc2.rb @@ -0,0 +1,43 @@ +require 'test/unit' +require 'soap/rpc/driver' + +dir = File.dirname(__FILE__) +$:.push(dir) +require 'server2.rb' +$:.delete(dir) + +class TestCalc2 < Test::Unit::TestCase + def setup + @server = CalcServer2.new('CalcServer', 'http://tempuri.org/calcService', '0.0.0.0', 7000) + @t = Thread.new { + @server.start + } + while @server.server.status != :Running + sleep 0.1 + end + @var = SOAP::RPC::Driver.new('http://localhost:7000/', 'http://tempuri.org/calcService') + @var.add_method('set', 'newValue') + @var.add_method('get') + @var.add_method_as('+', 'add', 'rhs') + @var.add_method_as('-', 'sub', 'rhs') + @var.add_method_as('*', 'multi', 'rhs') + @var.add_method_as('/', 'div', 'rhs') + end + + def teardown + @server.server.shutdown + @t.kill + end + + def test_calc2 + assert_equal(1, @var.set(1)) + assert_equal(3, @var + 2) + assert_equal(-1.2, @var - 2.2) + assert_equal(2.2, @var * 2.2) + assert_equal(0, @var / 2) + assert_equal(0.5, @var / 2.0) + assert_raises(ZeroDivisionError) do + @var / 0 + end + end +end diff --git a/test/soap/calc/test_calc_cgi.rb b/test/soap/calc/test_calc_cgi.rb new file mode 100644 index 0000000000..682356e525 --- /dev/null +++ b/test/soap/calc/test_calc_cgi.rb @@ -0,0 +1,42 @@ +require 'test/unit' +require 'soap/rpc/driver' +require 'webrick' + +class TestCalcCGI < Test::Unit::TestCase + def setup + @server = WEBrick::HTTPServer.new( + :BindAddress => "0.0.0.0", + :Port => 8808, + :DocumentRoot => File.dirname(File.expand_path(__FILE__)), + :CGIPathEnv => ENV['PATH'] + ) + @t = Thread.new { + @server.start + } + while @server.status != :Running + sleep 0.1 + end + @calc = SOAP::RPC::Driver.new('http://localhost:8808/server.cgi', 'http://tempuri.org/calcService') + @calc.add_method('add', 'lhs', 'rhs') + @calc.add_method('sub', 'lhs', 'rhs') + @calc.add_method('multi', 'lhs', 'rhs') + @calc.add_method('div', 'lhs', 'rhs') + end + + def teardown + @server.shutdown + @t.kill + end + + def test_calc + assert_equal(3, @calc.add(1, 2)) + assert_equal(-1.1, @calc.sub(1.1, 2.2)) + assert_equal(2.42, @calc.multi(1.1, 2.2)) + assert_equal(2, @calc.div(5, 2)) + assert_equal(2.5, @calc.div(5.0, 2)) + assert_equal(1.0/0.0, @calc.div(1.1, 0)) + assert_raises(ZeroDivisionError) do + @calc.div(1, 0) + end + end +end |