Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

root/trunk/test/soap/test_envelopenamespace.rb

Revision 1963, 1.9 kB (checked in by nahi, 1 year ago)
  • update tests. do not crash at teardown when setup failed. closes #396.
Line 
1 require 'test/unit'
2 require 'soap/rpc/driver'
3 require 'webrick'
4 require 'logger'
5 require File.join(File.dirname(File.expand_path(__FILE__)), '..', 'testutil.rb')
6
7
8 module SOAP
9
10
11 class TestEnvelopeNamespace < Test::Unit::TestCase
12   Port = 17171
13   TemporaryNamespace = 'urn:foo'
14
15   def setup
16     @logger = Logger.new(STDERR)
17     @logger.level = Logger::Severity::ERROR
18     @url = "http://localhost:#{Port}/"
19     @server = @client = nil
20     @server_thread = nil
21     setup_server
22     setup_client
23   end
24
25   def teardown
26     teardown_client if @client
27     teardown_server if @server
28   end
29
30   def setup_server
31     @server = WEBrick::HTTPServer.new(
32       :BindAddress => "0.0.0.0",
33       :Logger => @logger,
34       :Port => Port,
35       :AccessLog => [],
36       :DocumentRoot => File.dirname(File.expand_path(__FILE__))
37     )
38     @server.mount(
39       '/',
40       WEBrick::HTTPServlet::ProcHandler.new(method(:do_server_proc).to_proc)
41     )
42     @server_thread = TestUtil.start_server_thread(@server)
43   end
44
45   def setup_client
46     @client = SOAP::RPC::Driver.new(@url, '')
47     @client.add_method("do_server_proc")
48   end
49
50   def teardown_server
51     @server.shutdown
52     @server_thread.kill
53     @server_thread.join
54   end
55
56   def teardown_client
57     @client.reset_stream
58   end
59
60   def do_server_proc(req, res)
61     res['content-type'] = 'text/xml'
62     res.body = <<__EOX__
63 <?xml version="1.0" encoding="utf-8" ?>
64 <env:Envelope xmlns:env="#{TemporaryNamespace}">
65   <env:Body>
66     <n1:do_server_proc xmlns:n1="urn:foo" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
67       <return>hello world</return>
68     </n1:do_server_proc>
69   </env:Body>
70 </env:Envelope>
71 __EOX__
72   end
73
74   def test_normal
75     assert_raise(SOAP::ResponseFormatError) do
76       @client.do_server_proc
77     end
78     @client.options["soap.envelope.requestnamespace"] = TemporaryNamespace
79     @client.options["soap.envelope.responsenamespace"] = TemporaryNamespace
80     assert_equal('hello world', @client.do_server_proc)
81   end
82 end
83
84
85 end
Note: See TracBrowser for help on using the browser.