http_stub 0.25.1 → 0.26.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/http_stub.rb +32 -9
- data/lib/http_stub/configurer.rb +2 -10
- data/lib/http_stub/configurer/dsl/scenario_builder.rb +13 -11
- data/lib/http_stub/configurer/dsl/server.rb +32 -43
- data/lib/http_stub/configurer/dsl/server_endpoint_template.rb +23 -0
- data/lib/http_stub/configurer/dsl/session.rb +55 -0
- data/lib/http_stub/configurer/dsl/session_endpoint_template.rb +22 -0
- data/lib/http_stub/configurer/dsl/session_factory.rb +34 -0
- data/lib/http_stub/configurer/dsl/stub_builder.rb +18 -8
- data/lib/http_stub/configurer/dsl/stub_builder_template.rb +26 -0
- data/lib/http_stub/configurer/request/http/basic.rb +9 -3
- data/lib/http_stub/configurer/request/http/factory.rb +7 -16
- data/lib/http_stub/configurer/request/http/multipart.rb +5 -7
- data/lib/http_stub/configurer/request/stub.rb +3 -3
- data/lib/http_stub/configurer/request/triggers.rb +25 -0
- data/lib/http_stub/configurer/server/command_processor.rb +8 -10
- data/lib/http_stub/configurer/server/configuration.rb +33 -0
- data/lib/http_stub/configurer/server/facade.rb +21 -43
- data/lib/http_stub/configurer/server/request_processor.rb +2 -2
- data/lib/http_stub/configurer/server/session_facade.rb +64 -0
- data/lib/http_stub/extensions/core/uri.rb +28 -0
- data/lib/http_stub/extensions/rack/handler.rb +1 -0
- data/lib/http_stub/extensions/sinatra/namespace.rb +9 -0
- data/lib/http_stub/rake/server_tasks.rb +1 -4
- data/lib/http_stub/server/application/application.rb +17 -98
- data/lib/http_stub/server/application/configuration.rb +38 -0
- data/lib/http_stub/server/application/cross_origin_support.rb +7 -5
- data/lib/http_stub/server/application/request_support.rb +38 -0
- data/lib/http_stub/server/application/response_support.rb +19 -0
- data/lib/http_stub/server/application/routes/memory.rb +37 -0
- data/lib/http_stub/server/application/routes/resource.rb +23 -0
- data/lib/http_stub/server/application/routes/scenario.rb +52 -0
- data/lib/http_stub/server/application/routes/session.rb +65 -0
- data/lib/http_stub/server/application/routes/stub.rb +75 -0
- data/lib/http_stub/server/application/session_uri_support.rb +15 -0
- data/lib/http_stub/server/memory/controller.rb +25 -0
- data/lib/http_stub/server/memory/memory.rb +32 -0
- data/lib/http_stub/server/registry.rb +25 -8
- data/lib/http_stub/server/request/factory.rb +23 -0
- data/lib/http_stub/server/request/parameters.rb +2 -2
- data/lib/http_stub/server/request/request.rb +6 -11
- data/lib/http_stub/server/request/sinatra_request.rb +26 -0
- data/lib/http_stub/server/scenario/controller.rb +16 -11
- data/lib/http_stub/server/scenario/not_found_error.rb +15 -0
- data/lib/http_stub/server/session.rb +14 -0
- data/lib/http_stub/server/session/configuration.rb +32 -0
- data/lib/http_stub/server/session/controller.rb +40 -0
- data/lib/http_stub/server/session/empty.rb +15 -0
- data/lib/http_stub/server/session/identifier_strategy.rb +24 -0
- data/lib/http_stub/server/session/registry.rb +38 -0
- data/lib/http_stub/server/session/session.rb +80 -0
- data/lib/http_stub/server/stub/controller.rb +18 -12
- data/lib/http_stub/server/stub/empty.rb +1 -1
- data/lib/http_stub/server/stub/match/controller.rb +9 -5
- data/lib/http_stub/server/stub/payload/response_body_modifier.rb +3 -1
- data/lib/http_stub/server/stub/registry.rb +6 -13
- data/lib/http_stub/server/stub/triggers.rb +11 -9
- data/lib/http_stub/server/views/_home.haml +2 -0
- data/lib/http_stub/server/views/_post_link_function.haml +26 -0
- data/lib/http_stub/server/views/_session.haml +16 -0
- data/lib/http_stub/server/views/_stub.haml +8 -2
- data/lib/http_stub/server/views/_stubs.haml +4 -0
- data/lib/http_stub/server/views/application.sass +4 -1
- data/lib/http_stub/server/views/layout.haml +1 -0
- data/lib/http_stub/server/views/scenario.haml +4 -3
- data/lib/http_stub/server/views/scenarios.haml +7 -6
- data/lib/http_stub/server/views/session.haml +3 -0
- data/lib/http_stub/server/views/sessions.haml +6 -0
- data/lib/http_stub/server/views/stubs.haml +1 -4
- data/lib/http_stub/server/views/transactional_session.haml +2 -0
- data/lib/http_stub/version.rb +1 -1
- data/spec/acceptance/configurer_initialization_spec.rb +40 -51
- data/spec/acceptance/configurer_part_spec.rb +5 -7
- data/spec/acceptance/cross_origin_support_spec.rb +7 -13
- data/spec/acceptance/endpoint_template_spec.rb +2 -4
- data/spec/acceptance/request_reference_spec.rb +1 -3
- data/spec/acceptance/scenario_spec.rb +7 -9
- data/spec/acceptance/server_defaults_spec.rb +2 -4
- data/spec/acceptance/server_memory_spec.rb +20 -0
- data/spec/acceptance/session_spec.rb +125 -0
- data/spec/acceptance/stub_body_request_matching_spec.rb +2 -4
- data/spec/acceptance/stub_control_values_spec.rb +19 -18
- data/spec/acceptance/stub_match_last_spec.rb +0 -4
- data/spec/acceptance/stub_match_list_spec.rb +0 -4
- data/spec/acceptance/stub_miss_list_spec.rb +0 -4
- data/spec/acceptance/stub_spec.rb +11 -11
- data/spec/acceptance/stub_trigger_spec.rb +60 -13
- data/spec/lib/http_stub/configurer/dsl/scenario_builder_spec.rb +83 -30
- data/spec/lib/http_stub/configurer/dsl/server_endpoint_template_spec.rb +167 -0
- data/spec/lib/http_stub/configurer/dsl/server_spec.rb +306 -176
- data/spec/lib/http_stub/configurer/dsl/session_endpoint_template_spec.rb +150 -0
- data/spec/lib/http_stub/configurer/dsl/session_factory_spec.rb +97 -0
- data/spec/lib/http_stub/configurer/dsl/session_spec.rb +222 -0
- data/spec/lib/http_stub/configurer/dsl/stub_builder_spec.rb +209 -48
- data/spec/lib/http_stub/configurer/dsl/stub_builder_template_spec.rb +203 -0
- data/spec/lib/http_stub/configurer/request/http/basic_spec.rb +80 -4
- data/spec/lib/http_stub/configurer/request/http/factory_spec.rb +115 -56
- data/spec/lib/http_stub/configurer/request/http/multipart_spec.rb +39 -6
- data/spec/lib/http_stub/configurer/request/stub_spec.rb +50 -108
- data/spec/lib/http_stub/configurer/request/triggers_spec.rb +101 -0
- data/spec/lib/http_stub/configurer/server/command_processor_integration_spec.rb +11 -10
- data/spec/lib/http_stub/configurer/server/configuration_spec.rb +139 -0
- data/spec/lib/http_stub/configurer/server/facade_spec.rb +65 -142
- data/spec/lib/http_stub/configurer/server/request_processor_spec.rb +7 -6
- data/spec/lib/http_stub/configurer/server/session_facade_spec.rb +336 -0
- data/spec/lib/http_stub/configurer_spec.rb +105 -0
- data/spec/lib/http_stub/extensions/core/uri_spec.rb +75 -0
- data/spec/lib/http_stub/extensions/rack/handler_spec.rb +1 -1
- data/spec/lib/http_stub/extensions/sinatra/namespace_spec.rb +36 -0
- data/spec/lib/http_stub/rake/server_tasks_smoke_spec.rb +4 -3
- data/spec/lib/http_stub/rake/server_tasks_spec.rb +47 -10
- data/spec/lib/http_stub/server/application/application_spec.rb +44 -301
- data/spec/lib/http_stub/server/application/configuration_spec.rb +59 -0
- data/spec/lib/http_stub/server/application/cross_origin_support_spec.rb +23 -20
- data/spec/lib/http_stub/server/application/request_support_integration_spec.rb +93 -0
- data/spec/lib/http_stub/server/application/request_support_spec.rb +61 -0
- data/spec/lib/http_stub/server/application/response_support_spec.rb +30 -0
- data/spec/lib/http_stub/server/application/routes/memory_spec.rb +41 -0
- data/spec/lib/http_stub/server/application/routes/resource_spec.rb +16 -0
- data/spec/lib/http_stub/server/application/routes/scenario_spec.rb +117 -0
- data/spec/lib/http_stub/server/application/routes/session_integration_spec.rb +46 -0
- data/spec/lib/http_stub/server/application/routes/session_spec.rb +186 -0
- data/spec/lib/http_stub/server/application/{application_integration_spec.rb → routes/stub_integration_spec.rb} +16 -38
- data/spec/lib/http_stub/server/application/routes/stub_spec.rb +202 -0
- data/spec/lib/http_stub/server/application/session_uri_support_spec.rb +48 -0
- data/spec/lib/http_stub/server/application/text_formatting_support_spec.rb +3 -3
- data/spec/lib/http_stub/server/memory/controller_spec.rb +47 -0
- data/spec/lib/http_stub/server/memory/memory_spec.rb +122 -0
- data/spec/lib/http_stub/server/registry_spec.rb +153 -34
- data/spec/lib/http_stub/server/request/factory_spec.rb +74 -0
- data/spec/lib/http_stub/server/request/parameters_spec.rb +5 -8
- data/spec/lib/http_stub/server/request/request_spec.rb +52 -52
- data/spec/lib/http_stub/server/request/sinatra_request_spec.rb +132 -0
- data/spec/lib/http_stub/server/scenario/controller_spec.rb +121 -35
- data/spec/lib/http_stub/server/scenario/not_found_error_spec.rb +25 -0
- data/spec/lib/http_stub/server/session/configuration_spec.rb +94 -0
- data/spec/lib/http_stub/server/session/controller_spec.rb +106 -0
- data/spec/lib/http_stub/server/session/empty_spec.rb +13 -0
- data/spec/lib/http_stub/server/session/identifier_strategy_spec.rb +126 -0
- data/spec/lib/http_stub/server/session/registry_spec.rb +214 -0
- data/spec/lib/http_stub/server/session/session_spec.rb +444 -0
- data/spec/lib/http_stub/server/stub/controller_spec.rb +89 -37
- data/spec/lib/http_stub/server/stub/empty_spec.rb +2 -2
- data/spec/lib/http_stub/server/stub/match/controller_spec.rb +59 -16
- data/spec/lib/http_stub/server/stub/payload/response_body_modifier_spec.rb +7 -8
- data/spec/lib/http_stub/server/stub/registry_integration_spec.rb +42 -15
- data/spec/lib/http_stub/server/stub/registry_spec.rb +38 -59
- data/spec/lib/http_stub/server/stub/triggers_spec.rb +93 -34
- data/spec/spec_helper.rb +13 -1
- data/spec/support/contain_file.rb +23 -0
- data/spec/support/cross_origin_server/application.rb +1 -1
- data/spec/support/cross_origin_server/index_page.rb +2 -2
- data/spec/support/cross_origin_server/integration.rb +3 -2
- data/spec/support/cross_origin_server/public/index.html +2 -1
- data/spec/support/http_stub/configurer_integration.rb +12 -14
- data/spec/support/http_stub/server/application/http_stub_rack_application_test.rb +47 -0
- data/spec/support/http_stub/server/driver.rb +56 -0
- data/spec/support/http_stub/server/memory_fixture.rb +17 -0
- data/spec/support/http_stub/server/request_fixture.rb +7 -6
- data/spec/support/http_stub/server/scenario_fixture.rb +13 -0
- data/spec/support/http_stub/server/session_fixture.rb +27 -0
- data/spec/support/http_stub/server_integration.rb +12 -17
- data/spec/support/http_stub/stub_fixture.rb +19 -6
- data/spec/support/include_in_json.rb +4 -4
- data/spec/support/rack/rack_application_test.rb +9 -0
- data/spec/support/rack/request_fixture.rb +13 -0
- data/spec/support/surpressed_output.rb +10 -0
- metadata +149 -36
- data/lib/http_stub/configurer/dsl/deprecated.rb +0 -60
- data/lib/http_stub/configurer/dsl/endpoint_template.rb +0 -38
- data/lib/http_stub/configurer/dsl/scenario_activator.rb +0 -15
- data/lib/http_stub/configurer/dsl/stub_activator_builder.rb +0 -24
- data/lib/http_stub/configurer/dsl/stub_builder_producer.rb +0 -21
- data/lib/http_stub/server/request.rb +0 -12
- data/lib/http_stub/server/scenario/activator.rb +0 -25
- data/lib/http_stub/server/views/_activate_scenario.haml +0 -23
- data/lib/http_stub/server/views/index.haml +0 -8
- data/spec/acceptance/activator_spec.rb +0 -81
- data/spec/lib/http_stub/configurer/dsl/deprecated_spec.rb +0 -240
- data/spec/lib/http_stub/configurer/dsl/endpoint_template_spec.rb +0 -255
- data/spec/lib/http_stub/configurer/dsl/scenario_activator_spec.rb +0 -62
- data/spec/lib/http_stub/configurer/dsl/stub_activator_builder_spec.rb +0 -120
- data/spec/lib/http_stub/configurer/dsl/stub_builder_producer_spec.rb +0 -85
- data/spec/lib/http_stub/server/request_spec.rb +0 -24
- data/spec/lib/http_stub/server/scenario/activator_spec.rb +0 -111
- data/spec/support/http_stub/server/scenario/scenario_fixture.rb +0 -15
@@ -0,0 +1,75 @@
|
|
1
|
+
module HttpStub
|
2
|
+
module Server
|
3
|
+
module Application
|
4
|
+
module Routes
|
5
|
+
|
6
|
+
module Stub
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
super()
|
10
|
+
@stub_controller = HttpStub::Server::Stub::Controller.new
|
11
|
+
@stub_match_controller = HttpStub::Server::Stub::Match::Controller.new
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.included(application)
|
15
|
+
application.instance_eval do
|
16
|
+
|
17
|
+
namespace "/http_stub/stubs" do
|
18
|
+
|
19
|
+
post do
|
20
|
+
response = @stub_controller.register(http_stub_request, logger)
|
21
|
+
@response_pipeline.process(response)
|
22
|
+
end
|
23
|
+
|
24
|
+
get do
|
25
|
+
haml :stubs, {}, stubs: @stub_controller.find_all(http_stub_request)
|
26
|
+
end
|
27
|
+
|
28
|
+
post "/reset" do
|
29
|
+
@stub_controller.reset(http_stub_request, logger)
|
30
|
+
halt 200, "OK"
|
31
|
+
end
|
32
|
+
|
33
|
+
delete do
|
34
|
+
@stub_controller.clear(http_stub_request, logger)
|
35
|
+
halt 200, "OK"
|
36
|
+
end
|
37
|
+
|
38
|
+
namespace "/matches" do
|
39
|
+
|
40
|
+
get do
|
41
|
+
haml :stub_matches, {}, matches: @stub_match_controller.matches(http_stub_request)
|
42
|
+
end
|
43
|
+
|
44
|
+
get "/last" do
|
45
|
+
response = @stub_match_controller.last_match(http_stub_request, logger)
|
46
|
+
@response_pipeline.process(response)
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
get "/misses" do
|
52
|
+
haml :stub_misses, {}, misses: @stub_match_controller.misses(http_stub_request)
|
53
|
+
end
|
54
|
+
|
55
|
+
get "/:stub_id" do
|
56
|
+
establish_http_stub_request
|
57
|
+
haml :stub, {}, the_stub: @stub_controller.find(http_stub_request, logger)
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
any_request_method "*" do
|
63
|
+
response = @stub_controller.match(http_stub_request, logger)
|
64
|
+
@response_pipeline.process(response)
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module HttpStub
|
2
|
+
module Server
|
3
|
+
module Memory
|
4
|
+
|
5
|
+
class Controller
|
6
|
+
|
7
|
+
def initialize(session_configuration, server_memory)
|
8
|
+
@session_configuration = session_configuration
|
9
|
+
@server_memory = server_memory
|
10
|
+
end
|
11
|
+
|
12
|
+
def find_stubs
|
13
|
+
@server_memory.stubs
|
14
|
+
end
|
15
|
+
|
16
|
+
def reset(logger)
|
17
|
+
@session_configuration.reset
|
18
|
+
@server_memory.reset(logger)
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module HttpStub
|
2
|
+
module Server
|
3
|
+
module Memory
|
4
|
+
|
5
|
+
class Memory
|
6
|
+
|
7
|
+
SESSION_ID = HttpStub::Server::Session::MEMORY_SESSION_ID
|
8
|
+
|
9
|
+
private_constant :SESSION_ID
|
10
|
+
|
11
|
+
attr_reader :scenarios, :sessions
|
12
|
+
|
13
|
+
def initialize(session_configuration)
|
14
|
+
@scenarios = HttpStub::Server::Registry.new("scenario")
|
15
|
+
@session = HttpStub::Server::Session::Session.new(SESSION_ID, @scenarios, HttpStub::Server::Session::Empty)
|
16
|
+
@sessions = HttpStub::Server::Session::Registry.new(session_configuration, @scenarios, @session)
|
17
|
+
end
|
18
|
+
|
19
|
+
def stubs
|
20
|
+
@session.stubs
|
21
|
+
end
|
22
|
+
|
23
|
+
def reset(logger)
|
24
|
+
@scenarios.clear(logger)
|
25
|
+
@sessions.clear(logger)
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -3,18 +3,25 @@ module HttpStub
|
|
3
3
|
|
4
4
|
class Registry
|
5
5
|
|
6
|
-
def initialize(model_name)
|
6
|
+
def initialize(model_name, models=[])
|
7
7
|
@model_name = model_name
|
8
|
-
@models =
|
8
|
+
@models = models
|
9
9
|
end
|
10
10
|
|
11
11
|
def add(model, logger)
|
12
12
|
@models.unshift(model)
|
13
|
-
|
13
|
+
log_addition_of([ model ], logger)
|
14
14
|
end
|
15
15
|
|
16
16
|
def concat(models, logger)
|
17
|
-
models.
|
17
|
+
@models.unshift(*models.reverse)
|
18
|
+
log_addition_of(models.reverse, logger)
|
19
|
+
end
|
20
|
+
|
21
|
+
def replace(models, logger)
|
22
|
+
log_pending_clear(logger)
|
23
|
+
@models.replace(models.reverse)
|
24
|
+
log_addition_of(models.reverse, logger)
|
18
25
|
end
|
19
26
|
|
20
27
|
def find(criteria, logger)
|
@@ -30,16 +37,26 @@ module HttpStub
|
|
30
37
|
Array.new(@models)
|
31
38
|
end
|
32
39
|
|
33
|
-
def
|
34
|
-
|
35
|
-
@models
|
40
|
+
def delete(criteria, logger)
|
41
|
+
logger.info "Deleting #{@model_name} matching: #{criteria}"
|
42
|
+
@models.delete_if { |model| model.matches?(criteria, logger) }
|
36
43
|
end
|
37
44
|
|
38
45
|
def clear(logger)
|
39
|
-
logger
|
46
|
+
log_pending_clear(logger)
|
40
47
|
@models.clear
|
41
48
|
end
|
42
49
|
|
50
|
+
private
|
51
|
+
|
52
|
+
def log_pending_clear(logger)
|
53
|
+
logger.info "Clearing #{@model_name} registry"
|
54
|
+
end
|
55
|
+
|
56
|
+
def log_addition_of(models, logger)
|
57
|
+
models.each { |model| logger.info "Registered #{@model_name}: #{model}" }
|
58
|
+
end
|
59
|
+
|
43
60
|
end
|
44
61
|
|
45
62
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module HttpStub
|
2
|
+
module Server
|
3
|
+
module Request
|
4
|
+
|
5
|
+
class Factory
|
6
|
+
|
7
|
+
def initialize(session_configuration, server_memory)
|
8
|
+
@server_memory = server_memory
|
9
|
+
@session_identifier_strategy = HttpStub::Server::Session::IdentifierStrategy.new(session_configuration)
|
10
|
+
end
|
11
|
+
|
12
|
+
def create(rack_request, sinatra_parameters, logger)
|
13
|
+
sinatra_request = HttpStub::Server::Request::SinatraRequest.new(rack_request, sinatra_parameters)
|
14
|
+
session_id = @session_identifier_strategy.identifier_for(sinatra_request)
|
15
|
+
session = @server_memory.sessions.find_or_create(session_id, logger)
|
16
|
+
HttpStub::Server::Request::Request.new(sinatra_request, session_id, session)
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -5,8 +5,8 @@ module HttpStub
|
|
5
5
|
class Parameters < ::HashWithIndifferentAccess
|
6
6
|
include HttpStub::Extensions::Core::Hash::Formatted
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
class << self
|
9
|
+
alias_method :create, :new
|
10
10
|
end
|
11
11
|
|
12
12
|
def initialize(parameter_hash={})
|
@@ -4,19 +4,14 @@ module HttpStub
|
|
4
4
|
|
5
5
|
class Request
|
6
6
|
|
7
|
-
|
7
|
+
delegate :base_uri, :uri, :method, :headers, :parameters, :body, :to_json, to: :@sinatra_request
|
8
8
|
|
9
|
-
|
10
|
-
@base_uri = rack_request.base_url
|
11
|
-
@uri = rack_request.path_info
|
12
|
-
@method = rack_request.request_method.downcase
|
13
|
-
@headers = HttpStub::Server::Request::Headers.create(rack_request)
|
14
|
-
@parameters = HttpStub::Server::Request::Parameters.create(rack_request)
|
15
|
-
@body = rack_request.body.read
|
16
|
-
end
|
9
|
+
attr_reader :session_id, :session
|
17
10
|
|
18
|
-
def
|
19
|
-
|
11
|
+
def initialize(sinatra_request, session_id, session)
|
12
|
+
@sinatra_request = sinatra_request
|
13
|
+
@session_id = session_id
|
14
|
+
@session = session
|
20
15
|
end
|
21
16
|
|
22
17
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module HttpStub
|
2
|
+
module Server
|
3
|
+
module Request
|
4
|
+
|
5
|
+
class SinatraRequest
|
6
|
+
|
7
|
+
attr_reader :base_uri, :uri, :method, :headers, :parameters, :body
|
8
|
+
|
9
|
+
def initialize(rack_request, sinatra_parameters)
|
10
|
+
@base_uri = rack_request.base_url
|
11
|
+
@uri = rack_request.path_info
|
12
|
+
@method = rack_request.request_method.downcase
|
13
|
+
@headers = HttpStub::Server::Request::Headers.create(rack_request)
|
14
|
+
@parameters = HttpStub::Server::Request::Parameters.create(sinatra_parameters)
|
15
|
+
@body = rack_request.body.read.tap { rack_request.body.rewind }
|
16
|
+
end
|
17
|
+
|
18
|
+
def to_json(*args)
|
19
|
+
{ uri: @uri, method: @method, headers: @headers, parameters: @parameters, body: @body }.to_json(*args)
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -4,9 +4,8 @@ module HttpStub
|
|
4
4
|
|
5
5
|
class Controller
|
6
6
|
|
7
|
-
def initialize(
|
8
|
-
@scenario_registry
|
9
|
-
@scenario_activator = HttpStub::Server::Scenario::Activator.new(scenario_registry, stub_registry)
|
7
|
+
def initialize(server_memory)
|
8
|
+
@scenario_registry = server_memory.scenarios
|
10
9
|
end
|
11
10
|
|
12
11
|
def register(request, logger)
|
@@ -15,14 +14,20 @@ module HttpStub
|
|
15
14
|
HttpStub::Server::Response::OK
|
16
15
|
end
|
17
16
|
|
18
|
-
def
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
17
|
+
def find(request, logger)
|
18
|
+
@scenario_registry.find(URI.decode_www_form_component(request.parameters[:name]), logger)
|
19
|
+
end
|
20
|
+
|
21
|
+
def find_all
|
22
|
+
@scenario_registry.all.sort_by(&:name)
|
23
|
+
end
|
24
|
+
|
25
|
+
def activate(request, logger)
|
26
|
+
scenario_names = request.parameters[:name] ? [request.parameters[:name] ] : request.parameters[:names]
|
27
|
+
scenario_names.each { |name| request.session.activate_scenario!(name, logger) }
|
28
|
+
HttpStub::Server::Response::OK
|
29
|
+
rescue HttpStub::Server::Scenario::NotFoundError
|
30
|
+
HttpStub::Server::Response::NOT_FOUND
|
26
31
|
end
|
27
32
|
|
28
33
|
def clear(logger)
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module HttpStub
|
2
|
+
module Server
|
3
|
+
module Session
|
4
|
+
|
5
|
+
class Configuration
|
6
|
+
|
7
|
+
DEFAULT_CONFIGURATION = [
|
8
|
+
{ parameter: HttpStub::Server::Session::ID_ATTRIBUTE_NAME },
|
9
|
+
{ header: HttpStub::Server::Session::ID_ATTRIBUTE_NAME }
|
10
|
+
].freeze
|
11
|
+
DEFAULT_IDENTIFIER = HttpStub::Server::Session::MEMORY_SESSION_ID
|
12
|
+
|
13
|
+
private_constant :DEFAULT_CONFIGURATION, :DEFAULT_IDENTIFIER
|
14
|
+
|
15
|
+
attr_reader :identifier_configuration
|
16
|
+
|
17
|
+
attr_accessor :default_identifier
|
18
|
+
|
19
|
+
def initialize(identifier_setting)
|
20
|
+
@identifier_configuration = DEFAULT_CONFIGURATION + (identifier_setting ? [ identifier_setting ] : [])
|
21
|
+
@default_identifier = DEFAULT_IDENTIFIER
|
22
|
+
end
|
23
|
+
|
24
|
+
def reset
|
25
|
+
@default_identifier = DEFAULT_IDENTIFIER
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module HttpStub
|
2
|
+
module Server
|
3
|
+
module Session
|
4
|
+
|
5
|
+
class Controller
|
6
|
+
|
7
|
+
def initialize(session_configuration, server_memory)
|
8
|
+
@session_configuration = session_configuration
|
9
|
+
@server_memory = server_memory
|
10
|
+
end
|
11
|
+
|
12
|
+
def find(request, logger)
|
13
|
+
@server_memory.sessions.find(request.session_id, logger)
|
14
|
+
end
|
15
|
+
|
16
|
+
def find_transactional(logger)
|
17
|
+
@server_memory.sessions.find(HttpStub::Server::Session::TRANSACTIONAL_SESSION_ID, logger)
|
18
|
+
end
|
19
|
+
|
20
|
+
def find_all
|
21
|
+
@server_memory.sessions.all
|
22
|
+
end
|
23
|
+
|
24
|
+
def mark_default(request)
|
25
|
+
@session_configuration.default_identifier = request.session_id
|
26
|
+
end
|
27
|
+
|
28
|
+
def delete(request, logger)
|
29
|
+
@server_memory.sessions.delete(request.session_id, logger)
|
30
|
+
end
|
31
|
+
|
32
|
+
def clear(logger)
|
33
|
+
@server_memory.sessions.clear(logger)
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|