1 require File.dirname(__FILE__) + '/helper'
3 class TestHttpResponseCode < Test::Unit::TestCase
5 c = Conditions::HttpResponseCode.new()
6 c.watch = stub(:name => 'foo')
13 yield(c) if block_given?
20 def test_valid_condition_is_valid
25 def test_valid_should_return_false_if_both_code_is_and_code_is_not_are_set
26 c = valid_condition do |cc|
29 no_stdout { assert !c.valid? }
32 def test_valid_should_return_false_if_no_host_set
33 c = valid_condition do |cc|
36 no_stdout { assert !c.valid? }
39 def test_valid_should_return_false_if_no_port_set
40 c = valid_condition do |cc|
43 no_stdout { assert !c.valid? }
46 def test_valid_should_return_false_if_no_path_set
47 c = valid_condition do |cc|
50 no_stdout { assert !c.valid? }
53 def test_valid_should_return_false_if_no_timeout_set
54 c = valid_condition do |cc|
57 no_stdout { assert !c.valid? }
62 def test_test_should_return_false_if_code_is_is_set_to_200_but_response_is_500
64 Net::HTTP.expects(:start).yields(stub(:read_timeout= => nil, :head => stub(:code => 500)))
65 assert_equal false, c.test
68 def test_test_should_return_false_if_code_is_not_is_set_to_200_and_response_is_200
69 c = valid_condition do |cc|
71 cc.code_is_not = [200]
73 Net::HTTP.expects(:start).yields(stub(:read_timeout= => nil, :head => stub(:code => 200)))
74 assert_equal false, c.test
77 def test_test_should_return_true_if_code_is_is_set_to_200_and_response_is_200
79 Net::HTTP.expects(:start).yields(stub(:read_timeout= => nil, :head => stub(:code => 200)))
80 assert_equal true, c.test
83 def test_test_should_return_false_if_code_is_not_is_set_to_200_but_response_is_500
84 c = valid_condition do |cc|
86 cc.code_is_not = [200]
88 Net::HTTP.expects(:start).yields(stub(:read_timeout= => nil, :head => stub(:code => 500)))
89 assert_equal true, c.test
92 def test_test_should_return_false_if_code_is_is_set_to_200_but_response_times_out
94 Net::HTTP.expects(:start).raises(Timeout::Error, '')
95 assert_equal false, c.test
98 def test_test_should_return_true_if_code_is_not_is_set_to_200_and_response_times_out
99 c = valid_condition do |cc|
101 cc.code_is_not = [200]
103 Net::HTTP.expects(:start).raises(Timeout::Error, '')
104 assert_equal true, c.test
107 def test_test_should_return_true_if_code_is_is_set_to_200_and_response_is_200_twice_for_times_two_of_two
108 c = valid_condition do |cc|
111 Net::HTTP.expects(:start).yields(stub(:read_timeout= => nil, :head => stub(:code => 200))).times(2)
112 assert_equal false, c.test
113 assert_equal true, c.test