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.
Files changed (61) hide show
  1. checksums.yaml +15 -0
  2. data/README.md +16 -6
  3. data/Rakefile +1 -1
  4. data/TODO +5 -8
  5. data/bin/bane +4 -12
  6. data/examples/multiple_behaviors.rb +7 -6
  7. data/examples/readme_example.rb +2 -1
  8. data/examples/single_behavior.rb +2 -1
  9. data/lib/bane.rb +18 -5
  10. data/lib/bane/arguments_parser.rb +73 -0
  11. data/lib/bane/behavior_maker.rb +39 -0
  12. data/lib/bane/behaviors/responders/close_after_pause.rb +21 -0
  13. data/lib/bane/behaviors/responders/close_immediately.rb +14 -0
  14. data/lib/bane/behaviors/responders/deluge_response.rb +27 -0
  15. data/lib/bane/behaviors/responders/echo_response.rb +16 -0
  16. data/lib/bane/behaviors/responders/exported.rb +9 -0
  17. data/lib/bane/behaviors/responders/fixed_response.rb +25 -0
  18. data/lib/bane/behaviors/responders/for_each_line.rb +18 -0
  19. data/lib/bane/behaviors/responders/http_refuse_all_credentials.rb +31 -0
  20. data/lib/bane/behaviors/responders/never_respond.rb +27 -0
  21. data/lib/bane/behaviors/responders/newline_response.rb +18 -0
  22. data/lib/bane/behaviors/responders/random_response.rb +24 -0
  23. data/lib/bane/behaviors/responders/slow_response.rb +32 -0
  24. data/lib/bane/behaviors/servers/exported.rb +18 -0
  25. data/lib/bane/behaviors/servers/responder_server.rb +50 -0
  26. data/lib/bane/behaviors/servers/timeout_in_listen_queue.rb +51 -0
  27. data/lib/bane/command_line_configuration.rb +22 -79
  28. data/lib/bane/extensions.rb +7 -0
  29. data/test/bane/acceptance_test.rb +65 -0
  30. data/test/bane/arguments_parser_test.rb +76 -0
  31. data/test/bane/bane_test.rb +12 -0
  32. data/test/bane/behaviors/responders/close_after_pause_test.rb +30 -0
  33. data/test/bane/behaviors/responders/close_immediately_test.rb +14 -0
  34. data/test/bane/behaviors/responders/deluge_response_test.rb +20 -0
  35. data/test/bane/behaviors/responders/echo_response_test.rb +16 -0
  36. data/test/bane/behaviors/responders/fixed_response_test.rb +14 -0
  37. data/test/bane/behaviors/responders/for_each_line_test.rb +29 -0
  38. data/test/bane/behaviors/responders/http_refuse_all_credentials_test.rb +18 -0
  39. data/test/bane/behaviors/responders/never_respond_test.rb +31 -0
  40. data/test/bane/behaviors/responders/newline_response_test.rb +14 -0
  41. data/test/bane/behaviors/responders/random_response_test.rb +15 -0
  42. data/test/bane/behaviors/responders/slow_response_test.rb +21 -0
  43. data/test/bane/behaviors/servers/responder_server_test.rb +77 -0
  44. data/test/bane/behaviors/servers/timeout_in_listen_queue_test.rb +23 -0
  45. data/test/bane/command_line_configuration_test.rb +54 -72
  46. data/test/bane/extensions_test.rb +17 -0
  47. data/test/bane/fake_connection_test.rb +1 -1
  48. data/test/bane/launchable_role_tests.rb +20 -0
  49. data/test/bane/naive_http_response_test.rb +1 -1
  50. data/test/test_helper.rb +42 -1
  51. metadata +143 -99
  52. data/lib/bane/behavior_server.rb +0 -47
  53. data/lib/bane/behaviors.rb +0 -171
  54. data/lib/bane/compatibility.rb +0 -36
  55. data/lib/bane/configuration_parser.rb +0 -89
  56. data/lib/bane/service_registry.rb +0 -21
  57. data/test/bane/behavior_server_test.rb +0 -59
  58. data/test/bane/behaviors_test.rb +0 -135
  59. data/test/bane/configuration_parser_test.rb +0 -111
  60. data/test/bane/integration_test.rb +0 -92
  61. 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