summaryrefslogtreecommitdiff
path: root/test/support/request_handler_test_helper.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/support/request_handler_test_helper.rb')
-rw-r--r--test/support/request_handler_test_helper.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/support/request_handler_test_helper.rb b/test/support/request_handler_test_helper.rb
new file mode 100644
index 0000000..3ca89ba
--- /dev/null
+++ b/test/support/request_handler_test_helper.rb
@@ -0,0 +1,39 @@
+module RequestHandlerTestHelper
+
+ protected
+
+ def assert_refuses(opts = {})
+ assert_nil handle(request(opts))
+ end
+
+ def assert_handles(opts = {})
+ assert handle(request(opts))
+ end
+
+ def assert_queries_for(*query_args, &block)
+ source_class.stub :new, source_expecting_query_for(*query_args), &block
+ end
+
+ def source_expecting_query_for(*query_args)
+ source = Minitest::Mock.new
+ source.expect :query, 'response', query_args
+ source
+ end
+
+ def assert_responds_with_error(msg, opts)
+ response = handle(request(opts))
+ assert_equal 500, response.status
+ assert_equal "500 #{msg}\n", response.content
+ end
+
+ def handle(request)
+ handler.call(request)
+ end
+
+ def request(opts = {})
+ params = {'address' => [opts[:email]]}
+ headers = {'Host' => opts[:domain]}
+ Nickserver::Request.new params, headers
+ end
+
+end