mirror of
https://github.com/TracksApp/tracks.git
synced 2026-02-20 14:14:09 +01:00
1967 lines
49 KiB
Ruby
1967 lines
49 KiB
Ruby
$KCODE = 'EUC'
|
||
|
||
require 'logger'
|
||
require 'soap/rpc/driver'
|
||
require 'soap/mapping'
|
||
require 'base'
|
||
require 'interopResultBase'
|
||
|
||
include SOAP
|
||
include SOAPBuildersInterop
|
||
|
||
$soapAction = 'http://soapinterop.org/'
|
||
$testResultServer = 'http://dev.ctor.org/soapsrv'
|
||
$testResultDrv = SOAP::RPC::Driver.new($testResultServer,
|
||
SOAPBuildersInteropResult::InterfaceNS)
|
||
|
||
SOAPBuildersInteropResult::Methods.each do |name, *params|
|
||
$testResultDrv.add_rpc_operation(
|
||
XSD::QName.new(SOAPBuildersInteropResult::InterfaceNS, name),
|
||
nil, name, params)
|
||
end
|
||
|
||
client = SOAPBuildersInteropResult::Endpoint.new
|
||
client.processorName = 'SOAP4R'
|
||
client.processorVersion = '1.5'
|
||
client.uri = '*:*'
|
||
client.wsdl = "#{$wsdlBase} #{$wsdlGroupB}"
|
||
|
||
server = SOAPBuildersInteropResult::Endpoint.new
|
||
server.endpointName = $serverName
|
||
server.uri = $server || "#{ $serverBase }, #{ $serverGroupB }"
|
||
server.wsdl = "#{$wsdlBase} #{$wsdlGroupB}"
|
||
|
||
$testResults = SOAPBuildersInteropResult::InteropResults.new(client, server)
|
||
|
||
$wireDumpDev = ''
|
||
def $wireDumpDev.close; end
|
||
|
||
$wireDumpLogFile = STDERR
|
||
|
||
|
||
###
|
||
## Method definition.
|
||
#
|
||
def methodDef(drv)
|
||
drv.soapaction = $soapAction
|
||
methodDefBase(drv)
|
||
methodDefGroupB(drv)
|
||
end
|
||
|
||
def methodDefBase(drv)
|
||
SOAPBuildersInterop::MethodsBase.each do |name, *params|
|
||
drv.add_rpc_operation(
|
||
XSD::QName.new(InterfaceNS, name), $soapAction, name, params)
|
||
end
|
||
end
|
||
|
||
def methodDefGroupB(drv)
|
||
SOAPBuildersInterop::MethodsGroupB.each do |name, *params|
|
||
drv.add_rpc_operation(
|
||
XSD::QName.new(InterfaceNS, name), $soapAction, name, params)
|
||
end
|
||
end
|
||
|
||
|
||
###
|
||
## Helper function
|
||
#
|
||
class Float
|
||
Precision = 5
|
||
|
||
def ==(rhs)
|
||
if rhs.is_a?(Float)
|
||
if self.nan? and rhs.nan?
|
||
true
|
||
elsif self.infinite? == rhs.infinite?
|
||
true
|
||
elsif (rhs - self).abs <= (10 ** (- Precision))
|
||
true
|
||
else
|
||
false
|
||
end
|
||
else
|
||
false
|
||
end
|
||
end
|
||
end
|
||
|
||
def assert(expected, actual)
|
||
if expected == actual
|
||
'OK'
|
||
else
|
||
"Expected = " << expected.inspect << " // Actual = " << actual.inspect
|
||
end
|
||
end
|
||
|
||
def setWireDumpLogFile(postfix = "")
|
||
logFilename = File.basename($0).sub(/\.rb$/, '') << postfix << '.log'
|
||
f = File.open(logFilename, 'w')
|
||
f << "File: #{ logFilename } - Wiredumps for SOAP4R client / #{ $serverName } server.\n"
|
||
f << "Date: #{ Time.now }\n\n"
|
||
$wireDumpLogFile = f
|
||
end
|
||
|
||
def getWireDumpLogFileBase(postfix = "")
|
||
File.basename($0).sub(/\.rb$/, '') + postfix
|
||
end
|
||
|
||
def getIdObj(obj)
|
||
case obj
|
||
when Array
|
||
obj.collect { |ele|
|
||
getIdObj(ele)
|
||
}
|
||
else
|
||
# String#== compares content of args.
|
||
"#{ obj.class }##{ obj.__id__ }"
|
||
end
|
||
end
|
||
|
||
def dumpTitle(title)
|
||
p title
|
||
$wireDumpLogFile << "##########\n# " << title << "\n\n"
|
||
end
|
||
|
||
def dumpNormal(title, expected, actual)
|
||
result = assert(expected, actual)
|
||
if result == 'OK'
|
||
dumpResult(title, true, nil)
|
||
else
|
||
dumpResult(title, false, result)
|
||
end
|
||
end
|
||
|
||
def dumpException(title)
|
||
result = "Exception: #{ $! } (#{ $!.class})\n" << $@.join("\n")
|
||
dumpResult(title, false, result)
|
||
end
|
||
|
||
def dumpResult(title, result, resultStr)
|
||
$testResults.add(
|
||
SOAPBuildersInteropResult::TestResult.new(
|
||
title,
|
||
result,
|
||
resultStr,
|
||
$wireDumpDev.dup
|
||
)
|
||
)
|
||
$wireDumpLogFile << "Result: #{ resultStr || 'OK' }\n\n"
|
||
$wireDumpLogFile << $wireDumpDev
|
||
$wireDumpLogFile << "\n"
|
||
|
||
$wireDumpDev.replace('')
|
||
end
|
||
|
||
def submitTestResult
|
||
$testResultDrv.addResults($testResults)
|
||
end
|
||
|
||
class FakeFloat < SOAP::SOAPFloat
|
||
def initialize(str)
|
||
super()
|
||
@data = str
|
||
end
|
||
|
||
def to_s
|
||
@data.to_s
|
||
end
|
||
end
|
||
|
||
class FakeDateTime < SOAP::SOAPDateTime
|
||
def initialize(str)
|
||
super()
|
||
@data = str
|
||
end
|
||
|
||
def to_s
|
||
@data.to_s
|
||
end
|
||
end
|
||
|
||
class FakeDecimal < SOAP::SOAPDecimal
|
||
def initialize(str)
|
||
super()
|
||
@data = str
|
||
end
|
||
|
||
def to_s
|
||
@data.to_s
|
||
end
|
||
end
|
||
|
||
class FakeInt < SOAP::SOAPInt
|
||
def initialize(str)
|
||
super()
|
||
@data = str
|
||
end
|
||
|
||
def to_s
|
||
@data.to_s
|
||
end
|
||
end
|
||
|
||
|
||
###
|
||
## Invoke methods.
|
||
#
|
||
def doTest(drv)
|
||
doTestBase(drv)
|
||
doTestGroupB(drv)
|
||
end
|
||
|
||
def doTestBase(drv)
|
||
setWireDumpLogFile('_Base')
|
||
drv.wiredump_dev = $wireDumpDev
|
||
# drv.wiredump_filebase = getWireDumpLogFileBase('_Base')
|
||
|
||
drv.mapping_registry = SOAPBuildersInterop::MappingRegistry
|
||
|
||
title = 'echoVoid'
|
||
dumpTitle(title)
|
||
begin
|
||
var = drv.echoVoid()
|
||
dumpNormal(title, nil, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoString'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = "SOAP4R Interoperability Test"
|
||
var = drv.echoString(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoString (Entity reference)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = "<>\"& <>"& &&><<<"
|
||
var = drv.echoString(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoString (Character reference)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = "\x20 \040 \x7f\177"
|
||
tobe = " \177\177\177\177"
|
||
var = drv.echoString(SOAP::SOAPRawString.new(arg))
|
||
dumpNormal(title, tobe, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoString (Leading and trailing whitespace)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = " SOAP4R\nInteroperability\nTest "
|
||
var = drv.echoString(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoString (EUC encoded)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = "Hello (<28><><EFBFBD>ܸ<EFBFBD>Japanese) <20><><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><CBA4><EFBFBD>"
|
||
var = drv.echoString(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoString (EUC encoded) again'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = "Hello (<28><><EFBFBD>ܸ<EFBFBD>Japanese) <20><><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><CBA4><EFBFBD>"
|
||
var = drv.echoString(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoString (empty)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = ''
|
||
var = drv.echoString(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoString (space)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = ' '
|
||
var = drv.echoString(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoString (whitespaces:\r \n \t \r \n \t)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = "\r \n \t \r \n \t"
|
||
var = drv.echoString(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoStringArray'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = StringArray["SOAP4R\n", " Interoperability ", "\tTest\t"]
|
||
var = drv.echoStringArray(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
# title = 'echoStringArray (sparse)'
|
||
# dumpTitle(title)
|
||
# begin
|
||
# arg = [nil, "SOAP4R\n", nil, " Interoperability ", nil, "\tTest\t", nil]
|
||
# soapAry = SOAP::Mapping.ary2soap(arg, XSD::Namespace, XSD::StringLiteral, SOAPBuildersInterop::MappingRegistry)
|
||
# soapAry.sparse = true
|
||
# var = drv.echoStringArray(soapAry)
|
||
# dumpNormal(title, arg, var)
|
||
# rescue Exception
|
||
# dumpException(title)
|
||
# end
|
||
|
||
title = 'echoStringArray (multi-ref)'
|
||
dumpTitle(title)
|
||
begin
|
||
str1 = "SOAP4R"
|
||
str2 = "SOAP4R"
|
||
arg = StringArray[str1, str2, str1]
|
||
var = drv.echoStringArray(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoStringArray (multi-ref: elem1 == elem3)'
|
||
dumpTitle(title)
|
||
begin
|
||
str1 = "SOAP4R"
|
||
str2 = "SOAP4R"
|
||
arg = StringArray[str1, str2, str1]
|
||
var = drv.echoStringArray(arg)
|
||
dumpNormal(title, getIdObj(var[0]), getIdObj(var[2]))
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoStringArray (empty, multi-ref: elem1 == elem3)'
|
||
dumpTitle(title)
|
||
begin
|
||
str1 = ""
|
||
str2 = ""
|
||
arg = StringArray[str1, str2, str1]
|
||
var = drv.echoStringArray(arg)
|
||
dumpNormal(title, getIdObj(var[0]), getIdObj(var[2]))
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
# title = 'echoStringArray (sparse, multi-ref)'
|
||
# dumpTitle(title)
|
||
# begin
|
||
# str = "SOAP4R"
|
||
# arg = StringArray[nil, nil, nil, nil, nil, str, nil, str]
|
||
# soapAry = SOAP::Mapping.ary2soap(arg, XSD::Namespace, XSD::StringLiteral, SOAPBuildersInterop::MappingRegistry)
|
||
# soapAry.sparse = true
|
||
# var = drv.echoStringArray(soapAry)
|
||
# dumpNormal(title, arg, var)
|
||
# rescue Exception
|
||
# dumpException(title)
|
||
# end
|
||
|
||
title = 'echoInteger (Int: 123)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = 123
|
||
var = drv.echoInteger(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoInteger (Int: 2147483647)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = 2147483647
|
||
var = drv.echoInteger(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoInteger (Int: -2147483648)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = -2147483648
|
||
var = drv.echoInteger(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoInteger (2147483648: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = FakeInt.new("2147483648")
|
||
var = drv.echoInteger(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoInteger (-2147483649: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = FakeInt.new("-2147483649")
|
||
var = drv.echoInteger(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoInteger (0.0: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = FakeInt.new("0.0")
|
||
var = drv.echoInteger(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoInteger (-5.2: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = FakeInt.new("-5.2")
|
||
var = drv.echoInteger(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoInteger (0.000000000a: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = FakeInt.new("0.000000000a")
|
||
var = drv.echoInteger(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoInteger (+-5: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = FakeInt.new("+-5")
|
||
var = drv.echoInteger(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoIntegerArray'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = IntArray[1, 2, 3]
|
||
var = drv.echoIntegerArray(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
# title = 'echoIntegerArray (nil)'
|
||
# dumpTitle(title)
|
||
# begin
|
||
# arg = IntArray[nil, nil, nil]
|
||
# var = drv.echoIntegerArray(arg)
|
||
# dumpNormal(title, arg, var)
|
||
# rescue Exception
|
||
# dumpException(title)
|
||
# end
|
||
|
||
title = 'echoIntegerArray (empty)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAP::SOAPArray.new(SOAP::ValueArrayName, 1, XSD::XSDInt::Type)
|
||
var = drv.echoIntegerArray(arg)
|
||
dumpNormal(title, [], var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
# title = 'echoIntegerArray (sparse)'
|
||
# dumpTitle(title)
|
||
# begin
|
||
# arg = [nil, 1, nil, 2, nil, 3, nil]
|
||
# soapAry = SOAP::Mapping.ary2soap(arg, XSD::Namespace, XSD::XSDInt::Type, SOAPBuildersInterop::MappingRegistry)
|
||
# soapAry.sparse = true
|
||
# var = drv.echoIntegerArray(soapAry)
|
||
# dumpNormal(title, arg, var)
|
||
# rescue Exception
|
||
# dumpException(title)
|
||
# end
|
||
|
||
title = 'echoFloat'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = 3.14159265358979
|
||
var = drv.echoFloat(SOAPFloat.new(arg))
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoFloat (scientific notation)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = 12.34e36
|
||
var = drv.echoFloat(SOAPFloat.new(arg))
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoFloat (scientific notation 2)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = FakeFloat.new("12.34e36")
|
||
var = drv.echoFloat(SOAPFloat.new(arg))
|
||
dumpNormal(title, 12.34e36, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoFloat (scientific notation 3)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = FakeFloat.new("12.34E+36")
|
||
var = drv.echoFloat(SOAPFloat.new(arg))
|
||
dumpNormal(title, 12.34e36, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoFloat (scientific notation 4)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = FakeFloat.new("-1.4E")
|
||
var = drv.echoFloat(SOAPFloat.new(arg))
|
||
dumpNormal(title, 1.4, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoFloat (positive lower boundary)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = 1.4e-45
|
||
var = drv.echoFloat(SOAPFloat.new(arg))
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoFloat (negative lower boundary)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = -1.4e-45
|
||
var = drv.echoFloat(SOAPFloat.new(arg))
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoFloat (special values: +0)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = 0.0
|
||
var = drv.echoFloat(SOAPFloat.new(arg))
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoFloat (special values: -0)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = (-1.0 / (1.0 / 0.0))
|
||
var = drv.echoFloat(SOAPFloat.new(arg))
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoFloat (special values: NaN)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = 0.0/0.0
|
||
var = drv.echoFloat(SOAPFloat.new(arg))
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoFloat (special values: INF)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = 1.0/0.0
|
||
var = drv.echoFloat(SOAPFloat.new(arg))
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoFloat (special values: -INF)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = -1.0/0.0
|
||
var = drv.echoFloat(SOAPFloat.new(arg))
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoFloat (0.000a: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = FakeFloat.new("0.0000000000000000a")
|
||
var = drv.echoFloat(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoFloat (00a.0001: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = FakeFloat.new("00a.000000000000001")
|
||
var = drv.echoFloat(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoFloat (+-5: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = FakeFloat.new("+-5")
|
||
var = drv.echoFloat(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoFloat (5_0: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = FakeFloat.new("5_0")
|
||
var = drv.echoFloat(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoFloatArray'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = FloatArray[SOAPFloat.new(0.0001), SOAPFloat.new(1000.0), SOAPFloat.new(0.0)]
|
||
var = drv.echoFloatArray(arg)
|
||
dumpNormal(title, arg.collect { |ele| ele.data }, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoFloatArray (special values: NaN, INF, -INF)'
|
||
dumpTitle(title)
|
||
begin
|
||
nan = SOAPFloat.new(0.0/0.0)
|
||
inf = SOAPFloat.new(1.0/0.0)
|
||
inf_ = SOAPFloat.new(-1.0/0.0)
|
||
arg = FloatArray[nan, inf, inf_]
|
||
var = drv.echoFloatArray(arg)
|
||
dumpNormal(title, arg.collect { |ele| ele.data }, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
# title = 'echoFloatArray (sparse)'
|
||
# dumpTitle(title)
|
||
# begin
|
||
# arg = [nil, nil, 0.0001, 1000.0, 0.0, nil, nil]
|
||
# soapAry = SOAP::Mapping.ary2soap(arg, XSD::Namespace, XSD::FloatLiteral, SOAPBuildersInterop::MappingRegistry)
|
||
# soapAry.sparse = true
|
||
# var = drv.echoFloatArray(soapAry)
|
||
# dumpNormal(title, arg, var)
|
||
# rescue Exception
|
||
# dumpException(title)
|
||
# end
|
||
|
||
title = 'echoStruct'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAPStruct.new(1, 1.1, "a")
|
||
var = drv.echoStruct(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoStruct (nil members)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAPStruct.new(nil, nil, nil)
|
||
var = drv.echoStruct(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoStructArray'
|
||
dumpTitle(title)
|
||
begin
|
||
s1 = SOAPStruct.new(1, 1.1, "a")
|
||
s2 = SOAPStruct.new(2, 2.2, "b")
|
||
s3 = SOAPStruct.new(3, 3.3, "c")
|
||
arg = SOAPStructArray[s1, s2, s3]
|
||
var = drv.echoStructArray(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoStructArray (anyType Array)'
|
||
dumpTitle(title)
|
||
begin
|
||
s1 = SOAPStruct.new(1, 1.1, "a")
|
||
s2 = SOAPStruct.new(2, 2.2, "b")
|
||
s3 = SOAPStruct.new(3, 3.3, "c")
|
||
arg = [s1, s2, s3]
|
||
var = drv.echoStructArray(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
# title = 'echoStructArray (sparse)'
|
||
# dumpTitle(title)
|
||
# begin
|
||
# s1 = SOAPStruct.new(1, 1.1, "a")
|
||
# s2 = SOAPStruct.new(2, 2.2, "b")
|
||
# s3 = SOAPStruct.new(3, 3.3, "c")
|
||
# arg = [nil, s1, s2, s3]
|
||
# soapAry = SOAP::Mapping.ary2soap(arg, TypeNS, "SOAPStruct", SOAPBuildersInterop::MappingRegistry)
|
||
# soapAry.sparse = true
|
||
# var = drv.echoStructArray(soapAry)
|
||
# dumpNormal(title, arg, var)
|
||
# rescue Exception
|
||
# dumpException(title)
|
||
# end
|
||
|
||
title = 'echoStructArray (multi-ref)'
|
||
dumpTitle(title)
|
||
begin
|
||
s1 = SOAPStruct.new(1, 1.1, "a")
|
||
s2 = SOAPStruct.new(2, 2.2, "b")
|
||
arg = SOAPStructArray[s1, s1, s2]
|
||
var = drv.echoStructArray(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoStructArray (multi-ref: elem1 == elem2)'
|
||
dumpTitle(title)
|
||
begin
|
||
s1 = SOAPStruct.new(1, 1.1, "a")
|
||
s2 = SOAPStruct.new(2, 2.2, "b")
|
||
arg = SOAPStructArray[s1, s1, s2]
|
||
var = drv.echoStructArray(arg)
|
||
dumpNormal(title, getIdObj(var[0]), getIdObj(var[1]))
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoStructArray (anyType Array, multi-ref: elem2 == elem3)'
|
||
dumpTitle(title)
|
||
begin
|
||
s1 = SOAPStruct.new(1, 1.1, "a")
|
||
s2 = SOAPStruct.new(2, 2.2, "b")
|
||
arg = [s1, s2, s2]
|
||
var = drv.echoStructArray(arg)
|
||
dumpNormal(title, getIdObj(var[1]), getIdObj(var[2]))
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
# title = 'echoStructArray (sparse, multi-ref)'
|
||
# dumpTitle(title)
|
||
# begin
|
||
# s1 = SOAPStruct.new(1, 1.1, "a")
|
||
# s2 = SOAPStruct.new(2, 2.2, "b")
|
||
# arg = [nil, s1, nil, nil, s2, nil, s2]
|
||
# soapAry = SOAP::Mapping.ary2soap(arg, TypeNS, "SOAPStruct", SOAPBuildersInterop::MappingRegistry)
|
||
# soapAry.sparse = true
|
||
# var = drv.echoStructArray(soapAry)
|
||
# dumpNormal(title, arg, var)
|
||
# rescue Exception
|
||
# dumpException(title)
|
||
# end
|
||
|
||
# title = 'echoStructArray (sparse, multi-ref: elem5 == elem7)'
|
||
# dumpTitle(title)
|
||
# begin
|
||
# s1 = SOAPStruct.new(1, 1.1, "a")
|
||
# s2 = SOAPStruct.new(2, 2.2, "b")
|
||
# arg = [nil, s1, nil, nil, s2, nil, s2]
|
||
# soapAry = SOAP::Mapping.ary2soap(arg, TypeNS, "SOAPStruct", SOAPBuildersInterop::MappingRegistry)
|
||
# soapAry.sparse = true
|
||
# var = drv.echoStructArray(soapAry)
|
||
# dumpNormal(title, getIdObj(var[4]), getIdObj(var[6]))
|
||
# rescue Exception
|
||
# dumpException(title)
|
||
# end
|
||
|
||
title = 'echoStructArray (multi-ref: varString of elem1 == varString of elem2)'
|
||
dumpTitle(title)
|
||
begin
|
||
str1 = "a"
|
||
str2 = "a"
|
||
s1 = SOAPStruct.new(1, 1.1, str1)
|
||
s2 = SOAPStruct.new(2, 2.2, str1)
|
||
s3 = SOAPStruct.new(3, 3.3, str2)
|
||
arg = SOAPStructArray[s1, s2, s3]
|
||
var = drv.echoStructArray(arg)
|
||
dumpNormal(title, getIdObj(var[0].varString), getIdObj(var[1].varString))
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoStructArray (anyType Array, multi-ref: varString of elem2 == varString of elem3)'
|
||
dumpTitle(title)
|
||
begin
|
||
str1 = "b"
|
||
str2 = "b"
|
||
s1 = SOAPStruct.new(1, 1.1, str2)
|
||
s2 = SOAPStruct.new(2, 2.2, str1)
|
||
s3 = SOAPStruct.new(3, 3.3, str1)
|
||
arg = [s1, s2, s3]
|
||
var = drv.echoStructArray(arg)
|
||
dumpNormal(title, getIdObj(var[1].varString), getIdObj(var[2].varString))
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
# title = 'echoStructArray (sparse, multi-ref: varString of elem5 == varString of elem7)'
|
||
# dumpTitle(title)
|
||
# begin
|
||
# str1 = "c"
|
||
# str2 = "c"
|
||
# s1 = SOAPStruct.new(1, 1.1, str2)
|
||
# s2 = SOAPStruct.new(2, 2.2, str1)
|
||
# s3 = SOAPStruct.new(3, 3.3, str1)
|
||
# arg = [nil, s1, nil, nil, s2, nil, s3]
|
||
# soapAry = SOAP::Mapping.ary2soap(arg, TypeNS, "SOAPStruct", SOAPBuildersInterop::MappingRegistry)
|
||
# soapAry.sparse = true
|
||
# var = drv.echoStructArray(soapAry)
|
||
# dumpNormal(title, getIdObj(var[4].varString), getIdObj(var[6].varString))
|
||
# rescue Exception
|
||
# dumpException(title)
|
||
# end
|
||
|
||
# title = 'echoStructArray (2D Array)'
|
||
# dumpTitle(title)
|
||
# begin
|
||
# s1 = SOAPStruct.new(1, 1.1, "a")
|
||
# s2 = SOAPStruct.new(2, 2.2, "b")
|
||
# s3 = SOAPStruct.new(3, 3.3, "c")
|
||
# arg = [
|
||
# [s1, nil, s2],
|
||
# [nil, s2, s3],
|
||
# ]
|
||
# md = SOAP::Mapping.ary2md(arg, 2, XSD::Namespace, XSD::AnyTypeLiteral, SOAPBuildersInterop::MappingRegistry)
|
||
#
|
||
# var = drv.echoStructArray(md)
|
||
# dumpNormal(title, arg, var)
|
||
# rescue Exception
|
||
# dumpException(title)
|
||
# end
|
||
#
|
||
# title = 'echoStructArray (2D Array, sparse)'
|
||
# dumpTitle(title)
|
||
# begin
|
||
# s1 = SOAPStruct.new(1, 1.1, "a")
|
||
# s2 = SOAPStruct.new(2, 2.2, "b")
|
||
# s3 = SOAPStruct.new(3, 3.3, "c")
|
||
# arg = [
|
||
# [s1, nil, s2],
|
||
# [nil, s2, s3],
|
||
# ]
|
||
# md = SOAP::Mapping.ary2md(arg, 2, TypeNS, "SOAPStruct", SOAPBuildersInterop::MappingRegistry)
|
||
## md.sparse = true
|
||
#
|
||
# var = drv.echoStructArray(md)
|
||
# dumpNormal(title, arg, var)
|
||
# rescue Exception
|
||
# dumpException(title)
|
||
# end
|
||
#
|
||
# title = 'echoStructArray (anyType, 2D Array, sparse)'
|
||
# dumpTitle(title)
|
||
# begin
|
||
# s1 = SOAPStruct.new(1, 1.1, "a")
|
||
# s2 = SOAPStruct.new(2, 2.2, "b")
|
||
# s3 = SOAPStruct.new(3, 3.3, "c")
|
||
# arg = [
|
||
# [s1, nil, s2],
|
||
# [nil, s2, s3],
|
||
# ]
|
||
# md = SOAP::Mapping.ary2md(arg, 2, XSD::Namespace, XSD::AnyTypeLiteral, SOAPBuildersInterop::MappingRegistry)
|
||
# md.sparse = true
|
||
#
|
||
# var = drv.echoStructArray(md)
|
||
# dumpNormal(title, arg, var)
|
||
# rescue Exception
|
||
# dumpException(title)
|
||
# end
|
||
|
||
title = 'echoDate (now)'
|
||
dumpTitle(title)
|
||
begin
|
||
t = Time.now.gmtime
|
||
arg = DateTime.new(t.year, t.mon, t.mday, t.hour, t.min, t.sec)
|
||
var = drv.echoDate(arg)
|
||
dumpNormal(title, arg.to_s, var.to_s)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDate (before 1970: 1-01-01T00:00:00Z)'
|
||
dumpTitle(title)
|
||
begin
|
||
t = Time.now.gmtime
|
||
arg = DateTime.new(1, 1, 1, 0, 0, 0)
|
||
var = drv.echoDate(arg)
|
||
dumpNormal(title, arg.to_s, var.to_s)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDate (after 2038: 2038-12-31T00:00:00Z)'
|
||
dumpTitle(title)
|
||
begin
|
||
t = Time.now.gmtime
|
||
arg = DateTime.new(2038, 12, 31, 0, 0, 0)
|
||
var = drv.echoDate(arg)
|
||
dumpNormal(title, arg.to_s, var.to_s)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDate (negative: -10-01-01T00:00:00Z)'
|
||
dumpTitle(title)
|
||
begin
|
||
t = Time.now.gmtime
|
||
arg = DateTime.new(-10, 1, 1, 0, 0, 0)
|
||
var = drv.echoDate(arg)
|
||
dumpNormal(title, arg.to_s, var.to_s)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDate (time precision: msec)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAP::SOAPDateTime.new('2001-06-16T18:13:40.012')
|
||
argDate = arg.data
|
||
var = drv.echoDate(arg)
|
||
dumpNormal(title, argDate, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDate (time precision: long)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAP::SOAPDateTime.new('2001-06-16T18:13:40.0000000000123456789012345678900000000000')
|
||
argDate = arg.data
|
||
var = drv.echoDate(arg)
|
||
dumpNormal(title, argDate, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDate (positive TZ)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAP::SOAPDateTime.new('2001-06-17T01:13:40+07:00')
|
||
argNormalized = DateTime.new(2001, 6, 16, 18, 13, 40)
|
||
var = drv.echoDate(arg)
|
||
dumpNormal(title, argNormalized, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDate (negative TZ)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAP::SOAPDateTime.new('2001-06-16T18:13:40-07:00')
|
||
argNormalized = DateTime.new(2001, 6, 17, 1, 13, 40)
|
||
var = drv.echoDate(arg)
|
||
dumpNormal(title, argNormalized, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDate (+00:00 TZ)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAP::SOAPDateTime.new('2001-06-17T01:13:40+00:00')
|
||
argNormalized = DateTime.new(2001, 6, 17, 1, 13, 40)
|
||
var = drv.echoDate(arg)
|
||
dumpNormal(title, argNormalized, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDate (-00:00 TZ)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAP::SOAPDateTime.new('2001-06-17T01:13:40-00:00')
|
||
argNormalized = DateTime.new(2001, 6, 17, 1, 13, 40)
|
||
var = drv.echoDate(arg)
|
||
dumpNormal(title, argNormalized, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDate (min TZ)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAP::SOAPDateTime.new('2001-06-16T00:00:01+00:01')
|
||
argNormalized = DateTime.new(2001, 6, 15, 23, 59, 1)
|
||
var = drv.echoDate(arg)
|
||
dumpNormal(title, argNormalized, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDate (year > 9999)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAP::SOAPDateTime.new('10000-06-16T18:13:40-07:00')
|
||
argNormalized = DateTime.new(10000, 6, 17, 1, 13, 40)
|
||
var = drv.echoDate(arg)
|
||
dumpNormal(title, argNormalized, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDate (year < 0)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAP::SOAPDateTime.new('-0001-06-16T18:13:40-07:00')
|
||
argNormalized = DateTime.new(0, 6, 17, 1, 13, 40)
|
||
var = drv.echoDate(arg)
|
||
dumpNormal(title, argNormalized, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDate (year == -4713)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAP::SOAPDateTime.new('-4713-01-01T12:00:00')
|
||
argNormalized = DateTime.new(-4712, 1, 1, 12, 0, 0)
|
||
var = drv.echoDate(arg)
|
||
dumpNormal(title, argNormalized, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDate (year 0000: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = FakeDateTime.new("0000-05-18T16:52:20Z")
|
||
var = drv.echoDate(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDate (year nn: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = FakeDateTime.new("05-05-18T16:52:20Z")
|
||
var = drv.echoDate(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDate (no day part: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = FakeDateTime.new("2002-05T16:52:20Z")
|
||
var = drv.echoDate(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDate (no sec part: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = FakeDateTime.new("2002-05-18T16:52Z")
|
||
var = drv.echoDate(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDate (empty: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = FakeDateTime.new("")
|
||
var = drv.echoDate(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoBase64 (xsd:base64Binary)'
|
||
dumpTitle(title)
|
||
begin
|
||
str = "Hello (<28><><EFBFBD>ܸ<EFBFBD>Japanese) <20><><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><CBA4><EFBFBD>"
|
||
arg = SOAP::SOAPBase64.new(str)
|
||
arg.as_xsd # Force xsd:base64Binary instead of soap-enc:base64
|
||
var = drv.echoBase64(arg)
|
||
dumpNormal(title, str, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoBase64 (xsd:base64Binary, empty)'
|
||
dumpTitle(title)
|
||
begin
|
||
str = ""
|
||
arg = SOAP::SOAPBase64.new(str)
|
||
arg.as_xsd # Force xsd:base64Binary instead of soap-enc:base64
|
||
var = drv.echoBase64(arg)
|
||
dumpNormal(title, str, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoBase64 (SOAP-ENC:base64)'
|
||
dumpTitle(title)
|
||
begin
|
||
str = "Hello (<28><><EFBFBD>ܸ<EFBFBD>Japanese) <20><><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><CBA4><EFBFBD>"
|
||
arg = SOAP::SOAPBase64.new(str)
|
||
var = drv.echoBase64(arg)
|
||
dumpNormal(title, str, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoBase64 (\0)'
|
||
dumpTitle(title)
|
||
begin
|
||
str = "\0"
|
||
arg = SOAP::SOAPBase64.new(str)
|
||
var = drv.echoBase64(arg)
|
||
dumpNormal(title, str, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoBase64 (\0a\0)'
|
||
dumpTitle(title)
|
||
begin
|
||
str = "a\0b\0\0c\0\0\0"
|
||
arg = SOAP::SOAPBase64.new(str)
|
||
var = drv.echoBase64(arg)
|
||
dumpNormal(title, str, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoBase64 (-: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = SOAP::SOAPBase64.new("dummy")
|
||
arg.instance_eval { @data = '-' }
|
||
var = drv.echoBase64(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoHexBinary'
|
||
dumpTitle(title)
|
||
begin
|
||
str = "Hello (<28><><EFBFBD>ܸ<EFBFBD>Japanese) <20><><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><CBA4><EFBFBD>"
|
||
arg = SOAP::SOAPHexBinary.new(str)
|
||
var = drv.echoHexBinary(arg)
|
||
dumpNormal(title, str, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoHexBinary(empty)'
|
||
dumpTitle(title)
|
||
begin
|
||
str = ""
|
||
arg = SOAP::SOAPHexBinary.new(str)
|
||
var = drv.echoHexBinary(arg)
|
||
dumpNormal(title, str, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoHexBinary(\0)'
|
||
dumpTitle(title)
|
||
begin
|
||
str = "\0"
|
||
arg = SOAP::SOAPHexBinary.new(str)
|
||
var = drv.echoHexBinary(arg)
|
||
dumpNormal(title, str, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoHexBinary(\0a\0)'
|
||
dumpTitle(title)
|
||
begin
|
||
str = "a\0b\0\0c\0\0\0"
|
||
arg = SOAP::SOAPHexBinary.new(str)
|
||
var = drv.echoHexBinary(arg)
|
||
dumpNormal(title, str, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoHexBinary(lower case)'
|
||
dumpTitle(title)
|
||
begin
|
||
str = "lower case"
|
||
arg = SOAP::SOAPHexBinary.new
|
||
arg.set_encoded((str.unpack("H*")[0]).tr('A-F', 'a-f'))
|
||
var = drv.echoHexBinary(arg)
|
||
dumpNormal(title, str, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoHexBinary (0FG7: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = SOAP::SOAPHexBinary.new("dummy")
|
||
arg.instance_eval { @data = '0FG7' }
|
||
var = drv.echoHexBinary(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoBoolean (true)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = true
|
||
var = drv.echoBoolean(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoBoolean (false)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = false
|
||
var = drv.echoBoolean(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoBoolean (junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = SOAP::SOAPBoolean.new(true)
|
||
arg.instance_eval { @data = 'junk' }
|
||
var = drv.echoBoolean(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDecimal (123456)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = "123456789012345678"
|
||
var = drv.echoDecimal(SOAP::SOAPDecimal.new(arg))
|
||
normalized = arg
|
||
dumpNormal(title, normalized, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDecimal (+0.123)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = "+0.12345678901234567"
|
||
var = drv.echoDecimal(SOAP::SOAPDecimal.new(arg))
|
||
normalized = arg.sub(/0$/, '').sub(/^\+/, '')
|
||
dumpNormal(title, normalized, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDecimal (.00000123)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = ".00000123456789012"
|
||
var = drv.echoDecimal(SOAP::SOAPDecimal.new(arg))
|
||
normalized = '0' << arg.sub(/0$/, '')
|
||
dumpNormal(title, normalized, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDecimal (-.00000123)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = "-.00000123456789012"
|
||
var = drv.echoDecimal(SOAP::SOAPDecimal.new(arg))
|
||
normalized = '-0' << arg.sub(/0$/, '').sub(/-/, '')
|
||
dumpNormal(title, normalized, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDecimal (-123.456)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = "-123456789012345.008"
|
||
var = drv.echoDecimal(SOAP::SOAPDecimal.new(arg))
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDecimal (-123.)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = "-12345678901234567."
|
||
normalized = arg.sub(/\.$/, '')
|
||
var = drv.echoDecimal(SOAP::SOAPDecimal.new(arg))
|
||
dumpNormal(title, normalized, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDecimal (0.000a: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = FakeDecimal.new("0.0000000000000000a")
|
||
var = drv.echoDecimal(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDecimal (00a.0001: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = FakeDecimal.new("00a.000000000000001")
|
||
var = drv.echoDecimal(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDecimal (+-5: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = FakeDecimal.new("+-5")
|
||
var = drv.echoDecimal(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoDecimal (5_0: junk)'
|
||
dumpTitle(title)
|
||
begin
|
||
begin
|
||
arg = FakeDecimal.new("5_0")
|
||
var = drv.echoDecimal(arg)
|
||
dumpNormal(title, 'Fault', 'No error occurred.')
|
||
rescue SOAP::RPC::ServerException, SOAP::FaultError
|
||
dumpNormal(title, true, true)
|
||
end
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
if false # unless $noEchoMap
|
||
|
||
title = 'echoMap'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = { "a" => 1, "b" => 2 }
|
||
var = drv.echoMap(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoMap (boolean, base64, nil, float)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = { true => "\0", "\0" => nil, nil => 0.0001, 0.0001 => false }
|
||
var = drv.echoMap(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoMap (multibyte char)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = { "Hello (<28><><EFBFBD>ܸ<EFBFBD>Japanese) <20><><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><CBA4><EFBFBD>" => 1, 1 => "Hello (<28><><EFBFBD>ܸ<EFBFBD>Japanese) <20><><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><CBA4><EFBFBD>" }
|
||
var = drv.echoMap(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoMap (Struct)'
|
||
dumpTitle(title)
|
||
begin
|
||
obj = SOAPStruct.new(1, 1.1, "a")
|
||
arg = { 1 => obj, 2 => obj }
|
||
var = drv.echoMap(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoMap (multi-ref: value for key "a" == value for key "b")'
|
||
dumpTitle(title)
|
||
begin
|
||
value = "c"
|
||
arg = { "a" => value, "b" => value }
|
||
var = drv.echoMap(arg)
|
||
dumpNormal(title, getIdObj(var["a"]), getIdObj(var["b"]))
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoMap (Struct, multi-ref: varString of a key == varString of a value)'
|
||
dumpTitle(title)
|
||
begin
|
||
str = ""
|
||
obj = SOAPStruct.new(1, 1.1, str)
|
||
arg = { obj => "1", "1" => obj }
|
||
var = drv.echoMap(arg)
|
||
dumpNormal(title, getIdObj(var.index("1").varString), getIdObj(var.fetch("1").varString))
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoMapArray'
|
||
dumpTitle(title)
|
||
begin
|
||
map1 = { "a" => 1, "b" => 2 }
|
||
map2 = { "a" => 1, "b" => 2 }
|
||
map3 = { "a" => 1, "b" => 2 }
|
||
arg = [map1, map2, map3]
|
||
var = drv.echoMapArray(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoMapArray (boolean, base64, nil, float)'
|
||
dumpTitle(title)
|
||
begin
|
||
map1 = { true => "\0", "\0" => nil, nil => 0.0001, 0.0001 => false }
|
||
map2 = { true => "\0", "\0" => nil, nil => 0.0001, 0.0001 => false }
|
||
map3 = { true => "\0", "\0" => nil, nil => 0.0001, 0.0001 => false }
|
||
arg = [map1, map2, map3]
|
||
var = drv.echoMapArray(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
# title = 'echoMapArray (sparse)'
|
||
# dumpTitle(title)
|
||
# begin
|
||
# map1 = { "a" => 1, "b" => 2 }
|
||
# map2 = { "a" => 1, "b" => 2 }
|
||
# map3 = { "a" => 1, "b" => 2 }
|
||
# arg = [nil, nil, map1, nil, map2, nil, map3, nil, nil]
|
||
# soapAry = SOAP::Mapping.ary2soap(arg, ApacheNS, "Map", SOAPBuildersInterop::MappingRegistry)
|
||
# soapAry.sparse = true
|
||
# var = drv.echoMapArray(soapAry)
|
||
# dumpNormal(title, arg, var)
|
||
# rescue Exception
|
||
# dumpException(title)
|
||
# end
|
||
|
||
title = 'echoMapArray (multibyte char)'
|
||
dumpTitle(title)
|
||
begin
|
||
map1 = { "Hello (<28><><EFBFBD>ܸ<EFBFBD>Japanese) <20><><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><CBA4><EFBFBD>" => 1, 1 => "Hello (<28><><EFBFBD>ܸ<EFBFBD>Japanese) <20><><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><CBA4><EFBFBD>" }
|
||
map2 = { "Hello (<28><><EFBFBD>ܸ<EFBFBD>Japanese) <20><><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><CBA4><EFBFBD>" => 1, 1 => "Hello (<28><><EFBFBD>ܸ<EFBFBD>Japanese) <20><><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><CBA4><EFBFBD>" }
|
||
map3 = { "Hello (<28><><EFBFBD>ܸ<EFBFBD>Japanese) <20><><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><CBA4><EFBFBD>" => 1, 1 => "Hello (<28><><EFBFBD>ܸ<EFBFBD>Japanese) <20><><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><CBA4><EFBFBD>" }
|
||
arg = [map1, map2, map3]
|
||
var = drv.echoMapArray(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
# title = 'echoMapArray (sparse, multi-ref)'
|
||
# dumpTitle(title)
|
||
# begin
|
||
# map1 = { "a" => 1, "b" => 2 }
|
||
# map2 = { "a" => 1, "b" => 2 }
|
||
# arg = [nil, nil, map1, nil, map2, nil, map1, nil, nil]
|
||
# soapAry = SOAP::Mapping.ary2soap(arg, ApacheNS, "Map", SOAPBuildersInterop::MappingRegistry)
|
||
# soapAry.sparse = true
|
||
# var = drv.echoMapArray(soapAry)
|
||
# dumpNormal(title, arg, var)
|
||
# rescue Exception
|
||
# dumpException(title)
|
||
# end
|
||
|
||
title = 'echoMapArray (multi-ref: elem1 == elem2)'
|
||
dumpTitle(title)
|
||
begin
|
||
map1 = { "a" => 1, "b" => 2 }
|
||
map2 = { "a" => 1, "b" => 2 }
|
||
arg = [map1, map1, map2]
|
||
var = drv.echoMapArray(arg)
|
||
dumpNormal(title, getIdObj(var[0]), getIdObj(var[1]))
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
end
|
||
|
||
end
|
||
|
||
|
||
###
|
||
## Invoke methods.
|
||
#
|
||
def doTestGroupB(drv)
|
||
setWireDumpLogFile('_GroupB')
|
||
drv.wiredump_dev = $wireDumpDev
|
||
# drv.wiredump_filebase = getWireDumpLogFileBase('_GroupB')
|
||
|
||
drv.mapping_registry = SOAPBuildersInterop::MappingRegistry
|
||
|
||
title = 'echoStructAsSimpleTypes'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAPStruct.new(1, 1.1, "a")
|
||
ret, out1, out2 = drv.echoStructAsSimpleTypes(arg)
|
||
var = SOAPStruct.new(out1, out2, ret)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoStructAsSimpleTypes (nil)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAPStruct.new(nil, nil, nil)
|
||
ret, out1, out2 = drv.echoStructAsSimpleTypes(arg)
|
||
var = SOAPStruct.new(out1, out2, ret)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoSimpleTypesAsStruct'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAPStruct.new(1, 1.1, "a")
|
||
var = drv.echoSimpleTypesAsStruct(arg.varString, arg.varInt, arg.varFloat)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoSimpleTypesAsStruct (nil)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAPStruct.new(nil, nil, nil)
|
||
var = drv.echoSimpleTypesAsStruct(arg.varString, arg.varInt, arg.varFloat)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echo2DStringArray'
|
||
dumpTitle(title)
|
||
begin
|
||
|
||
# arg = SOAP::SOAPArray.new(SOAP::ValueArrayName, 2, XSD::XSDString::Type)
|
||
# arg[0, 0] = obj2soap('r0c0')
|
||
# arg[1, 0] = obj2soap('r1c0')
|
||
# arg[2, 0] = obj2soap('r2c0')
|
||
# arg[0, 1] = obj2soap('r0c1')
|
||
# arg[1, 1] = obj2soap('r1c1')
|
||
# arg[2, 1] = obj2soap('r2c1')
|
||
# arg[0, 2] = obj2soap('r0c2')
|
||
# arg[1, 2] = obj2soap('r1c2')
|
||
# arg[2, 2] = obj2soap('r2c2')
|
||
|
||
arg = SOAP::SOAPArray.new(XSD::QName.new('http://soapinterop.org/xsd', 'ArrayOfString2D'), 2, XSD::XSDString::Type)
|
||
arg.size = [3, 3]
|
||
arg.size_fixed = true
|
||
arg.add(SOAP::Mapping.obj2soap('r0c0', SOAPBuildersInterop::MappingRegistry))
|
||
arg.add(SOAP::Mapping.obj2soap('r1c0', SOAPBuildersInterop::MappingRegistry))
|
||
arg.add(SOAP::Mapping.obj2soap('r2c0', SOAPBuildersInterop::MappingRegistry))
|
||
arg.add(SOAP::Mapping.obj2soap('r0c1', SOAPBuildersInterop::MappingRegistry))
|
||
arg.add(SOAP::Mapping.obj2soap('r1c1', SOAPBuildersInterop::MappingRegistry))
|
||
arg.add(SOAP::Mapping.obj2soap('r2c1', SOAPBuildersInterop::MappingRegistry))
|
||
arg.add(SOAP::Mapping.obj2soap('r0c2', SOAPBuildersInterop::MappingRegistry))
|
||
arg.add(SOAP::Mapping.obj2soap('r1c2', SOAPBuildersInterop::MappingRegistry))
|
||
arg.add(SOAP::Mapping.obj2soap('r2c2', SOAPBuildersInterop::MappingRegistry))
|
||
argNormalized = [
|
||
['r0c0', 'r1c0', 'r2c0'],
|
||
['r0c1', 'r1c1', 'r2c1'],
|
||
['r0c2', 'r1c2', 'r2c2'],
|
||
]
|
||
|
||
var = drv.echo2DStringArray(arg)
|
||
dumpNormal(title, argNormalized, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echo2DStringArray (anyType array)'
|
||
dumpTitle(title)
|
||
begin
|
||
# ary2md converts Arry ((of Array)...) into M-D anyType Array
|
||
arg = [
|
||
['r0c0', 'r0c1', 'r0c2'],
|
||
['r1c0', 'r1c1', 'r1c2'],
|
||
['r2c0', 'r0c1', 'r2c2'],
|
||
]
|
||
|
||
paramArg = SOAP::Mapping.ary2md(arg, 2, XSD::Namespace, XSD::AnyTypeLiteral, SOAPBuildersInterop::MappingRegistry)
|
||
paramArg.type = XSD::QName.new('http://soapinterop.org/xsd', 'ArrayOfString2D')
|
||
var = drv.echo2DStringArray(paramArg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
# title = 'echo2DStringArray (sparse)'
|
||
# dumpTitle(title)
|
||
# begin
|
||
# # ary2md converts Arry ((of Array)...) into M-D anyType Array
|
||
# arg = [
|
||
# ['r0c0', nil, 'r0c2'],
|
||
# [nil, 'r1c1', 'r1c2'],
|
||
# ]
|
||
# md = SOAP::Mapping.ary2md(arg, 2, XSD::Namespace, XSD::StringLiteral, SOAPBuildersInterop::MappingRegistry)
|
||
# md.sparse = true
|
||
#
|
||
# var = drv.echo2DStringArray(md)
|
||
# dumpNormal(title, arg, var)
|
||
# rescue Exception
|
||
# dumpException(title)
|
||
# end
|
||
|
||
# title = 'echo2DStringArray (anyType, sparse)'
|
||
# dumpTitle(title)
|
||
# begin
|
||
# # ary2md converts Arry ((of Array)...) into M-D anyType Array
|
||
# arg = [
|
||
# ['r0c0', nil, 'r0c2'],
|
||
# [nil, 'r1c1', 'r1c2'],
|
||
# ]
|
||
# md = SOAP::Mapping.ary2md(arg, 2, XSD::Namespace, XSD::StringLiteral, SOAPBuildersInterop::MappingRegistry)
|
||
# md.sparse = true
|
||
#
|
||
# var = drv.echo2DStringArray(md)
|
||
# dumpNormal(title, arg, var)
|
||
# rescue Exception
|
||
# dumpException(title)
|
||
# end
|
||
|
||
title = 'echo2DStringArray (multi-ref)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAP::SOAPArray.new(XSD::QName.new('http://soapinterop.org/xsd', 'ArrayOfString2D'), 2, XSD::XSDString::Type)
|
||
arg.size = [3, 3]
|
||
arg.size_fixed = true
|
||
|
||
item = 'item'
|
||
arg.add('r0c0')
|
||
arg.add('r1c0')
|
||
arg.add(item)
|
||
arg.add('r0c1')
|
||
arg.add('r1c1')
|
||
arg.add('r2c1')
|
||
arg.add(item)
|
||
arg.add('r1c2')
|
||
arg.add('r2c2')
|
||
argNormalized = [
|
||
['r0c0', 'r1c0', 'item'],
|
||
['r0c1', 'r1c1', 'r2c1'],
|
||
['item', 'r1c2', 'r2c2'],
|
||
]
|
||
|
||
var = drv.echo2DStringArray(arg)
|
||
dumpNormal(title, argNormalized, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echo2DStringArray (multi-ref: ele[2, 0] == ele[0, 2])'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAP::SOAPArray.new(XSD::QName.new('http://soapinterop.org/xsd', 'ArrayOfString2D'), 2, XSD::XSDString::Type)
|
||
arg.size = [3, 3]
|
||
arg.size_fixed = true
|
||
|
||
item = 'item'
|
||
arg.add('r0c0')
|
||
arg.add('r1c0')
|
||
arg.add(item)
|
||
arg.add('r0c1')
|
||
arg.add('r1c1')
|
||
arg.add('r2c1')
|
||
arg.add(item)
|
||
arg.add('r1c2')
|
||
arg.add('r2c2')
|
||
|
||
var = drv.echo2DStringArray(arg)
|
||
dumpNormal(title, getIdObj(var[2][0]), getIdObj(var[0][2]))
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
# title = 'echo2DStringArray (sparse, multi-ref)'
|
||
# dumpTitle(title)
|
||
# begin
|
||
# # ary2md converts Arry ((of Array)...) into M-D anyType Array
|
||
# str = "BANG!"
|
||
# arg = [
|
||
# ['r0c0', nil, str ],
|
||
# [nil, str, 'r1c2'],
|
||
# ]
|
||
# md = SOAP::Mapping.ary2md(arg, 2, XSD::Namespace, XSD::StringLiteral, SOAPBuildersInterop::MappingRegistry)
|
||
# md.sparse = true
|
||
#
|
||
# var = drv.echo2DStringArray(md)
|
||
# dumpNormal(title, arg, var)
|
||
# rescue Exception
|
||
# dumpException(title)
|
||
# end
|
||
|
||
title = 'echoNestedStruct'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAPStructStruct.new(1, 1.1, "a",
|
||
SOAPStruct.new(2, 2.2, "b")
|
||
)
|
||
var = drv.echoNestedStruct(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoNestedStruct (nil)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAPStructStruct.new(nil, nil, nil,
|
||
SOAPStruct.new(nil, nil, nil)
|
||
)
|
||
var = drv.echoNestedStruct(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoNestedStruct (multi-ref: varString of StructStruct == varString of Struct)'
|
||
dumpTitle(title)
|
||
begin
|
||
str1 = ""
|
||
arg = SOAPStructStruct.new(1, 1.1, str1,
|
||
SOAPStruct.new(2, 2.2, str1)
|
||
)
|
||
var = drv.echoNestedStruct(arg)
|
||
dumpNormal(title, getIdObj(var.varString), getIdObj(var.varStruct.varString))
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoNestedArray'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAPArrayStruct.new(1, 1.1, "a", StringArray["2", "2.2", "b"])
|
||
var = drv.echoNestedArray(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoNestedArray (anyType array)'
|
||
dumpTitle(title)
|
||
begin
|
||
arg = SOAPArrayStruct.new(1, 1.1, "a", ["2", "2.2", "b"])
|
||
var = drv.echoNestedArray(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoNestedArray (multi-ref)'
|
||
dumpTitle(title)
|
||
begin
|
||
str = ""
|
||
arg = SOAPArrayStruct.new(1, 1.1, str, StringArray["2", str, "b"])
|
||
var = drv.echoNestedArray(arg)
|
||
dumpNormal(title, arg, var)
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
title = 'echoNestedArray (multi-ref: varString == varArray[1])'
|
||
dumpTitle(title)
|
||
begin
|
||
str = ""
|
||
arg = SOAPArrayStruct.new(1, 1.1, str, StringArray["2", str, "b"])
|
||
var = drv.echoNestedArray(arg)
|
||
dumpNormal(title, getIdObj(var.varString), getIdObj(var.varArray[1]))
|
||
rescue Exception
|
||
dumpException(title)
|
||
end
|
||
|
||
# title = 'echoNestedArray (sparse, multi-ref)'
|
||
# dumpTitle(title)
|
||
# begin
|
||
# str = "!"
|
||
# subAry = [nil, nil, str, nil, str, nil]
|
||
# ary = SOAP::Mapping.ary2soap(subAry, XSD::Namespace, XSD::StringLiteral, SOAPBuildersInterop::MappingRegistry)
|
||
# ary.sparse = true
|
||
# arg = SOAPArrayStruct.new(1, 1.1, str, ary)
|
||
# argNormalized = SOAPArrayStruct.new(1, 1.1, str, subAry)
|
||
# var = drv.echoNestedArray(arg)
|
||
# dumpNormal(title, argNormalized, var)
|
||
# rescue Exception
|
||
# dumpException(title)
|
||
# end
|
||
|
||
end
|