# encoding: ASCII-8BIT
require 'helper'
require 'soap/processor'
module SOAP
class TestCustomNs < Test::Unit::TestCase
NORMAL_XML = <<__XML__.chomp
hi
bi
__XML__
CUSTOM_NS_XML = <<__XML__.chomp
hi
bi
__XML__
XML_WITH_DEFAULT_NS = <<__XML__.chomp
hi
bi
__XML__
def test_custom_ns
# create test env
header = SOAP::SOAPHeader.new()
hi = SOAP::SOAPElement.new(XSD::QName.new("my:foo", "headeritem"), 'hi')
header.add("test", hi)
body = SOAP::SOAPBody.new()
bi = SOAP::SOAPElement.new(XSD::QName.new("my:foo", "bodyitem"), 'bi')
bi.extraattr[XSD::QName.new('my:bar', 'baz')] = 'qux'
body.add("test", bi)
env = SOAP::SOAPEnvelope.new(header, body)
# normal
opt = {}
result = SOAP::Processor.marshal(env, opt)
assert_xml_equal(NORMAL_XML, result)
# Envelope ns customize
env = SOAP::SOAPEnvelope.new(header, body)
ns = XSD::NS.new
ns.assign(SOAP::EnvelopeNamespace, 'ENV')
ns.assign('my:foo', 'myns')
# tag customize
tag = XSD::NS.new
tag.assign('my:bar', 'bar')
opt = { :default_ns => ns, :default_ns_tag => tag }
result = SOAP::Processor.marshal(env, opt)
assert_xml_equal(CUSTOM_NS_XML, result)
end
def test_default_namespace
# create test env
header = SOAP::SOAPHeader.new()
hi = SOAP::SOAPElement.new(XSD::QName.new("my:foo", "headeritem"), 'hi')
header.add("test", hi)
body = SOAP::SOAPBody.new()
bi = SOAP::SOAPElement.new(XSD::QName.new("my:foo", "bodyitem"), 'bi')
bi.extraattr[XSD::QName.new('my:bar', 'baz')] = 'qux'
bi.extraattr[XSD::QName.new('my:foo', 'quxx')] = 'quxxx'
body.add("test", bi)
env = SOAP::SOAPEnvelope.new(header, body)
# normal
opt = {:use_default_namespace => true}
result = SOAP::Processor.marshal(env, opt)
assert_xml_equal(XML_WITH_DEFAULT_NS, result)
end
end
end