diff options
author | Thom May <thom@may.lt> | 2018-01-18 14:16:28 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-18 14:16:28 +0000 |
commit | d0a68f81fcd6fe8abe12dabfaaf16d995a933a76 (patch) | |
tree | 775c12e2c12543a47c071ba7f83388166f4d2ce2 | |
parent | 23d1aed242c7933f85e6258cba47b9dc4e7e4521 (diff) | |
parent | 6cac5affe524a2fc481a944bebef4135a16a34b7 (diff) | |
download | chef-d0a68f81fcd6fe8abe12dabfaaf16d995a933a76.tar.gz |
Merge pull request #6714 from MsysTechnologiesllc/dh/update_validation_on_idle
[MSYS-735]fix validation for idle_time
-rw-r--r-- | lib/chef/resource/windows_task.rb | 6 | ||||
-rw-r--r-- | spec/unit/resource/windows_task_spec.rb | 12 |
2 files changed, 16 insertions, 2 deletions
diff --git a/lib/chef/resource/windows_task.rb b/lib/chef/resource/windows_task.rb index 14f5da46fa..10e8400c34 100644 --- a/lib/chef/resource/windows_task.rb +++ b/lib/chef/resource/windows_task.rb @@ -82,7 +82,7 @@ class Chef validate_create_frequency_modifier(frequency, frequency_modifier) validate_create_day(day, frequency) if day validate_create_months(months, frequency) if months - validate_idle_time(idle_time, frequency) if idle_time + validate_idle_time(idle_time, frequency) if ( !idle_time.nil? && ([:minute, :hourly, :daily, :weekly, :monthly].include? frequency)) || (idle_time.nil? || !(idle_time > 0 && idle_time <= 999)) && !([:minute, :hourly, :daily, :weekly, :monthly].include? frequency) end private @@ -199,7 +199,9 @@ class Chef unless [:on_idle].include?(frequency) raise ArgumentError, "idle_time property is only valid for tasks that run on_idle" end - + if idle_time.nil? + raise ArgumentError, "idle_time value should be set for :on_idle frequency." + end unless idle_time > 0 && idle_time <= 999 raise ArgumentError, "idle_time value #{idle_time} is invalid. Valid values for :on_idle frequency are 1 - 999." end diff --git a/spec/unit/resource/windows_task_spec.rb b/spec/unit/resource/windows_task_spec.rb index 145063b53e..f570cc3192 100644 --- a/spec/unit/resource/windows_task_spec.rb +++ b/spec/unit/resource/windows_task_spec.rb @@ -111,6 +111,10 @@ describe Chef::Resource::WindowsTask do resource.after_created expect(resource.random_delay).to eq("PT60S") end + + it "raises error that random_delay is not supported" do + expect { resource.send(:validate_random_delay, 60, :on_idle) }.to raise_error(ArgumentError, "`random_delay` property is supported only for frequency :minute, :hourly, :daily, :weekly and :monthly") + end end context "when execution_time_limit isn't specified" do @@ -278,6 +282,14 @@ describe Chef::Resource::WindowsTask do it "raises error if idle_time > 999" do expect { resource.send(:validate_idle_time, 1000, :on_idle) }.to raise_error(ArgumentError, "idle_time value 1000 is invalid. Valid values for :on_idle frequency are 1 - 999.") end + + it "raises error if idle_time < 0" do + expect { resource.send(:validate_idle_time, -5, :on_idle) }.to raise_error(ArgumentError, "idle_time value -5 is invalid. Valid values for :on_idle frequency are 1 - 999.") + end + + it "raises error if idle_time is not set" do + expect { resource.send(:validate_idle_time, nil, :on_idle) }.to raise_error(ArgumentError, "idle_time value should be set for :on_idle frequency.") + end end context "#sec_to_dur" do |