# 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