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? }
41 def test_test_should_return_false_if_code_is_is_set_to_200_but_response_is_500
43 Net::HTTP.expects(:start).yields(stub(:read_timeout= => nil, :get => stub(:code => 500)))
44 assert_equal false, c.test
47 def test_test_should_return_false_if_code_is_not_is_set_to_200_and_response_is_200
48 c = valid_condition do |cc|
50 cc.code_is_not = [200]
52 Net::HTTP.expects(:start).yields(stub(:read_timeout= => nil, :get => stub(:code => 200)))
53 assert_equal false, c.test
56 def test_test_should_return_true_if_code_is_is_set_to_200_and_response_is_200
58 Net::HTTP.expects(:start).yields(stub(:read_timeout= => nil, :get => stub(:code => 200)))
59 assert_equal true, c.test
62 def test_test_should_return_false_if_code_is_not_is_set_to_200_but_response_is_500
63 c = valid_condition do |cc|
65 cc.code_is_not = [200]
67 Net::HTTP.expects(:start).yields(stub(:read_timeout= => nil, :get => stub(:code => 500)))
68 assert_equal true, c.test
71 def test_test_should_return_false_if_code_is_is_set_to_200_but_response_times_out
73 Net::HTTP.expects(:start).raises(Timeout::Error, '')
74 assert_equal false, c.test
77 def test_test_should_return_true_if_code_is_not_is_set_to_200_and_response_times_out
78 c = valid_condition do |cc|
80 cc.code_is_not = [200]
82 Net::HTTP.expects(:start).raises(Timeout::Error, '')
83 assert_equal true, c.test
86 def test_test_should_return_false_if_code_is_is_set_to_200_but_cant_connect
88 Net::HTTP.expects(:start).raises(Errno::ECONNREFUSED, '')
89 assert_equal false, c.test
92 def test_test_should_return_true_if_code_is_not_is_set_to_200_and_cant_connect
93 c = valid_condition do |cc|
95 cc.code_is_not = [200]
97 Net::HTTP.expects(:start).raises(Errno::ECONNREFUSED, '')
98 assert_equal true, c.test
101 def test_test_should_return_true_if_code_is_is_set_to_200_and_response_is_200_twice_for_times_two_of_two
102 c = valid_condition do |cc|
105 Net::HTTP.expects(:start).yields(stub(:read_timeout= => nil, :get => stub(:code => 200))).times(2)
106 assert_equal false, c.test
107 assert_equal true, c.test