bane 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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