diff options
Diffstat (limited to 'test/soap/calc/test_calc.rb')
-rw-r--r-- | test/soap/calc/test_calc.rb | 41 |
1 files changed, 41 insertions, 0 deletions
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 |