summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorJay Mundrawala <jdmundrawala@gmail.com>2015-05-07 06:58:58 -0700
committerJay Mundrawala <jdmundrawala@gmail.com>2015-05-07 06:58:58 -0700
commit65a8ac5705b7cbe1a9172b9ecdaae38672a395fe (patch)
tree1414c3569b75a3f9570b4d7faac34efc223e3119 /spec
parent08b1270498b1555ddfbbafb8d8a9780ebd0b1671 (diff)
downloadchef-65a8ac5705b7cbe1a9172b9ecdaae38672a395fe.tar.gz
Added Windows Event Log logger
Diffstat (limited to 'spec')
-rw-r--r--spec/unit/log/winevt_spec.rb61
1 files changed, 61 insertions, 0 deletions
diff --git a/spec/unit/log/winevt_spec.rb b/spec/unit/log/winevt_spec.rb
new file mode 100644
index 0000000000..95e805bbb5
--- /dev/null
+++ b/spec/unit/log/winevt_spec.rb
@@ -0,0 +1,61 @@
+#
+# Author:: Jay Mundrawala (jdm@chef.io)
+# Author:: SAWANOBORI Yukihiko (<sawanoboriyu@higanworks.com>)
+# Copyright:: Copyright (c) 2015 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'
+
+module Win32
+ class EventLog
+ end
+end
+
+describe Chef::Log::WinEvt do
+ let(:winevt) { Chef::Log::WinEvt.new }
+ let(:app) { Chef::Application.new }
+ let(:evtlog) { instance_double("Win32::EventLog")}
+
+ before do
+ allow(::Win32::EventLog).to receive(:open).and_return(evtlog)
+
+ Chef::Log.init(MonoLogger.new(winevt))
+ @old_log_level = Chef::Log.level
+ Chef::Log.level = :info
+ @old_loggers = Chef::Log.loggers
+ Chef::Log.use_log_devices([winevt])
+ end
+
+ after do
+ Chef::Log.level = @old_log_level
+ Chef::Log.use_log_devices(@old_loggers)
+ end
+
+ it "should send message with severity info to Windows Event Log." do
+ expect(winevt).to receive(:info).with("*** Chef 12.4.0.dev.0 ***")
+ Chef::Log.info("*** Chef 12.4.0.dev.0 ***")
+ end
+
+ it "should send message with severity warning to Windows Event Log." do
+ expect(winevt).to receive(:warn).with("No config file found or specified on command line, using command line options.")
+ Chef::Log.warn("No config file found or specified on command line, using command line options.")
+ end
+
+ it "should fallback into send message with severity info to Windows Event Log when wrong format." do
+ expect(winevt).to receive(:info).with("chef message")
+ winevt.write("chef message")
+ end
+end