1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
require 'test/unit'
require 'wsdl/parser'
require 'wsdl/soap/wsdl2ruby'
require File.join(File.dirname(File.expand_path(__FILE__)), '..', '..', '..', 'testutil.rb')
module WSDL; module SOAP
class TestWSDL2Ruby < Test::Unit::TestCase
DIR = File.dirname(File.expand_path(__FILE__))
def setup
Dir.chdir(DIR) do
gen = WSDL::SOAP::WSDL2Ruby.new
gen.location = pathname("rpc.wsdl")
gen.basedir = DIR
gen.logger.level = Logger::FATAL
gen.opt['classdef'] = nil
gen.opt['client_skelton'] = nil
gen.opt['servant_skelton'] = nil
gen.opt['cgi_stub'] = nil
gen.opt['standalone_server_stub'] = nil
gen.opt['mapping_registry'] = nil
gen.opt['driver'] = nil
gen.opt['force'] = true
TestUtil.silent do
gen.run
end
end
end
def teardown
# leave generated file for debug.
end
def test_rpc
compare("expectedServant.rb", "echo_versionServant.rb")
compare("expectedClassdef.rb", "echo_version.rb")
compare("expectedService.rb", "echo_version_service.rb")
compare("expectedService.cgi", "echo_version_service.cgi")
compare("expectedMappingRegistry.rb", "echo_versionMappingRegistry.rb")
compare("expectedDriver.rb", "echo_versionDriver.rb")
compare("expectedClient.rb", "echo_version_serviceClient.rb")
File.unlink(pathname("echo_versionServant.rb"))
File.unlink(pathname("echo_version.rb"))
File.unlink(pathname("echo_version_service.rb"))
File.unlink(pathname("echo_version_service.cgi"))
File.unlink(pathname("echo_versionMappingRegistry.rb"))
File.unlink(pathname("echo_versionDriver.rb"))
File.unlink(pathname("echo_version_serviceClient.rb"))
end
EXPECTED_CLASSDEF = <<__RB__
require 'xsd/qname'
module TEST
# {urn:example.com:simpletype-rpc-type}version_struct
# version - TEST::Version
# msg - SOAP::SOAPString
class Version_struct
attr_accessor :version
attr_accessor :msg
def initialize(version = nil, msg = nil)
@version = version
@msg = msg
end
end
end
__RB__
def test_classdefcreator
wsdl = WSDL::Importer.import(pathname("rpc.wsdl"))
name_creator = WSDL::SOAP::ClassNameCreator.new
creator = WSDL::SOAP::ClassDefCreator.new(wsdl, name_creator, 'TEST')
classdef = creator.dump(XSD::QName.new('urn:example.com:simpletype-rpc-type', 'version_struct'))
assert_equal(EXPECTED_CLASSDEF, classdef)
end
private
def pathname(filename)
File.join(DIR, filename)
end
def compare(expected, actual)
TestUtil.filecompare(pathname(expected), pathname(actual))
end
def loadfile(file)
File.open(pathname(file)) { |f| f.read }
end
end
end; end
|