From e2a755b664401977dfea954ff695a865b68e41ea Mon Sep 17 00:00:00 2001 From: freeformz Date: Tue, 15 Feb 2011 06:44:37 +0800 Subject: [PATCH] spec fixes and tests for the new monitor functions --- .../ecloud/requests/add_internet_service.rb | 43 ++++++++++--------- spec/vcloud/spec_helper.rb | 4 ++ .../ecloud/models/internet_service_spec.rb | 23 ++++++++-- 3 files changed, 45 insertions(+), 25 deletions(-) diff --git a/lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb b/lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb index 091f041d0f..aa384db123 100644 --- a/lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb +++ b/lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb @@ -41,6 +41,28 @@ def validate_internet_service_data(service_data, configure=false) raise ArgumentError.new("Required Internet Service data missing: #{(required_opts - service_data.keys).map(&:inspect).join(", ")}") end end + + def ensure_monitor_defaults!(monitor) + if monitor[:http_headers].is_a?(String) + monitor[:http_headers] = [ monitor[:http_headers] ] + end + + unless monitor[:retries] + monitor[:retries] = 3 + end + + unless monitor[:response_timeout] + monitor[:response_timeout] = 2 + end + + unless monitor[:down_time] + monitor[:down_time] = 30 + end + + unless monitor[:interval] + monitor[:interval] = 5 + end + end end class Real @@ -97,27 +119,6 @@ def generate_monitor_section(builder, monitor) } end - def ensure_monitor_defaults!(monitor) - if monitor[:http_headers].is_a?(String) - monitor[:http_headers] = [ monitor[:http_headers] ] - end - - unless monitor[:retries] - monitor[:retries] = 3 - end - - unless monitor[:response_timeout] - monitor[:response_timeout] = 2 - end - - unless monitor[:down_time] - monitor[:down_time] = 30 - end - - unless monitor[:interval] - monitor[:interval] = 5 - end - end end class Mock diff --git a/spec/vcloud/spec_helper.rb b/spec/vcloud/spec_helper.rb index 4731c0e4a2..4f4fb827ac 100644 --- a/spec/vcloud/spec_helper.rb +++ b/spec/vcloud/spec_helper.rb @@ -30,6 +30,10 @@ def arrayify(item) item.is_a?(Array) ? item : [ item ] end +def ecloud_disabled_default_monitor + {:url_send_string=>nil, :receive_string=>nil, :response_timeout=>2, :retries=>3, :is_enabled=>"true", :down_time=>30, :type=>"Disabled", :http_headers=>nil, :interval=>5, :downtime=>nil} +end + shared_examples_for "all responses" do it { should be_an_instance_of Excon::Response } it { should respond_to :body } diff --git a/spec/vcloud/terremark/ecloud/models/internet_service_spec.rb b/spec/vcloud/terremark/ecloud/models/internet_service_spec.rb index 3eab0be869..dc66907da5 100644 --- a/spec/vcloud/terremark/ecloud/models/internet_service_spec.rb +++ b/spec/vcloud/terremark/ecloud/models/internet_service_spec.rb @@ -76,11 +76,26 @@ end end - context "with a disabled monitor" do + describe "disable monitoring via #monitor=" do + specify do + expect { subject.monitor = {:type => "Disabled", :is_enabled => "true" }; subject.save }.to change {subject.monitor}.from(nil).to(ecloud_disabled_default_monitor) + end + + end + + describe "disable monitoring via #disable_monitor" do specify do - expect { subject.monitor = {:type => "Disabled", :is_enabled => "true" }; subject.save }.to - change {@mock_service[:monitor]}.from(nil). - to({:url_send_string=>nil, :http_headers=>nil, :receive_string=>nil, :interval=>nil, :is_enabled=>"true", :type=>"Disabled", :response_timeout=>nil, :downtime=>nil, :retries=>nil}) + expect { subject.disable_monitor }.to change {subject.monitor}.from(nil).to(ecloud_disabled_default_monitor) + end + end + + context "with a disabled monitor" do + before { subject.disable_monitor } + + describe "enable ping monitoring via #enable_ping_monitor" do + specify do + expect { subject.enable_ping_monitor }.to change {subject.monitor}.from(ecloud_disabled_default_monitor).to(nil) + end end end end