aboutsummaryrefslogtreecommitdiffstats
path: root/actionwebservice/test/dispatcher_action_controller_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionwebservice/test/dispatcher_action_controller_test.rb')
-rw-r--r--actionwebservice/test/dispatcher_action_controller_test.rb186
1 files changed, 0 insertions, 186 deletions
diff --git a/actionwebservice/test/dispatcher_action_controller_test.rb b/actionwebservice/test/dispatcher_action_controller_test.rb
deleted file mode 100644
index 11ab21c6a6..0000000000
--- a/actionwebservice/test/dispatcher_action_controller_test.rb
+++ /dev/null
@@ -1,186 +0,0 @@
-require File.dirname(__FILE__) + '/abstract_soap'
-require 'wsdl/parser'
-
-module DispatcherActionControllerTest
- class API < ActionWebService::API::Base
- api_method :add, :expects => [:int, :int], :returns => [:int]
- end
-
- class DirectAPI < ActionWebService::API::Base
- api_method :add, :expects => [{:a=>:int}, {:b=>:int}], :returns => [:int]
- api_method :before_filtered
- api_method :after_filtered, :returns => [:int]
- api_method :thrower
- end
-
- class Service < ActionWebService::Base
- web_service_api API
-
- attr :added
-
- def add(a, b)
- @added = a + b
- end
- end
-
- class AbstractController < ActionController::Base
- def generate_wsdl(container, uri, soap_action_base)
- to_wsdl(container, uri, soap_action_base)
- end
- end
-
- class DelegatedController < AbstractController
- web_service_dispatching_mode :delegated
-
- web_service(:test_service) { @service ||= Service.new; @service }
- end
-
- class DirectController < AbstractController
- web_service_api DirectAPI
- web_service_dispatching_mode :direct
-
- before_filter :alwaysfail, :only => [:before_filtered]
- after_filter :alwaysok, :only => [:after_filtered]
-
- attr :added
- attr :before_filter_called
- attr :before_filter_target_called
- attr :after_filter_called
- attr :after_filter_target_called
-
- def initialize
- @before_filter_called = false
- @before_filter_target_called = false
- @after_filter_called = false
- @after_filter_target_called = false
- end
-
- def add
- @added = @params['a'] + @params['b']
- end
-
- def before_filtered
- @before_filter_target_called = true
- end
-
- def after_filtered
- @after_filter_target_called = true
- 5
- end
-
- def thrower
- raise "Hi, I'm a SOAP exception"
- end
-
- protected
- def alwaysfail
- @before_filter_called = true
- false
- end
-
- def alwaysok
- @after_filter_called = true
- end
- end
-end
-
-class TC_DispatcherActionController < AbstractSoapTest
- include DispatcherActionControllerTest
-
- def test_direct_dispatching
- @container = DirectController.new
- assert(do_soap_call('Add', 20, 50) == 70)
- assert(@container.added == 70)
- end
-
- def test_direct_entrypoint
- @container = DirectController.new
- assert(@container.respond_to?(:api))
- end
-
- def test_direct_filtering
- @container = DirectController.new
- assert(@container.before_filter_called == false)
- assert(@container.before_filter_target_called == false)
- assert(do_soap_call('BeforeFiltered').nil?)
- assert(@container.before_filter_called == true)
- assert(@container.before_filter_target_called == false)
- assert(@container.after_filter_called == false)
- assert(@container.after_filter_target_called == false)
- assert(do_soap_call('AfterFiltered') == 5)
- assert(@container.after_filter_called == true)
- assert(@container.after_filter_target_called == true)
- end
-
- def test_delegated_dispatching
- @container = DelegatedController.new
- assert(do_soap_call('Add', 50, 80) == 130)
- assert(service.added == 130)
- end
-
- def test_exception_marshaling
- @container = DirectController.new
- result = do_soap_call('Thrower')
- exception = result.detail
- assert(exception.cause.is_a?(RuntimeError))
- assert_equal("Hi, I'm a SOAP exception", exception.cause.message)
- @container.web_service_exception_reporting = false
- assert_raises(SoapTestError) do
- do_soap_call('Thrower')
- end
- end
-
- def test_wsdl_generation
- ensure_valid_wsdl_generation DelegatedController.new
- ensure_valid_wsdl_generation DirectController.new
- end
-
- def
-
- def test_wsdl_action
- ensure_valid_wsdl_action DelegatedController.new
- ensure_valid_wsdl_action DirectController.new
- end
-
- protected
- def service_name
- @container.is_a?(DelegatedController) ? 'test_service' : 'api'
- end
-
- def service
- @container.web_service_object(:test_service)
- end
-
- def do_soap_call(public_method_name, *args)
- super(public_method_name, *args) do |test_request, test_response|
- response = @container.process(test_request, test_response)
- end
- end
-
- def ensure_valid_wsdl_generation(controller)
- wsdl = controller.generate_wsdl(controller, 'http://localhost:3000/test/', '/test')
- ensure_valid_wsdl(wsdl)
- end
-
- def ensure_valid_wsdl(wsdl)
- 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
- end
-
- def ensure_valid_wsdl_action(controller)
- test_request = ActionController::TestRequest.new({ 'action' => 'wsdl' })
- test_request.env['REQUEST_METHOD'] = 'GET'
- test_request.env['HTTP_HOST'] = 'localhost:3000'
- test_response = ActionController::TestResponse.new
- wsdl = controller.process(test_request, test_response).body
- ensure_valid_wsdl(wsdl)
- end
-end