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

root/trunk/test/wsdl/simplecontent/test_simplecontent.rb

Revision 1963, 2.7 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 'wsdl/parser'
3 require 'wsdl/soap/wsdl2ruby'
4 require 'soap/rpc/standaloneServer'
5 require 'soap/wsdlDriver'
6 require File.join(File.dirname(File.expand_path(__FILE__)), '..', '..', 'testutil.rb')
7
8
9 module WSDL; module SimpleContent
10
11
12 class TestSimpleContent < Test::Unit::TestCase
13   NS = 'urn:www.example.org:simpleContent'
14   class Server < ::SOAP::RPC::StandaloneServer
15     def on_init
16       SimpleContentService::Methods.each do |definition|
17         add_document_operation(self, *definition)
18       end
19       self.literal_mapping_registry =
20         SimpleContentMappingRegistry::LiteralRegistry
21     end
22  
23     def echo(address)
24       address
25     end
26   end
27
28   DIR = File.dirname(File.expand_path(__FILE__))
29
30   Port = 17171
31
32   def setup
33     setup_classdef
34     setup_server
35     @client = nil
36   end
37
38   def teardown
39     teardown_server if @server
40     unless $DEBUG
41       File.unlink(pathname('simpleContent.rb'))
42       File.unlink(pathname('simpleContentMappingRegistry.rb'))
43       File.unlink(pathname('simpleContentDriver.rb'))
44     end
45     @client.reset_stream if @client
46   end
47
48   def setup_server
49     @server = Server.new('Test', "urn:www.example.org:simpleContent", '0.0.0.0', Port)
50     @server.level = Logger::Severity::ERROR
51     @server_thread = TestUtil.start_server_thread(@server)
52   end
53
54   def setup_classdef
55     gen = WSDL::SOAP::WSDL2Ruby.new
56     gen.location = pathname("simplecontent.wsdl")
57     gen.basedir = DIR
58     gen.logger.level = Logger::FATAL
59     gen.opt['classdef'] = nil
60     gen.opt['mapping_registry'] = nil
61     gen.opt['driver'] = nil
62     gen.opt['force'] = true
63     gen.opt['module_path'] = 'WSDL::SimpleContent'
64     gen.run
65     TestUtil.require(DIR, 'simpleContent.rb', 'simpleContentMappingRegistry.rb', 'simpleContentDriver.rb')
66   end
67
68   def teardown_server
69     @server.shutdown
70     @server_thread.kill
71     @server_thread.join
72   end
73
74   def pathname(filename)
75     File.join(DIR, filename)
76   end
77
78   def test_stub
79     @client = SimpleContentService.new("http://localhost:#{Port}/")
80     @client.wiredump_dev = STDERR if $DEBUG
81
82     list = PhoneList.new
83     list.xmlattr_default = "default"
84     phone1 = PhoneNumber.new("12<>345")
85     phone1.xmlattr_type = PhoneNumberType::Fax
86     phone2 = PhoneNumber.new("234<>56")
87     phone2.xmlattr_type = PhoneNumberType::Home
88     list.phone << phone1 << phone2
89     address = Address.new(list, "addr")
90     ret = @client.echo(address)
91
92     assert_equal(address.blah, ret.blah)
93     assert_equal(2, ret.list.phone.size)
94     assert_equal("12<>345", ret.list.phone[0])
95     assert_equal(PhoneNumberType::Fax, ret.list.phone[0].xmlattr_type)
96     assert_equal("234<>56", ret.list.phone[1])
97     assert_equal(PhoneNumberType::Home, ret.list.phone[1].xmlattr_type)
98   end
99 end
100
101
102 end; end
Note: See TracBrowser for help on using the browser.