class Rack::ClientSpec::TestCase
Attributes
sequence[R]
Public Class Methods
make_sequences()
click to toggle source
# File lib/rack/client_spec/test_case.rb, line 11 def self.make_sequences() sequences = {} self.instance_methods.grep(/^test_/).map do |name| sequences[name] = self.new(nil).call_test_method(name, test: false).sequence end sequences end
new(got_sequence = nil)
click to toggle source
# File lib/rack/client_spec/test_case.rb, line 31 def initialize(got_sequence = nil) @got_sequence = got_sequence @run_test = !got_sequence.nil? @sequence = [] end
run_sequence(name, sequence)
click to toggle source
# File lib/rack/client_spec/test_case.rb, line 19 def self.run_sequence(name, sequence) r = nil begin self.new(sequence).call_test_method(name, test: true) rescue Assertion => e r = e end Result.new r end
Public Instance Methods
assert_request(expect_request, &block)
click to toggle source
# File lib/rack/client_spec/test_case.rb, line 37 def assert_request(expect_request, &block) got = @got_sequence.shift unless expect_request.match? got.env raise ArgumentError, "Request is not matched with the expected request" end block.yield got.env, got.response end
call_test_method(name, test: nil)
click to toggle source
# File lib/rack/client_spec/test_case.rb, line 45 def call_test_method(name, test: nil) @run_test = test unless test.nil? setup if respond_to? :setup send name self end
route(method, path, env, &block)
click to toggle source
# File lib/rack/client_spec/test_case.rb, line 52 def route(method, path, env, &block) request = ExpectRequest.new(method, path, env) @sequence << request assert_request request, &block if @run_test end
Private Instance Methods
delete(path, **env, &block)
click to toggle source
# File lib/rack/client_spec/test_case.rb, line 70 def delete(path, **env, &block) route "DELETE", path, env, &block end
get(path, **env, &block)
click to toggle source
# File lib/rack/client_spec/test_case.rb, line 58 def get(path, **env, &block) route "GET", path, env, &block end
head(path, **env, &block)
click to toggle source
# File lib/rack/client_spec/test_case.rb, line 61 def head(path, **env, &block) route "HEAD", path, env, &block end
link(path, **env, &block)
click to toggle source
# File lib/rack/client_spec/test_case.rb, line 79 def link(path, **env, &block) route "LINK", path, env, &block end
options(path, **env, &block)
click to toggle source
# File lib/rack/client_spec/test_case.rb, line 73 def options(path, **env, &block) route "OPTIONS", path, env, &block end
patch(path, **env, &block)
click to toggle source
# File lib/rack/client_spec/test_case.rb, line 76 def patch(path, **env, &block) route "PATCH", path, env, &block end
post(path, **env, &block)
click to toggle source
# File lib/rack/client_spec/test_case.rb, line 67 def post(path, **env, &block) route "POST", path, env, &block end
put(path, **env, &block)
click to toggle source
# File lib/rack/client_spec/test_case.rb, line 64 def put(path, **env, &block) route "PUT", path, env, &block end
unlink(path, **env, &block)
click to toggle source
# File lib/rack/client_spec/test_case.rb, line 82 def unlink(path, **env, &block) route "UNLINK", path, env, &block end