diff options
Diffstat (limited to 'spec/unit/windows_service_spec.rb')
-rw-r--r-- | spec/unit/windows_service_spec.rb | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/spec/unit/windows_service_spec.rb b/spec/unit/windows_service_spec.rb deleted file mode 100644 index 02a795426d..0000000000 --- a/spec/unit/windows_service_spec.rb +++ /dev/null @@ -1,118 +0,0 @@ -# -# Author:: Mukta Aphale (<mukta.aphale@clogeny.com>) -# Copyright:: Copyright (c) Chef Software Inc. -# License:: Apache License, Version 2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -require "spec_helper" -if ChefUtils.windows? - require "chef/application/windows_service" -end - -describe "Chef::Application::WindowsService", :windows_only do - let(:shell_out_result) { double("shellout", stdout: nil, stderr: nil) } - let(:config_options) do - { - log_location: STDOUT, - config_file: "test_config_file", - log_level: :info, - } - end - let(:timeout) { 7200 } - let(:shellout_options) do - { - timeout: timeout, - logger: Chef::Log, - } - end - - before do - monologger = instance_double("MonoLogger", :level= => nil, :add => nil, :formatter= => nil, :formatter => nil) - allow(MonoLogger).to receive(:new).and_return(monologger) - - Chef::Config.merge!(config_options) - allow(subject).to receive(:configure_chef) - allow(subject).to receive(:parse_options) - allow(subject).to receive(:running?).and_return(true, false) - allow(subject).to receive(:state).and_return(4) - subject.service_init - end - - subject { Chef::Application::WindowsService.new } - - it "passes DEFAULT_LOG_LOCATION to chef-client instead of STDOUT" do - expect(subject).to receive(:shell_out).with( - "chef-client.bat --no-fork -c test_config_file -L #{Chef::Application::WindowsService::DEFAULT_LOG_LOCATION}", - shellout_options - ).and_return(shell_out_result) - subject.service_main - end - - context "has a log location configured" do - let(:tempfile) { Tempfile.new "log_file" } - let(:config_options) do - { - log_location: tempfile.path, - config_file: "test_config_file", - log_level: :info, - } - end - - after do - tempfile.unlink - end - - it "uses the configured log location" do - expect(subject).to receive(:shell_out).with( - "chef-client.bat --no-fork -c test_config_file -L #{tempfile.path}", - shellout_options - ).and_return(shell_out_result) - subject.service_main - end - - context "configured to Event Logger" do - let(:config_options) do - { - log_location: Chef::Log::WinEvt.new, - config_file: "test_config_file", - log_level: :info, - } - end - - it "does not pass log location to new process" do - expect(subject).to receive(:shell_out).with( - "chef-client.bat --no-fork -c test_config_file", - shellout_options - ).and_return(shell_out_result) - subject.service_main - end - end - end - - context "configures a watchdog timeout" do - let(:timeout) { 10 } - - before do - Chef::Config[:windows_service][:watchdog_timeout] = 10 - end - - it "passes watchdog timeout to new process" do - expect(subject).to receive(:shell_out).with( - "chef-client.bat --no-fork -c test_config_file -L #{Chef::Application::WindowsService::DEFAULT_LOG_LOCATION}", - shellout_options - ).and_return(shell_out_result) - subject.service_main - end - end -end |