bane 0.3.0 → 0.4.0
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 +15 -0
- data/README.md +16 -6
- data/Rakefile +1 -1
- data/TODO +5 -8
- data/bin/bane +4 -12
- data/examples/multiple_behaviors.rb +7 -6
- data/examples/readme_example.rb +2 -1
- data/examples/single_behavior.rb +2 -1
- data/lib/bane.rb +18 -5
- data/lib/bane/arguments_parser.rb +73 -0
- data/lib/bane/behavior_maker.rb +39 -0
- data/lib/bane/behaviors/responders/close_after_pause.rb +21 -0
- data/lib/bane/behaviors/responders/close_immediately.rb +14 -0
- data/lib/bane/behaviors/responders/deluge_response.rb +27 -0
- data/lib/bane/behaviors/responders/echo_response.rb +16 -0
- data/lib/bane/behaviors/responders/exported.rb +9 -0
- data/lib/bane/behaviors/responders/fixed_response.rb +25 -0
- data/lib/bane/behaviors/responders/for_each_line.rb +18 -0
- data/lib/bane/behaviors/responders/http_refuse_all_credentials.rb +31 -0
- data/lib/bane/behaviors/responders/never_respond.rb +27 -0
- data/lib/bane/behaviors/responders/newline_response.rb +18 -0
- data/lib/bane/behaviors/responders/random_response.rb +24 -0
- data/lib/bane/behaviors/responders/slow_response.rb +32 -0
- data/lib/bane/behaviors/servers/exported.rb +18 -0
- data/lib/bane/behaviors/servers/responder_server.rb +50 -0
- data/lib/bane/behaviors/servers/timeout_in_listen_queue.rb +51 -0
- data/lib/bane/command_line_configuration.rb +22 -79
- data/lib/bane/extensions.rb +7 -0
- data/test/bane/acceptance_test.rb +65 -0
- data/test/bane/arguments_parser_test.rb +76 -0
- data/test/bane/bane_test.rb +12 -0
- data/test/bane/behaviors/responders/close_after_pause_test.rb +30 -0
- data/test/bane/behaviors/responders/close_immediately_test.rb +14 -0
- data/test/bane/behaviors/responders/deluge_response_test.rb +20 -0
- data/test/bane/behaviors/responders/echo_response_test.rb +16 -0
- data/test/bane/behaviors/responders/fixed_response_test.rb +14 -0
- data/test/bane/behaviors/responders/for_each_line_test.rb +29 -0
- data/test/bane/behaviors/responders/http_refuse_all_credentials_test.rb +18 -0
- data/test/bane/behaviors/responders/never_respond_test.rb +31 -0
- data/test/bane/behaviors/responders/newline_response_test.rb +14 -0
- data/test/bane/behaviors/responders/random_response_test.rb +15 -0
- data/test/bane/behaviors/responders/slow_response_test.rb +21 -0
- data/test/bane/behaviors/servers/responder_server_test.rb +77 -0
- data/test/bane/behaviors/servers/timeout_in_listen_queue_test.rb +23 -0
- data/test/bane/command_line_configuration_test.rb +54 -72
- data/test/bane/extensions_test.rb +17 -0
- data/test/bane/fake_connection_test.rb +1 -1
- data/test/bane/launchable_role_tests.rb +20 -0
- data/test/bane/naive_http_response_test.rb +1 -1
- data/test/test_helper.rb +42 -1
- metadata +143 -99
- data/lib/bane/behavior_server.rb +0 -47
- data/lib/bane/behaviors.rb +0 -171
- data/lib/bane/compatibility.rb +0 -36
- data/lib/bane/configuration_parser.rb +0 -89
- data/lib/bane/service_registry.rb +0 -21
- data/test/bane/behavior_server_test.rb +0 -59
- data/test/bane/behaviors_test.rb +0 -135
- data/test/bane/configuration_parser_test.rb +0 -111
- data/test/bane/integration_test.rb +0 -92
- data/test/bane/service_registry_test.rb +0 -20
@@ -1,92 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__)) + '/../test_helper'
|
2
|
-
require 'open-uri'
|
3
|
-
require 'mocha'
|
4
|
-
|
5
|
-
class BaneIntegrationTest < Test::Unit::TestCase
|
6
|
-
|
7
|
-
TEST_PORT = 4000
|
8
|
-
|
9
|
-
def test_uses_specified_port_and_server
|
10
|
-
run_server_with(TEST_PORT, Bane::Behaviors::FixedResponse) do
|
11
|
-
connect_to TEST_PORT do |response|
|
12
|
-
assert !response.empty?, "Should have had a non-empty response"
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_supports_deprecated_configuration
|
18
|
-
silence_deprecation_warning
|
19
|
-
expected_message = "Expected test message"
|
20
|
-
options = {TEST_PORT => {:behavior => Bane::Behaviors::FixedResponse,
|
21
|
-
:message => expected_message}}
|
22
|
-
|
23
|
-
run_server_with_deprecated(options) do
|
24
|
-
connect_to TEST_PORT do |response|
|
25
|
-
assert_equal expected_message, response, "Wrong response from server"
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_serves_http_requests
|
31
|
-
run_server_with(TEST_PORT, Bane::Behaviors::HttpRefuseAllCredentials) do
|
32
|
-
begin
|
33
|
-
open("http://localhost:#{TEST_PORT}/some/url").read
|
34
|
-
flunk "Should have refused access"
|
35
|
-
rescue OpenURI::HTTPError => e
|
36
|
-
assert_match /401/, e.message
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_supports_command_line_interface
|
42
|
-
run_server_with_cli_arguments(["--listen-on-localhost", TEST_PORT, "FixedResponse"]) do
|
43
|
-
connect_to TEST_PORT do |response|
|
44
|
-
assert !response.empty?, "Should have had a non-empty response"
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
private
|
50
|
-
|
51
|
-
def run_server_with(port, behavior, &block)
|
52
|
-
behavior = Bane::BehaviorServer.new(port, behavior.new)
|
53
|
-
launcher = Bane::Launcher.new([behavior], quiet_logger)
|
54
|
-
launch_and_stop_safely(launcher, &block)
|
55
|
-
end
|
56
|
-
|
57
|
-
def run_server_with_deprecated(*options, &block)
|
58
|
-
launcher = Bane::Launcher.new(Configuration(*options), quiet_logger)
|
59
|
-
launch_and_stop_safely(launcher, &block)
|
60
|
-
end
|
61
|
-
|
62
|
-
def run_server_with_cli_arguments(arguments, &block)
|
63
|
-
config = Bane::CommandLineConfiguration.new()
|
64
|
-
launcher = Bane::Launcher.new(config.parse(arguments), quiet_logger)
|
65
|
-
launch_and_stop_safely(launcher, &block)
|
66
|
-
end
|
67
|
-
|
68
|
-
def launch_and_stop_safely(launcher, &block)
|
69
|
-
launcher.start
|
70
|
-
block.call
|
71
|
-
ensure
|
72
|
-
launcher.stop if launcher
|
73
|
-
sleep 0.1 # Until we can fix the GServer stopping race condition (Issue #7)
|
74
|
-
end
|
75
|
-
|
76
|
-
def quiet_logger
|
77
|
-
StringIO.new
|
78
|
-
end
|
79
|
-
|
80
|
-
def connect_to(port)
|
81
|
-
begin
|
82
|
-
connection = TCPSocket.new "localhost", port
|
83
|
-
yield connection.read
|
84
|
-
ensure
|
85
|
-
connection.close if connection
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
def silence_deprecation_warning
|
90
|
-
Bane::ConfigurationParser.any_instance.stubs(:warn_about_deprecation)
|
91
|
-
end
|
92
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__)) + '/../test_helper'
|
2
|
-
|
3
|
-
class ServiceRegistryTest < Test::Unit::TestCase
|
4
|
-
|
5
|
-
include Bane
|
6
|
-
|
7
|
-
def test_should_add_and_remove_behaviors
|
8
|
-
fake = fake_behavior
|
9
|
-
|
10
|
-
ServiceRegistry.register(fake)
|
11
|
-
assert ServiceRegistry.all_servers.include?(fake), "Should have added the new behavior"
|
12
|
-
|
13
|
-
ServiceRegistry.unregister(fake)
|
14
|
-
assert !(ServiceRegistry.all_servers.include?(fake)), "Should have removed the new behavior"
|
15
|
-
end
|
16
|
-
|
17
|
-
def fake_behavior
|
18
|
-
Class.new
|
19
|
-
end
|
20
|
-
end
|