diff options
Diffstat (limited to 'test/support')
-rw-r--r-- | test/support/request_handler_test_helper.rb | 39 |
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 |