aboutsummaryrefslogtreecommitdiffstats
path: root/actionwebservice/test/container_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionwebservice/test/container_test.rb')
-rw-r--r--actionwebservice/test/container_test.rb53
1 files changed, 53 insertions, 0 deletions
diff --git a/actionwebservice/test/container_test.rb b/actionwebservice/test/container_test.rb
new file mode 100644
index 0000000000..8c66651b64
--- /dev/null
+++ b/actionwebservice/test/container_test.rb
@@ -0,0 +1,53 @@
+require File.dirname(__FILE__) + '/abstract_unit'
+
+module ContainerTest
+
+ $immediate_service = Object.new
+ $deferred_service = Object.new
+
+ class DelegateContainer < ActionController::Base
+ web_service_dispatching_mode :delegated
+
+ attr :flag
+ attr :previous_flag
+
+ def initialize
+ @previous_flag = nil
+ @flag = true
+ end
+
+ web_service :immediate_service, $immediate_service
+ web_service(:deferred_service) { @previous_flag = @flag; @flag = false; $deferred_service }
+ end
+
+ class DirectContainer < ActionController::Base
+ web_service_dispatching_mode :direct
+ end
+end
+
+class TC_Container < Test::Unit::TestCase
+ def setup
+ @delegate_container = ContainerTest::DelegateContainer.new
+ @direct_container = ContainerTest::DirectContainer.new
+ end
+
+ def test_registration
+ assert(ContainerTest::DelegateContainer.has_web_service?(:immediate_service))
+ assert(ContainerTest::DelegateContainer.has_web_service?(:deferred_service))
+ assert(!ContainerTest::DelegateContainer.has_web_service?(:fake_service))
+ end
+
+ def test_service_object
+ assert(@delegate_container.flag == true)
+ assert(@delegate_container.web_service_object(:immediate_service) == $immediate_service)
+ assert(@delegate_container.previous_flag.nil?)
+ assert(@delegate_container.flag == true)
+ assert(@delegate_container.web_service_object(:deferred_service) == $deferred_service)
+ assert(@delegate_container.previous_flag == true)
+ assert(@delegate_container.flag == false)
+ end
+
+ def test_direct_container
+ assert(ContainerTest::DirectContainer.web_service_dispatching_mode == :direct)
+ end
+end