Methods
E
I
S
T
Included Modules
Instance Public methods
setup()
# File rails/actionwebservice/test/dispatcher_action_controller_soap_test.rb, line 25
def setup
  @direct_controller = DirectController.new
  @delegated_controller = DelegatedController.new
  @virtual_controller = VirtualController.new
  @layered_controller = LayeredController.new
  @protocol = ActionWebService::Protocol::Soap::SoapProtocol.create(@direct_controller)
end
test_autoloading()
# File rails/actionwebservice/test/dispatcher_action_controller_soap_test.rb, line 50
def test_autoloading
  assert(!AutoLoadController.web_service_api.nil?)
  assert(AutoLoadController.web_service_api.has_public_api_method?('Void'))
  assert(FailingAutoLoadController.web_service_api.nil?)
  assert_raises(MissingSourceFile) do
    FailingAutoLoadController.require_web_service_api :blah
  end
  assert_raises(ArgumentError) do
    FailingAutoLoadController.require_web_service_api 50.0
  end
  assert(BrokenAutoLoadController.web_service_api.nil?)
end
test_layered_dispatching()
# File rails/actionwebservice/test/dispatcher_action_controller_soap_test.rb, line 63
def test_layered_dispatching
  mt_cats = do_method_call(@layered_controller, 'mt.getCategories')
  assert_equal(["mtCat1", "mtCat2"], mt_cats)
  blogger_cats = do_method_call(@layered_controller, 'blogger.getCategories')
  assert_equal(["bloggerCat1", "bloggerCat2"], blogger_cats)
end
test_utf8()
# File rails/actionwebservice/test/dispatcher_action_controller_soap_test.rb, line 70
def test_utf8
  @direct_controller.web_service_exception_reporting = true
  $KCODE = 'u'
  assert_equal(Utf8String, do_method_call(@direct_controller, 'TestUtf8'))
  retval = SOAP::Processor.unmarshal(@response_body).body.response
  assert retval.is_a?(SOAP::SOAPString)

  # If $KCODE is not set to UTF-8, any strings with non-ASCII UTF-8 data
  # will be sent back as base64 by SOAP4R. By the time we get it here though,
  # it will be decoded back into a string. So lets read the base64 value
  # from the message body directly.
  $KCODE = 'NONE'
  do_method_call(@direct_controller, 'TestUtf8')
  retval = SOAP::Processor.unmarshal(@response_body).body.response
  assert retval.is_a?(SOAP::SOAPBase64)
  assert_equal "T25lIFdvcmxkIENhZsOp", retval.data.to_s
end
test_wsdl_action()
# File rails/actionwebservice/test/dispatcher_action_controller_soap_test.rb, line 38
def test_wsdl_action
  delegated_types = ensure_valid_wsdl_action DelegatedController.new
  delegated_names = delegated_types.map{|x| x.name.name}
  assert(delegated_names.include?('DispatcherTest..NodeArray'))
  assert(delegated_names.include?('DispatcherTest..Node'))
  direct_types = ensure_valid_wsdl_action DirectController.new
  direct_names = direct_types.map{|x| x.name.name}
  assert(direct_names.include?('DispatcherTest..NodeArray'))
  assert(direct_names.include?('DispatcherTest..Node'))
  assert(direct_names.include?('IntegerArray'))
end
test_wsdl_generation()
# File rails/actionwebservice/test/dispatcher_action_controller_soap_test.rb, line 33
def test_wsdl_generation
  ensure_valid_wsdl_generation DelegatedController.new, DispatcherTest::WsdlNamespace
  ensure_valid_wsdl_generation DirectController.new, DispatcherTest::WsdlNamespace
end
Instance Protected methods
ensure_valid_wsdl(controller, wsdl, expected_namespace)
# File rails/actionwebservice/test/dispatcher_action_controller_soap_test.rb, line 107
def ensure_valid_wsdl(controller, wsdl, expected_namespace)
  definitions = WSDL::Parser.new.parse(wsdl)
  assert(definitions.is_a?(WSDL::Definitions))
  definitions.bindings.each do |binding|
    assert(binding.name.name.index(':').nil?)
  end
  definitions.services.each do |service|
    service.ports.each do |port|
      assert(port.name.name.index(':').nil?)
    end
  end
  types = definitions.collect_complextypes.map{|x| x.name}
  types.each do |type|
    assert(type.namespace == expected_namespace)
  end
  location = definitions.services[0].ports[0].soap_address.location
  if controller.is_a?(DelegatedController)
    assert_match %r{http://test.host/dispatcher_test/delegated/test_service$}, location
  elsif controller.is_a?(DirectController)
    assert_match %r{http://test.host/dispatcher_test/direct/api$}, location
  end
  definitions.collect_complextypes
end
ensure_valid_wsdl_action(controller)
# File rails/actionwebservice/test/dispatcher_action_controller_soap_test.rb, line 131
def ensure_valid_wsdl_action(controller)
  test_request = ActionController::TestRequest.new({ 'action' => 'wsdl' })
  test_response = ActionController::TestResponse.new
  wsdl = controller.process(test_request, test_response).body
  ensure_valid_wsdl(controller, wsdl, DispatcherTest::WsdlNamespace)
end
ensure_valid_wsdl_generation(controller, expected_namespace)
# File rails/actionwebservice/test/dispatcher_action_controller_soap_test.rb, line 102
def ensure_valid_wsdl_generation(controller, expected_namespace)
  wsdl = controller.generate_wsdl
  ensure_valid_wsdl(controller, wsdl, expected_namespace)
end
exception_message(soap_fault_exception)
# File rails/actionwebservice/test/dispatcher_action_controller_soap_test.rb, line 89
def exception_message(soap_fault_exception)
  soap_fault_exception.detail.cause.message
end
is_exception?(obj)
# File rails/actionwebservice/test/dispatcher_action_controller_soap_test.rb, line 93
def is_exception?(obj)
  obj.respond_to?(:detail) && obj.detail.respond_to?(:cause) &&        obj.detail.cause.is_a?(Exception)
end
service_name(container)
# File rails/actionwebservice/test/dispatcher_action_controller_soap_test.rb, line 98
def service_name(container)
  container.is_a?(DelegatedController) ? 'test_service' : 'api'
end