Class: MockWebService::Server
- Inherits:
-
Object
- Object
- MockWebService::Server
- Defined in:
- lib/mock-web-service/server.rb
Constant Summary collapse
- @@requests =
[]
- @@responses =
{}
Instance Method Summary collapse
- #add(response, opts = ResponseOptions.new) ⇒ Object
- #add_response(response) ⇒ Object
- #add_soap_response(response) ⇒ Object
- #clear_requests ⇒ Object
- #get_all_requests ⇒ Object
- #get_latest_request ⇒ Object
- #reset_server ⇒ Object
- #set_response(opts, &block) ⇒ Object
- #start(overrides = {}) ⇒ Object
- #wait_for_next_request(timeout_seconds = 5, retry_interval = 0.5) ⇒ Object
Instance Method Details
#add(response, opts = ResponseOptions.new) ⇒ Object
41 42 43 44 45 46 47 48 49 50 |
# File 'lib/mock-web-service/server.rb', line 41 def add(response, opts = ResponseOptions.new) @@responses[opts.path] = response set_response(opts) do status(opts.status) content_type opts.content_type headers opts.headers @@requests.push(request) return @@responses[opts.path] end end |
#add_response(response) ⇒ Object
24 25 26 27 28 29 30 31 32 |
# File 'lib/mock-web-service/server.rb', line 24 def add_response(response) warn "[DEPRECATION] `add_response` is no longer supported. Please use `add` instead." Sinatra::Base.reset! Sinatra::Base.post '*/*' do content_type 'text/xml' @@requests.push(request.body.read) response end end |
#add_soap_response(response) ⇒ Object
34 35 36 37 38 39 |
# File 'lib/mock-web-service/server.rb', line 34 def add_soap_response(response) set_response(ResponseOptions.new {|opts| opts.path = '*/*'; opts.method = :post}) do content_type 'text/xml' response end end |
#clear_requests ⇒ Object
14 15 16 |
# File 'lib/mock-web-service/server.rb', line 14 def clear_requests @@requests = [] end |
#get_all_requests ⇒ Object
10 11 12 |
# File 'lib/mock-web-service/server.rb', line 10 def get_all_requests @@requests end |
#get_latest_request ⇒ Object
6 7 8 |
# File 'lib/mock-web-service/server.rb', line 6 def get_latest_request @@requests.pop end |
#reset_server ⇒ Object
62 63 64 65 66 |
# File 'lib/mock-web-service/server.rb', line 62 def reset_server Sinatra::Base.reset! @@requests = [] @@responses = {} end |
#set_response(opts, &block) ⇒ Object
68 69 70 |
# File 'lib/mock-web-service/server.rb', line 68 def set_response(opts, &block) Sinatra::Base.send(opts.method, opts.path, &block) end |
#start(overrides = {}) ⇒ Object
18 19 20 21 22 |
# File 'lib/mock-web-service/server.rb', line 18 def start(overrides = {}) disable_logging = {AccessLog: []} = {:bind => '0.0.0.0', :server_settings => disable_logging}.merge(overrides) Async.instance.run { Sinatra::Base.start!()} end |
#wait_for_next_request(timeout_seconds = 5, retry_interval = 0.5) ⇒ Object
52 53 54 55 56 57 58 59 60 |
# File 'lib/mock-web-service/server.rb', line 52 def wait_for_next_request(timeout_seconds = 5, retry_interval = 0.5) start = Time.now current_requests_count = @@requests.length while (@@requests.length == current_requests_count) break if (Time.now - start).to_i >= timeout_seconds sleep(retry_interval) end @@requests.last end |