http_stub 0.27.0 → 0.28.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/lib/http_stub/client.rb +18 -0
 - data/lib/http_stub/client/client.rb +28 -0
 - data/lib/http_stub/client/request.rb +38 -0
 - data/lib/http_stub/client/server.rb +20 -0
 - data/lib/http_stub/client/session.rb +43 -0
 - data/lib/http_stub/configurator.rb +61 -0
 - data/lib/http_stub/configurator/endpoint_template.rb +24 -0
 - data/lib/http_stub/configurator/part.rb +23 -0
 - data/lib/http_stub/configurator/scenario.rb +42 -0
 - data/lib/http_stub/configurator/server.rb +53 -0
 - data/lib/http_stub/configurator/state.rb +41 -0
 - data/lib/http_stub/configurator/stub.rb +13 -0
 - data/lib/http_stub/configurator/stub/stub.rb +75 -0
 - data/lib/http_stub/{configurer/dsl/stub_builder_template.rb → configurator/stub/template.rb} +5 -5
 - data/lib/http_stub/extensions/core/object.rb +17 -0
 - data/lib/http_stub/rake/server_tasks.rb +2 -14
 - data/lib/http_stub/rake/task_generators.rb +3 -3
 - data/lib/http_stub/server.rb +110 -0
 - data/lib/http_stub/server/application/application.rb +10 -6
 - data/lib/http_stub/server/application/request_support.rb +2 -2
 - data/lib/http_stub/server/application/routes/memory.rb +1 -6
 - data/lib/http_stub/server/application/routes/scenario.rb +1 -11
 - data/lib/http_stub/server/application/routes/session.rb +1 -1
 - data/lib/http_stub/server/application/routes/status.rb +0 -10
 - data/lib/http_stub/server/application/routes/stub.rb +2 -12
 - data/lib/http_stub/server/daemon.rb +1 -10
 - data/lib/http_stub/server/memory/controller.rb +2 -8
 - data/lib/http_stub/server/memory/initial_state.rb +27 -0
 - data/lib/http_stub/server/memory/memory.rb +6 -27
 - data/lib/http_stub/server/registry.rb +3 -1
 - data/lib/http_stub/server/request/factory.rb +3 -3
 - data/lib/http_stub/server/response.rb +12 -6
 - data/lib/http_stub/server/scenario.rb +2 -2
 - data/lib/http_stub/server/scenario/controller.rb +3 -13
 - data/lib/http_stub/server/scenario/registry.rb +25 -0
 - data/lib/http_stub/server/scenario/scenario.rb +13 -8
 - data/lib/http_stub/server/session.rb +0 -1
 - data/lib/http_stub/server/session/controller.rb +7 -8
 - data/lib/http_stub/server/session/identifier_strategy.rb +9 -2
 - data/lib/http_stub/server/session/registry.rb +7 -13
 - data/lib/http_stub/server/session/session.rb +4 -8
 - data/lib/http_stub/server/stdout_logger.rb +13 -0
 - data/lib/http_stub/server/stub.rb +3 -2
 - data/lib/http_stub/server/stub/controller.rb +0 -10
 - data/lib/http_stub/server/stub/empty.rb +2 -1
 - data/lib/http_stub/server/stub/match/controller.rb +1 -1
 - data/lib/http_stub/server/stub/match/exact_value_matcher.rb +2 -1
 - data/lib/http_stub/server/stub/match/omitted_value_matcher.rb +1 -1
 - data/lib/http_stub/server/stub/match/regexp_value_matcher.rb +1 -2
 - data/lib/http_stub/server/stub/match/rule/body.rb +7 -29
 - data/lib/http_stub/server/stub/match/rule/{json_body.rb → json_schema_body.rb} +1 -1
 - data/lib/http_stub/server/stub/match/rule/method.rb +1 -1
 - data/lib/http_stub/server/stub/match/rule/schema_body.rb +39 -0
 - data/lib/http_stub/server/stub/match/rules.rb +6 -6
 - data/lib/http_stub/server/stub/match/string_value_matcher.rb +1 -2
 - data/lib/http_stub/server/stub/registry.rb +4 -4
 - data/lib/http_stub/server/stub/response.rb +2 -6
 - data/lib/http_stub/server/stub/response/blocks.rb +33 -0
 - data/lib/http_stub/server/stub/response/body.rb +21 -0
 - data/lib/http_stub/server/stub/response/file_body.rb +46 -0
 - data/lib/http_stub/server/stub/response/headers.rb +24 -0
 - data/lib/http_stub/server/stub/response/response.rb +52 -0
 - data/lib/http_stub/server/stub/response/text_body.rb +32 -0
 - data/lib/http_stub/server/stub/stub.rb +17 -11
 - data/lib/http_stub/server/stub/triggers.rb +16 -5
 - data/lib/http_stub/server/views/_file_body_response.haml +1 -0
 - data/lib/http_stub/server/views/_response.haml +6 -1
 - data/lib/http_stub/server/views/_text_body_response.haml +1 -0
 - data/lib/http_stub/server/views/application.sass +31 -31
 - data/lib/http_stub/version.rb +1 -1
 - data/spec/acceptance/{configurer_part_spec.rb → configurator_part_spec.rb} +8 -8
 - data/spec/acceptance/cross_origin_support_spec.rb +9 -11
 - data/spec/acceptance/endpoint_template_spec.rb +5 -5
 - data/spec/acceptance/scenario_spec.rb +8 -8
 - data/spec/acceptance/server_defaults_spec.rb +3 -3
 - data/spec/acceptance/server_memory_spec.rb +13 -5
 - data/spec/acceptance/server_status_spec.rb +4 -21
 - data/spec/acceptance/session_spec.rb +8 -11
 - data/spec/acceptance/stub_body_request_matching_spec.rb +9 -9
 - data/spec/acceptance/stub_control_values_spec.rb +74 -82
 - data/spec/acceptance/stub_match_last_spec.rb +60 -80
 - data/spec/acceptance/stub_match_list_spec.rb +30 -66
 - data/spec/acceptance/stub_miss_list_spec.rb +19 -27
 - data/spec/acceptance/stub_response_block_spec.rb +66 -0
 - data/spec/acceptance/stub_spec.rb +109 -185
 - data/spec/acceptance/stub_trigger_spec.rb +12 -89
 - data/spec/helper.rb +32 -10
 - data/spec/lib/http_stub/client/client_spec.rb +109 -0
 - data/spec/lib/http_stub/client/request_integration_spec.rb +74 -0
 - data/spec/lib/http_stub/client/request_spec.rb +32 -0
 - data/spec/lib/http_stub/client/server_spec.rb +75 -0
 - data/spec/lib/http_stub/client/session_spec.rb +117 -0
 - data/spec/lib/http_stub/client_spec.rb +15 -0
 - data/spec/lib/http_stub/{configurer/dsl/server_endpoint_template_spec.rb → configurator/endpoint_template_spec.rb} +49 -38
 - data/spec/lib/http_stub/configurator/part_spec.rb +103 -0
 - data/spec/lib/http_stub/configurator/scenario_spec.rb +162 -0
 - data/spec/lib/http_stub/configurator/server_spec.rb +344 -0
 - data/spec/lib/http_stub/configurator/state_spec.rb +113 -0
 - data/spec/lib/http_stub/configurator/stub/stub_spec.rb +867 -0
 - data/spec/lib/http_stub/{configurer/dsl/stub_builder_template_spec.rb → configurator/stub/template_spec.rb} +46 -44
 - data/spec/lib/http_stub/configurator/stub_spec.rb +27 -0
 - data/spec/lib/http_stub/configurator_spec.rb +113 -0
 - data/spec/lib/http_stub/extensions/core/hash_spec.rb +3 -3
 - data/spec/lib/http_stub/extensions/core/object_spec.rb +29 -0
 - data/spec/lib/http_stub/rake/server_daemon_tasks_smoke_spec.rb +14 -9
 - data/spec/lib/http_stub/rake/server_tasks_smoke_spec.rb +25 -53
 - data/spec/lib/http_stub/rake/server_tasks_spec.rb +12 -55
 - data/spec/lib/http_stub/server/application/application_spec.rb +4 -49
 - data/spec/lib/http_stub/server/application/cross_origin_support_spec.rb +2 -5
 - data/spec/lib/http_stub/server/application/request_support_integration_spec.rb +4 -4
 - data/spec/lib/http_stub/server/application/request_support_spec.rb +16 -11
 - data/spec/lib/http_stub/server/application/routes/memory_spec.rb +1 -21
 - data/spec/lib/http_stub/server/application/routes/scenario_spec.rb +4 -56
 - data/spec/lib/http_stub/server/application/routes/session_integration_spec.rb +1 -1
 - data/spec/lib/http_stub/server/application/routes/status_spec.rb +2 -36
 - data/spec/lib/http_stub/server/application/routes/stub_integration_spec.rb +3 -34
 - data/spec/lib/http_stub/server/application/routes/stub_spec.rb +6 -55
 - data/spec/lib/http_stub/server/daemon_integration_spec.rb +5 -1
 - data/spec/lib/http_stub/server/daemon_spec.rb +8 -77
 - data/spec/lib/http_stub/server/memory/controller_spec.rb +2 -28
 - data/spec/lib/http_stub/server/memory/initial_state_spec.rb +57 -0
 - data/spec/lib/http_stub/server/memory/memory_spec.rb +28 -116
 - data/spec/lib/http_stub/server/registry_spec.rb +57 -2
 - data/spec/lib/http_stub/server/request/factory_spec.rb +8 -6
 - data/spec/lib/http_stub/server/response_spec.rb +32 -10
 - data/spec/lib/http_stub/server/scenario/controller_spec.rb +14 -53
 - data/spec/lib/http_stub/server/scenario/registry_spec.rb +147 -0
 - data/spec/lib/http_stub/server/scenario/scenario_spec.rb +8 -10
 - data/spec/lib/http_stub/server/scenario_spec.rb +1 -1
 - data/spec/lib/http_stub/server/session/controller_spec.rb +4 -5
 - data/spec/lib/http_stub/server/session/identifier_strategy_spec.rb +15 -48
 - data/spec/lib/http_stub/server/session/registry_spec.rb +15 -28
 - data/spec/lib/http_stub/server/session/session_spec.rb +13 -71
 - data/spec/lib/http_stub/server/stdout_logger_spec.rb +17 -0
 - data/spec/lib/http_stub/server/stub/controller_spec.rb +7 -65
 - data/spec/lib/http_stub/server/stub/empty_spec.rb +8 -0
 - data/spec/lib/http_stub/server/stub/match/controller_spec.rb +2 -2
 - data/spec/lib/http_stub/server/stub/match/exact_value_matcher_spec.rb +49 -11
 - data/spec/lib/http_stub/server/stub/match/hash_matcher_spec.rb +4 -4
 - data/spec/lib/http_stub/server/stub/match/match_spec.rb +4 -4
 - data/spec/lib/http_stub/server/stub/match/miss_spec.rb +2 -2
 - data/spec/lib/http_stub/server/stub/match/omitted_value_matcher_spec.rb +31 -12
 - data/spec/lib/http_stub/server/stub/match/regexp_value_matcher_spec.rb +20 -11
 - data/spec/lib/http_stub/server/stub/match/rule/body_spec.rb +3 -3
 - data/spec/lib/http_stub/server/stub/match/rule/{json_body_spec.rb → json_schema_body_spec.rb} +5 -5
 - data/spec/lib/http_stub/server/stub/match/rule/method_spec.rb +42 -8
 - data/spec/lib/http_stub/server/stub/match/rule/schema_body_spec.rb +64 -0
 - data/spec/lib/http_stub/server/stub/match/rules_spec.rb +18 -18
 - data/spec/lib/http_stub/server/stub/match/string_value_matcher_spec.rb +10 -63
 - data/spec/lib/http_stub/server/stub/registry_integration_spec.rb +11 -28
 - data/spec/lib/http_stub/server/stub/registry_spec.rb +6 -13
 - data/spec/lib/http_stub/server/stub/response/blocks_spec.rb +64 -0
 - data/spec/lib/http_stub/server/stub/response/body_spec.rb +52 -0
 - data/spec/lib/http_stub/server/stub/response/file_body_spec.rb +117 -0
 - data/spec/lib/http_stub/server/stub/response/headers_spec.rb +89 -0
 - data/spec/lib/http_stub/server/stub/response/response_spec.rb +342 -0
 - data/spec/lib/http_stub/server/stub/response/text_body_spec.rb +138 -0
 - data/spec/lib/http_stub/server/stub/response_spec.rb +23 -32
 - data/spec/lib/http_stub/server/stub/stub_spec.rb +33 -39
 - data/spec/lib/http_stub/server/stub/triggers_spec.rb +47 -12
 - data/spec/lib/http_stub/server/stub_spec.rb +1 -1
 - data/spec/support/extensions/core/random.rb +23 -0
 - data/spec/support/http_stub/configurator/scenario_builder.rb +35 -0
 - data/spec/support/http_stub/configurator/scenario_fixture.rb +39 -0
 - data/spec/support/http_stub/configurator/stub_builder.rb +112 -0
 - data/spec/support/http_stub/configurator/stub_fixture.rb +58 -0
 - data/spec/support/http_stub/configurator_fixture.rb +13 -0
 - data/spec/support/http_stub/configurator_with_stub_builder_and_requester.rb +14 -0
 - data/spec/support/http_stub/headers_fixture.rb +11 -0
 - data/spec/support/http_stub/{html_view_excluding_request_details.rb → html_view_excluding_a_stub_request.rb} +2 -2
 - data/spec/support/http_stub/{html_view_including_request_details.rb → html_view_including_a_stub_request.rb} +20 -12
 - data/spec/support/http_stub/port.rb +12 -0
 - data/spec/support/http_stub/server/application/http_stub_rack_application_test.rb +2 -3
 - data/spec/support/http_stub/server/driver.rb +20 -15
 - data/spec/support/http_stub/server/memory_fixture.rb +2 -2
 - data/spec/support/http_stub/server/request/sinatra_request_fixture.rb +16 -0
 - data/spec/support/http_stub/server/request_fixture.rb +11 -6
 - data/spec/support/http_stub/server/scenario_fixture.rb +14 -2
 - data/spec/support/http_stub/server/session_fixture.rb +2 -16
 - data/spec/support/http_stub/server/silent_logger.rb +7 -0
 - data/spec/support/http_stub/server/simple_request.rb +17 -0
 - data/spec/support/http_stub/server/stub/match/match_fixture.rb +1 -1
 - data/spec/support/http_stub/server/stub/response/blocks_fixture.rb +54 -0
 - data/spec/support/http_stub/server/stub/response/file_body_fixture.rb +25 -0
 - data/spec/support/http_stub/server/stub/response/text_body_fixture.rb +33 -0
 - data/spec/support/http_stub/server/stub/response_builder.rb +24 -0
 - data/spec/support/http_stub/server/stub/response_fixture.rb +15 -0
 - data/spec/support/http_stub/server/stub_fixture.rb +21 -0
 - data/spec/support/http_stub/server_integration.rb +9 -6
 - data/spec/support/http_stub/stub_requester.rb +37 -0
 - data/spec/support/object_convertable_to_json.rb +11 -0
 - data/spec/support/rack/rack_application_test.rb +1 -1
 - data/spec/support/rack/request_fixture.rb +22 -4
 - metadata +166 -207
 - data/lib/http_stub.rb +0 -131
 - data/lib/http_stub/configurer.rb +0 -42
 - data/lib/http_stub/configurer/dsl/request_attribute_referencer.rb +0 -19
 - data/lib/http_stub/configurer/dsl/request_referencer.rb +0 -24
 - data/lib/http_stub/configurer/dsl/scenario_builder.rb +0 -39
 - data/lib/http_stub/configurer/dsl/server.rb +0 -80
 - data/lib/http_stub/configurer/dsl/server_endpoint_template.rb +0 -23
 - data/lib/http_stub/configurer/dsl/session.rb +0 -51
 - data/lib/http_stub/configurer/dsl/session_endpoint_template.rb +0 -22
 - data/lib/http_stub/configurer/dsl/session_factory.rb +0 -34
 - data/lib/http_stub/configurer/dsl/stub_builder.rb +0 -65
 - data/lib/http_stub/configurer/part.rb +0 -23
 - data/lib/http_stub/configurer/request/controllable_value.rb +0 -19
 - data/lib/http_stub/configurer/request/http/basic.rb +0 -27
 - data/lib/http_stub/configurer/request/http/factory.rb +0 -33
 - data/lib/http_stub/configurer/request/http/multipart.rb +0 -34
 - data/lib/http_stub/configurer/request/omittable.rb +0 -26
 - data/lib/http_stub/configurer/request/regexpable.rb +0 -33
 - data/lib/http_stub/configurer/request/scenario.rb +0 -29
 - data/lib/http_stub/configurer/request/stub.rb +0 -39
 - data/lib/http_stub/configurer/request/stub_response.rb +0 -38
 - data/lib/http_stub/configurer/request/stub_response_file.rb +0 -20
 - data/lib/http_stub/configurer/request/triggers.rb +0 -25
 - data/lib/http_stub/configurer/server/buffered_command_processor.rb +0 -24
 - data/lib/http_stub/configurer/server/command.rb +0 -22
 - data/lib/http_stub/configurer/server/command_processor.rb +0 -35
 - data/lib/http_stub/configurer/server/configuration.rb +0 -33
 - data/lib/http_stub/configurer/server/facade.rb +0 -61
 - data/lib/http_stub/configurer/server/request_processor.rb +0 -30
 - data/lib/http_stub/configurer/server/session_facade.rb +0 -57
 - data/lib/http_stub/server/application/configuration.rb +0 -38
 - data/lib/http_stub/server/application/response_pipeline.rb +0 -20
 - data/lib/http_stub/server/application/response_support.rb +0 -19
 - data/lib/http_stub/server/scenario/parser.rb +0 -17
 - data/lib/http_stub/server/session/configuration.rb +0 -32
 - data/lib/http_stub/server/status/controller.rb +0 -25
 - data/lib/http_stub/server/stub/parser.rb +0 -17
 - data/lib/http_stub/server/stub/payload.rb +0 -20
 - data/lib/http_stub/server/stub/payload/base_uri_modifier.rb +0 -17
 - data/lib/http_stub/server/stub/payload/response_body_modifier.rb +0 -21
 - data/lib/http_stub/server/stub/response/attribute/body.rb +0 -32
 - data/lib/http_stub/server/stub/response/attribute/headers.rb +0 -32
 - data/lib/http_stub/server/stub/response/attribute/interpolator.rb +0 -26
 - data/lib/http_stub/server/stub/response/attribute/interpolator/headers.rb +0 -27
 - data/lib/http_stub/server/stub/response/attribute/interpolator/parameters.rb +0 -27
 - data/lib/http_stub/server/stub/response/base.rb +0 -61
 - data/lib/http_stub/server/stub/response/file.rb +0 -45
 - data/lib/http_stub/server/stub/response/text.rb +0 -35
 - data/lib/http_stub/server/views/_file_response.haml +0 -1
 - data/lib/http_stub/server/views/_text_response.haml +0 -1
 - data/spec/acceptance/configurer_initialization_spec.rb +0 -157
 - data/spec/acceptance/request_reference_spec.rb +0 -42
 - data/spec/lib/http_stub/configurer/dsl/request_attribute_referencer_spec.rb +0 -37
 - data/spec/lib/http_stub/configurer/dsl/request_referencer_spec.rb +0 -37
 - data/spec/lib/http_stub/configurer/dsl/scenario_builder_spec.rb +0 -201
 - data/spec/lib/http_stub/configurer/dsl/server_spec.rb +0 -575
 - data/spec/lib/http_stub/configurer/dsl/session_endpoint_template_spec.rb +0 -150
 - data/spec/lib/http_stub/configurer/dsl/session_factory_spec.rb +0 -97
 - data/spec/lib/http_stub/configurer/dsl/session_spec.rb +0 -210
 - data/spec/lib/http_stub/configurer/dsl/stub_builder_spec.rb +0 -747
 - data/spec/lib/http_stub/configurer/part_spec.rb +0 -103
 - data/spec/lib/http_stub/configurer/request/controllable_value_spec.rb +0 -34
 - data/spec/lib/http_stub/configurer/request/http/basic_spec.rb +0 -91
 - data/spec/lib/http_stub/configurer/request/http/factory_spec.rb +0 -222
 - data/spec/lib/http_stub/configurer/request/http/multipart_spec.rb +0 -118
 - data/spec/lib/http_stub/configurer/request/omittable_spec.rb +0 -70
 - data/spec/lib/http_stub/configurer/request/regexpable_spec.rb +0 -77
 - data/spec/lib/http_stub/configurer/request/scenario_spec.rb +0 -69
 - data/spec/lib/http_stub/configurer/request/stub_response_spec.rb +0 -195
 - data/spec/lib/http_stub/configurer/request/stub_spec.rb +0 -231
 - data/spec/lib/http_stub/configurer/request/triggers_spec.rb +0 -101
 - data/spec/lib/http_stub/configurer/server/buffered_command_processor_spec.rb +0 -35
 - data/spec/lib/http_stub/configurer/server/command_processor_integration_spec.rb +0 -75
 - data/spec/lib/http_stub/configurer/server/command_spec.rb +0 -26
 - data/spec/lib/http_stub/configurer/server/configuration_spec.rb +0 -139
 - data/spec/lib/http_stub/configurer/server/facade_spec.rb +0 -235
 - data/spec/lib/http_stub/configurer/server/request_processor_spec.rb +0 -100
 - data/spec/lib/http_stub/configurer/server/session_facade_spec.rb +0 -285
 - data/spec/lib/http_stub/configurer_spec.rb +0 -105
 - data/spec/lib/http_stub/server/application/configuration_spec.rb +0 -59
 - data/spec/lib/http_stub/server/application/response_pipeline_spec.rb +0 -29
 - data/spec/lib/http_stub/server/application/response_support_spec.rb +0 -30
 - data/spec/lib/http_stub/server/scenario/parser_spec.rb +0 -64
 - data/spec/lib/http_stub/server/session/configuration_spec.rb +0 -94
 - data/spec/lib/http_stub/server/status/controller_spec.rb +0 -47
 - data/spec/lib/http_stub/server/stub/parser_spec.rb +0 -56
 - data/spec/lib/http_stub/server/stub/payload/base_uri_modifier_spec.rb +0 -23
 - data/spec/lib/http_stub/server/stub/payload/response_body_modifier_spec.rb +0 -84
 - data/spec/lib/http_stub/server/stub/payload_spec.rb +0 -33
 - data/spec/lib/http_stub/server/stub/response/attribute/body_spec.rb +0 -98
 - data/spec/lib/http_stub/server/stub/response/attribute/headers_spec.rb +0 -73
 - data/spec/lib/http_stub/server/stub/response/attribute/interpolator/headers_spec.rb +0 -53
 - data/spec/lib/http_stub/server/stub/response/attribute/interpolator/parameters_spec.rb +0 -53
 - data/spec/lib/http_stub/server/stub/response/attribute/interpolator_spec.rb +0 -41
 - data/spec/lib/http_stub/server/stub/response/base_spec.rb +0 -217
 - data/spec/lib/http_stub/server/stub/response/file_spec.rb +0 -197
 - data/spec/lib/http_stub/server/stub/response/text_spec.rb +0 -182
 - data/spec/resources/sample.pdf +0 -0
 - data/spec/resources/sample.txt +0 -1
 - data/spec/support/http_stub/configurer_integration.rb +0 -24
 - data/spec/support/http_stub/empty_configurer.rb +0 -7
 - data/spec/support/http_stub/scenario_fixture.rb +0 -33
 - data/spec/support/http_stub/stub_fixture.rb +0 -125
 - data/spec/support/http_stub/stub_registrator.rb +0 -83
 
| 
         @@ -1,231 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            describe HttpStub::Configurer::Request::Stub do
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
              let(:fixture)          { HttpStub::StubFixture.new }
         
     | 
| 
       4 
     | 
    
         
            -
              let(:stub_response)    { instance_double(HttpStub::Configurer::Request::StubResponse) }
         
     | 
| 
       5 
     | 
    
         
            -
              let(:stub_triggers)    { instance_double(HttpStub::Configurer::Request::Triggers) }
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
              let(:stub) { HttpStub::Configurer::Request::Stub.new(fixture.configurer_payload) }
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
              before(:example) do
         
     | 
| 
       10 
     | 
    
         
            -
                allow(HttpStub::Configurer::Request::StubResponse).to receive(:new).and_return(stub_response)
         
     | 
| 
       11 
     | 
    
         
            -
                allow(HttpStub::Configurer::Request::Triggers).to receive(:new).and_return(stub_triggers)
         
     | 
| 
       12 
     | 
    
         
            -
              end
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
              describe "#payload" do
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
                subject { stub.payload }
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
                before(:example) do
         
     | 
| 
       19 
     | 
    
         
            -
                  allow(HttpStub::Configurer::Request::ControllableValue).to receive(:format)
         
     | 
| 
       20 
     | 
    
         
            -
                  allow(stub_response).to receive(:payload)
         
     | 
| 
       21 
     | 
    
         
            -
                  allow(stub_triggers).to receive(:payload)
         
     | 
| 
       22 
     | 
    
         
            -
                end
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
                context "when request headers" do
         
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
                  context "are provided" do
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
                    it "formats the headers into control values" do
         
     | 
| 
       29 
     | 
    
         
            -
                      expect(HttpStub::Configurer::Request::ControllableValue).to receive(:format).with(fixture.request.headers)
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
                      subject
         
     | 
| 
       32 
     | 
    
         
            -
                    end
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
                  end
         
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
                  context "are not provided" do
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
                    before(:example) { fixture.request.headers = nil }
         
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
                    it "formats an empty header hash" do
         
     | 
| 
       41 
     | 
    
         
            -
                      expect(HttpStub::Configurer::Request::ControllableValue).to receive(:format).with({})
         
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
                      subject
         
     | 
| 
       44 
     | 
    
         
            -
                    end
         
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
                  end
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
                end
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
                context "when request parameters" do
         
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
                  context "are provided" do
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
                    it "formats the request parameters into control values" do
         
     | 
| 
       55 
     | 
    
         
            -
                      expect(HttpStub::Configurer::Request::ControllableValue).to receive(:format).with(fixture.request.parameters)
         
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
                      subject
         
     | 
| 
       58 
     | 
    
         
            -
                    end
         
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
                  end
         
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
                  context "are not provided" do
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
                    before(:example) { fixture.request.parameters = nil }
         
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
                    it "formats an empty parameter hash" do
         
     | 
| 
       67 
     | 
    
         
            -
                      expect(HttpStub::Configurer::Request::ControllableValue).to receive(:format).with({})
         
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
                      subject
         
     | 
| 
       70 
     | 
    
         
            -
                    end
         
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
       72 
     | 
    
         
            -
                  end
         
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
       74 
     | 
    
         
            -
                end
         
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
                context "when a request body" do
         
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
                  context "is provided" do
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
                    it "formats the request body into a control value" do
         
     | 
| 
       81 
     | 
    
         
            -
                      expect(HttpStub::Configurer::Request::ControllableValue).to receive(:format).with(fixture.request.body)
         
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
                      subject
         
     | 
| 
       84 
     | 
    
         
            -
                    end
         
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
                  end
         
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
       88 
     | 
    
         
            -
                  context "is not provided" do
         
     | 
| 
       89 
     | 
    
         
            -
             
     | 
| 
       90 
     | 
    
         
            -
                    before(:example) { fixture.request.body = nil }
         
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
                    it "formats an empty parameter hash" do
         
     | 
| 
       93 
     | 
    
         
            -
                      expect(HttpStub::Configurer::Request::ControllableValue).to receive(:format).with({})
         
     | 
| 
       94 
     | 
    
         
            -
             
     | 
| 
       95 
     | 
    
         
            -
                      subject
         
     | 
| 
       96 
     | 
    
         
            -
                    end
         
     | 
| 
       97 
     | 
    
         
            -
             
     | 
| 
       98 
     | 
    
         
            -
                  end
         
     | 
| 
       99 
     | 
    
         
            -
             
     | 
| 
       100 
     | 
    
         
            -
                end
         
     | 
| 
       101 
     | 
    
         
            -
             
     | 
| 
       102 
     | 
    
         
            -
                it "creates a stub response with the provided response options" do
         
     | 
| 
       103 
     | 
    
         
            -
                  expect(HttpStub::Configurer::Request::StubResponse).to(
         
     | 
| 
       104 
     | 
    
         
            -
                    receive(:new).with(anything, fixture.configurer_payload[:response]).and_return(stub_response)
         
     | 
| 
       105 
     | 
    
         
            -
                  )
         
     | 
| 
       106 
     | 
    
         
            -
             
     | 
| 
       107 
     | 
    
         
            -
                  subject
         
     | 
| 
       108 
     | 
    
         
            -
                end
         
     | 
| 
       109 
     | 
    
         
            -
             
     | 
| 
       110 
     | 
    
         
            -
                it "creates stub triggers with the provided triggers options" do
         
     | 
| 
       111 
     | 
    
         
            -
                  expect(HttpStub::Configurer::Request::Triggers).to(
         
     | 
| 
       112 
     | 
    
         
            -
                    receive(:new).with(fixture.configurer_payload[:triggers]).and_return(stub_triggers)
         
     | 
| 
       113 
     | 
    
         
            -
                  )
         
     | 
| 
       114 
     | 
    
         
            -
             
     | 
| 
       115 
     | 
    
         
            -
                  subject
         
     | 
| 
       116 
     | 
    
         
            -
                end
         
     | 
| 
       117 
     | 
    
         
            -
             
     | 
| 
       118 
     | 
    
         
            -
                context "builds a hash that" do
         
     | 
| 
       119 
     | 
    
         
            -
             
     | 
| 
       120 
     | 
    
         
            -
                  it "has an entry containing the control value representation of the uri" do
         
     | 
| 
       121 
     | 
    
         
            -
                    allow(HttpStub::Configurer::Request::ControllableValue).to(
         
     | 
| 
       122 
     | 
    
         
            -
                      receive(:format).with(fixture.request.uri).and_return("uri as a string")
         
     | 
| 
       123 
     | 
    
         
            -
                    )
         
     | 
| 
       124 
     | 
    
         
            -
             
     | 
| 
       125 
     | 
    
         
            -
                    expect(subject).to include(uri: "uri as a string")
         
     | 
| 
       126 
     | 
    
         
            -
                  end
         
     | 
| 
       127 
     | 
    
         
            -
             
     | 
| 
       128 
     | 
    
         
            -
                  it "has an entry for the method option" do
         
     | 
| 
       129 
     | 
    
         
            -
                    expect(subject).to include(method: fixture.request.http_method)
         
     | 
| 
       130 
     | 
    
         
            -
                  end
         
     | 
| 
       131 
     | 
    
         
            -
             
     | 
| 
       132 
     | 
    
         
            -
                  it "has an entry containing the string representation of the request headers" do
         
     | 
| 
       133 
     | 
    
         
            -
                    allow(HttpStub::Configurer::Request::ControllableValue).to(
         
     | 
| 
       134 
     | 
    
         
            -
                      receive(:format).with(fixture.request.headers).and_return("request headers as string")
         
     | 
| 
       135 
     | 
    
         
            -
                    )
         
     | 
| 
       136 
     | 
    
         
            -
             
     | 
| 
       137 
     | 
    
         
            -
                    expect(subject).to include(headers: "request headers as string")
         
     | 
| 
       138 
     | 
    
         
            -
                  end
         
     | 
| 
       139 
     | 
    
         
            -
             
     | 
| 
       140 
     | 
    
         
            -
                  it "has an entry containing the string representation of the request parameters" do
         
     | 
| 
       141 
     | 
    
         
            -
                    allow(HttpStub::Configurer::Request::ControllableValue).to(
         
     | 
| 
       142 
     | 
    
         
            -
                      receive(:format).with(fixture.request.parameters).and_return("request parameters as string")
         
     | 
| 
       143 
     | 
    
         
            -
                    )
         
     | 
| 
       144 
     | 
    
         
            -
             
     | 
| 
       145 
     | 
    
         
            -
                    expect(subject).to include(parameters: "request parameters as string")
         
     | 
| 
       146 
     | 
    
         
            -
                  end
         
     | 
| 
       147 
     | 
    
         
            -
             
     | 
| 
       148 
     | 
    
         
            -
                  it "has an entry containing the response payload" do
         
     | 
| 
       149 
     | 
    
         
            -
                    allow(stub_response).to receive(:payload).and_return("response payload")
         
     | 
| 
       150 
     | 
    
         
            -
             
     | 
| 
       151 
     | 
    
         
            -
                    expect(subject).to include(response: "response payload")
         
     | 
| 
       152 
     | 
    
         
            -
                  end
         
     | 
| 
       153 
     | 
    
         
            -
             
     | 
| 
       154 
     | 
    
         
            -
                  it "has an entry containing the triggers payload" do
         
     | 
| 
       155 
     | 
    
         
            -
                    allow(stub_triggers).to receive(:payload).and_return("triggers payload")
         
     | 
| 
       156 
     | 
    
         
            -
             
     | 
| 
       157 
     | 
    
         
            -
                    expect(subject).to include(triggers: "triggers payload")
         
     | 
| 
       158 
     | 
    
         
            -
                  end
         
     | 
| 
       159 
     | 
    
         
            -
             
     | 
| 
       160 
     | 
    
         
            -
                end
         
     | 
| 
       161 
     | 
    
         
            -
             
     | 
| 
       162 
     | 
    
         
            -
              end
         
     | 
| 
       163 
     | 
    
         
            -
             
     | 
| 
       164 
     | 
    
         
            -
              describe "#response_files" do
         
     | 
| 
       165 
     | 
    
         
            -
             
     | 
| 
       166 
     | 
    
         
            -
                let(:stub_response_file)      { nil }
         
     | 
| 
       167 
     | 
    
         
            -
                let(:triggers_response_files) { [] }
         
     | 
| 
       168 
     | 
    
         
            -
             
     | 
| 
       169 
     | 
    
         
            -
                subject { stub.response_files }
         
     | 
| 
       170 
     | 
    
         
            -
             
     | 
| 
       171 
     | 
    
         
            -
                before(:example) do
         
     | 
| 
       172 
     | 
    
         
            -
                  allow(stub_response).to receive(:file).and_return(stub_response_file)
         
     | 
| 
       173 
     | 
    
         
            -
                  allow(stub_triggers).to receive(:response_files).and_return(triggers_response_files)
         
     | 
| 
       174 
     | 
    
         
            -
                end
         
     | 
| 
       175 
     | 
    
         
            -
             
     | 
| 
       176 
     | 
    
         
            -
                context "when the response contains a file" do
         
     | 
| 
       177 
     | 
    
         
            -
             
     | 
| 
       178 
     | 
    
         
            -
                  let(:stub_response_file) { instance_double(HttpStub::Configurer::Request::StubResponseFile) }
         
     | 
| 
       179 
     | 
    
         
            -
             
     | 
| 
       180 
     | 
    
         
            -
                  let(:triggers_response_files) { [] }
         
     | 
| 
       181 
     | 
    
         
            -
             
     | 
| 
       182 
     | 
    
         
            -
                  it "includes the stub response's file" do
         
     | 
| 
       183 
     | 
    
         
            -
                    expect(subject).to include(stub_response_file)
         
     | 
| 
       184 
     | 
    
         
            -
                  end
         
     | 
| 
       185 
     | 
    
         
            -
             
     | 
| 
       186 
     | 
    
         
            -
                end
         
     | 
| 
       187 
     | 
    
         
            -
             
     | 
| 
       188 
     | 
    
         
            -
                context "when the triggers contain files" do
         
     | 
| 
       189 
     | 
    
         
            -
             
     | 
| 
       190 
     | 
    
         
            -
                  let(:triggers_response_files) do
         
     | 
| 
       191 
     | 
    
         
            -
                    (1..3).map { instance_double(HttpStub::Configurer::Request::StubResponseFile) }
         
     | 
| 
       192 
     | 
    
         
            -
                  end
         
     | 
| 
       193 
     | 
    
         
            -
             
     | 
| 
       194 
     | 
    
         
            -
                  it "includes the triggers files" do
         
     | 
| 
       195 
     | 
    
         
            -
                    expect(subject).to include(*triggers_response_files)
         
     | 
| 
       196 
     | 
    
         
            -
                  end
         
     | 
| 
       197 
     | 
    
         
            -
             
     | 
| 
       198 
     | 
    
         
            -
                end
         
     | 
| 
       199 
     | 
    
         
            -
             
     | 
| 
       200 
     | 
    
         
            -
                context "when both the response and triggers contain files" do
         
     | 
| 
       201 
     | 
    
         
            -
             
     | 
| 
       202 
     | 
    
         
            -
                  let(:stub_response_file)      { instance_double(HttpStub::Configurer::Request::StubResponseFile) }
         
     | 
| 
       203 
     | 
    
         
            -
                  let(:triggers_response_files) do
         
     | 
| 
       204 
     | 
    
         
            -
                    (1..3).map { instance_double(HttpStub::Configurer::Request::StubResponseFile) }
         
     | 
| 
       205 
     | 
    
         
            -
                  end
         
     | 
| 
       206 
     | 
    
         
            -
             
     | 
| 
       207 
     | 
    
         
            -
                  it "is all the files" do
         
     | 
| 
       208 
     | 
    
         
            -
                    expect(subject).to eql(([ stub_response_file ] + triggers_response_files).flatten)
         
     | 
| 
       209 
     | 
    
         
            -
                  end
         
     | 
| 
       210 
     | 
    
         
            -
             
     | 
| 
       211 
     | 
    
         
            -
                end
         
     | 
| 
       212 
     | 
    
         
            -
             
     | 
| 
       213 
     | 
    
         
            -
                context "when neither the response or triggers contain files" do
         
     | 
| 
       214 
     | 
    
         
            -
             
     | 
| 
       215 
     | 
    
         
            -
                  it "returns an empty array" do
         
     | 
| 
       216 
     | 
    
         
            -
                    expect(subject).to eql([])
         
     | 
| 
       217 
     | 
    
         
            -
                  end
         
     | 
| 
       218 
     | 
    
         
            -
             
     | 
| 
       219 
     | 
    
         
            -
                end
         
     | 
| 
       220 
     | 
    
         
            -
             
     | 
| 
       221 
     | 
    
         
            -
              end
         
     | 
| 
       222 
     | 
    
         
            -
             
     | 
| 
       223 
     | 
    
         
            -
              describe "#to_s" do
         
     | 
| 
       224 
     | 
    
         
            -
             
     | 
| 
       225 
     | 
    
         
            -
                it "returns the request uri" do
         
     | 
| 
       226 
     | 
    
         
            -
                  expect(stub.to_s).to eql(fixture.request.uri)
         
     | 
| 
       227 
     | 
    
         
            -
                end
         
     | 
| 
       228 
     | 
    
         
            -
             
     | 
| 
       229 
     | 
    
         
            -
              end
         
     | 
| 
       230 
     | 
    
         
            -
             
     | 
| 
       231 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,101 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            describe HttpStub::Configurer::Request::Triggers do
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
              let(:scenario_names) { (1..3).map { |i| "Some scenario #{i}" } }
         
     | 
| 
       4 
     | 
    
         
            -
              let(:stubs)          { (1..3).map { instance_double(HttpStub::Configurer::Request::Stub) } }
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
              let(:triggers) { HttpStub::Configurer::Request::Triggers.new(scenario_names: scenario_names, stubs: stubs) }
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
              describe "#response_files" do
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
                let(:stubs)                   do
         
     | 
| 
       11 
     | 
    
         
            -
                  response_files_per_stub.map do |response_files|
         
     | 
| 
       12 
     | 
    
         
            -
                    instance_double(HttpStub::Configurer::Request::Stub, response_files: response_files)
         
     | 
| 
       13 
     | 
    
         
            -
                  end
         
     | 
| 
       14 
     | 
    
         
            -
                end
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
                subject { triggers.response_files }
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
                context "when many stubs contains response files" do
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
                  let(:response_files_per_stub) do
         
     | 
| 
       21 
     | 
    
         
            -
                    (1..3).map { (1..3).map { HttpStub::Configurer::Request::StubResponseFile } }
         
     | 
| 
       22 
     | 
    
         
            -
                  end
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
                  it "returns all the response files" do
         
     | 
| 
       25 
     | 
    
         
            -
                    expect(subject).to eql(response_files_per_stub.flatten)
         
     | 
| 
       26 
     | 
    
         
            -
                  end
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
                end
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
                context "when one stub contains response files" do
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
                  let(:response_files)          { (1..3).map { HttpStub::Configurer::Request::StubResponseFile } }
         
     | 
| 
       33 
     | 
    
         
            -
                  let(:response_files_per_stub) { (1..3).map { |i| i % 2 == 0 ? response_files : [] } }
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
                  it "returns the response files" do
         
     | 
| 
       36 
     | 
    
         
            -
                    expect(subject).to eql(response_files)
         
     | 
| 
       37 
     | 
    
         
            -
                  end
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
                end
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
                context "when no stubs contain response files" do
         
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
                  let(:response_files_per_stub) { (1..3).map { [] } }
         
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
                  it "returns an empty array" do
         
     | 
| 
       46 
     | 
    
         
            -
                    expect(subject).to eql([])
         
     | 
| 
       47 
     | 
    
         
            -
                  end
         
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
                end
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
              end
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
              describe "#payload" do
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
                let(:stub_payloads) { stubs.each_with_index.map { |i| "Stub payload #{i}" } }
         
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
                subject { triggers.payload }
         
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
                before(:example) do
         
     | 
| 
       60 
     | 
    
         
            -
                  stubs.zip(stub_payloads).each { |stub, payload| allow(stub).to receive(:payload).and_return(payload) }
         
     | 
| 
       61 
     | 
    
         
            -
                end
         
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
                context "when scenario names are provided" do
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
                  it "has a scenario names entry containing the names" do
         
     | 
| 
       66 
     | 
    
         
            -
                    expect(subject).to include(scenario_names: scenario_names)
         
     | 
| 
       67 
     | 
    
         
            -
                  end
         
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
                end
         
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
     | 
    
         
            -
                context "when no scenario names are provided" do
         
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
                  let(:scenario_names) { [] }
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
                  it "has an scenario names entry that is empty" do
         
     | 
| 
       76 
     | 
    
         
            -
                    expect(subject).to include(scenario_names: [])
         
     | 
| 
       77 
     | 
    
         
            -
                  end
         
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
                end
         
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
                context "when stubs are provided" do
         
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
                  it "has a stubs entry containing the payload of the stubs" do
         
     | 
| 
       84 
     | 
    
         
            -
                    expect(subject).to include(stubs: stub_payloads)
         
     | 
| 
       85 
     | 
    
         
            -
                  end
         
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
                end
         
     | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
       89 
     | 
    
         
            -
                context "when stub are not provided" do
         
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
                  let(:stubs) { [] }
         
     | 
| 
       92 
     | 
    
         
            -
             
     | 
| 
       93 
     | 
    
         
            -
                  it "has a stubs entry that is empty" do
         
     | 
| 
       94 
     | 
    
         
            -
                    expect(subject).to include(stubs: [])
         
     | 
| 
       95 
     | 
    
         
            -
                  end
         
     | 
| 
       96 
     | 
    
         
            -
             
     | 
| 
       97 
     | 
    
         
            -
                end
         
     | 
| 
       98 
     | 
    
         
            -
             
     | 
| 
       99 
     | 
    
         
            -
              end
         
     | 
| 
       100 
     | 
    
         
            -
             
     | 
| 
       101 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,35 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            describe HttpStub::Configurer::Server::BufferedCommandProcessor do
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
              let(:command_processor) { instance_double(HttpStub::Configurer::Server::CommandProcessor) }
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
              let(:buffered_command_processor) { HttpStub::Configurer::Server::BufferedCommandProcessor.new(command_processor) }
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
              describe "#flush" do
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
                subject { buffered_command_processor.flush }
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                describe "when a number of commands have been buffered via processing" do
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
                  let(:commands) { (1..3).map { instance_double(HttpStub::Configurer::Server::Command) } }
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
                  before(:example) { commands.each { |command| buffered_command_processor.process(command) } }
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
                  it "processes the buffered commands via the command processor" do
         
     | 
| 
       18 
     | 
    
         
            -
                    commands.each { |command| expect(command_processor).to receive(:process).with(command) }
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
                    subject
         
     | 
| 
       21 
     | 
    
         
            -
                  end
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
                end
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
                describe "when no commands have been buffered" do
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
                  it "executes without error" do
         
     | 
| 
       28 
     | 
    
         
            -
                    expect { subject }.not_to raise_error
         
     | 
| 
       29 
     | 
    
         
            -
                  end
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
                end
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
              end
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,75 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            describe HttpStub::Configurer::Server::CommandProcessor do
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
              let(:server_host)     { "localhost" }
         
     | 
| 
       4 
     | 
    
         
            -
              let(:server_port)     { 8001 }
         
     | 
| 
       5 
     | 
    
         
            -
              let(:server_base_uri) { "http://#{server_host}:#{server_port}" }
         
     | 
| 
       6 
     | 
    
         
            -
              let(:configuration)   do
         
     | 
| 
       7 
     | 
    
         
            -
                double(HttpStub::Configurer::Server::Configuration, base_uri: server_base_uri, host: server_host, port: server_port)
         
     | 
| 
       8 
     | 
    
         
            -
              end
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
              let(:command_processor) { HttpStub::Configurer::Server::CommandProcessor.new(configuration) }
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
              describe "#process" do
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
                let(:command) do
         
     | 
| 
       15 
     | 
    
         
            -
                  HttpStub::Configurer::Server::Command.new(request: request, description: "performing an operation")
         
     | 
| 
       16 
     | 
    
         
            -
                end
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
                subject { command_processor.process(command) }
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
                context "when the server is running" do
         
     | 
| 
       21 
     | 
    
         
            -
                  include_context "server integration"
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
                  describe "and the server responds with a 200 response" do
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
                    let(:request) { create_get_request("stubs") }
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
                    it "executes without error" do
         
     | 
| 
       28 
     | 
    
         
            -
                      expect { subject }.not_to raise_error
         
     | 
| 
       29 
     | 
    
         
            -
                    end
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
                    it "returns the server response" do
         
     | 
| 
       32 
     | 
    
         
            -
                      expect(subject).to be_a(Net::HTTPResponse)
         
     | 
| 
       33 
     | 
    
         
            -
                    end
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
                  end
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
                  describe "and the server responds with a non-200 response" do
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
                    let(:request) { create_get_request("causes_error") }
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
                    it "raises an exception that includes the server base URI" do
         
     | 
| 
       42 
     | 
    
         
            -
                      expect { subject }.to raise_error(/#{server_base_uri}/)
         
     | 
| 
       43 
     | 
    
         
            -
                    end
         
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
                    it "raises an exception that includes the commands description" do
         
     | 
| 
       46 
     | 
    
         
            -
                      expect { subject }.to raise_error(/performing an operation/)
         
     | 
| 
       47 
     | 
    
         
            -
                    end
         
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
                  end
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
                end
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
                context "when the server is unavailable" do
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
                  subject { command_processor.process(command, open_timeout: 1) }
         
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
                  let(:request) { create_get_request("does/not/exist") }
         
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
                  it "raises an exception that includes the server base URI" do
         
     | 
| 
       60 
     | 
    
         
            -
                    expect { subject }.to raise_error(/#{server_base_uri}/)
         
     | 
| 
       61 
     | 
    
         
            -
                  end
         
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
                  it "raises an exception that includes the commands description" do
         
     | 
| 
       64 
     | 
    
         
            -
                    expect { subject }.to raise_error(/performing an operation/)
         
     | 
| 
       65 
     | 
    
         
            -
                  end
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
     | 
    
         
            -
                end
         
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
                def create_get_request(path)
         
     | 
| 
       70 
     | 
    
         
            -
                  HttpStub::Configurer::Request::Http::Basic.new(method: :get, path: path)
         
     | 
| 
       71 
     | 
    
         
            -
                end
         
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
              end
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,26 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            describe HttpStub::Configurer::Server::Command do
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
              let(:http_request) { double("HttpRequest") }
         
     | 
| 
       4 
     | 
    
         
            -
              let(:request)      { double("HttpStubRequest", to_http_request: http_request) }
         
     | 
| 
       5 
     | 
    
         
            -
              let(:description)  { "Some Description" }
         
     | 
| 
       6 
     | 
    
         
            -
              let(:args)         { { request: request, description: description } }
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
              let(:command) { HttpStub::Configurer::Server::Command.new(args) }
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
              describe "#http_request" do
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
                it "returns the provided request adapted to a http request" do
         
     | 
| 
       13 
     | 
    
         
            -
                  expect(command.http_request).to eql(http_request)
         
     | 
| 
       14 
     | 
    
         
            -
                end
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
              end
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
              describe "#description" do
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
                it "exposes the provided description" do
         
     | 
| 
       21 
     | 
    
         
            -
                  expect(command.description).to eql(description)
         
     | 
| 
       22 
     | 
    
         
            -
                end
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
              end
         
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
            end
         
     |