Update mcollective.init according to OSCI-855
[packages/precise/mcollective.git] / spec / unit / logger / syslog_logger_spec.rb
1 #!/usr/bin/env rspec
2
3 require 'spec_helper'
4
5 module MCollective
6   unless Util.windows?
7     require 'mcollective/logger/syslog_logger'
8
9     module Logger
10       describe Syslog_logger do
11         describe "#start" do
12           before do
13             Config.instance.stubs(:logfacility).returns("user")
14             Config.instance.stubs(:loglevel).returns("error")
15           end
16
17           it "should close the syslog if already opened" do
18             Syslog.expects("opened?").returns(true)
19             Syslog.expects(:close).once
20             Syslog.expects(:open).once
21
22             logger = Syslog_logger.new
23             logger.start
24           end
25
26           it "should open syslog with the correct facility" do
27             logger = Syslog_logger.new
28             Syslog.expects(:open).with("rspec", 3, Syslog::LOG_USER).once
29             logger.start
30           end
31
32           it "should set the logger level correctly" do
33             logger = Syslog_logger.new
34             Syslog.expects(:open).with("rspec", 3, Syslog::LOG_USER).once
35             logger.expects(:set_level).with(:error).once
36             logger.start
37           end
38         end
39
40         describe "#syslog_facility" do
41           it "should support valid facilities" do
42             logger = Syslog_logger.new
43             logger.syslog_facility("LOCAL1").should == Syslog::LOG_LOCAL1
44             logger.syslog_facility("local1").should == Syslog::LOG_LOCAL1
45           end
46
47           it "should set LOG_USER for unknown facilities" do
48             logger = Syslog_logger.new
49             IO.any_instance.expects(:puts).with("Invalid syslog facility rspec supplied, reverting to USER")
50             logger.syslog_facility("rspec").should == Syslog::LOG_USER
51           end
52         end
53
54         describe "#log" do
55           it "should log higher than configured levels" do
56             logger = Syslog_logger.new
57             logger.set_level(:debug)
58             Syslog.expects(:err).once
59             logger.log(:error, "rspec", "rspec")
60           end
61
62           it "should log using the correctly mapped level" do
63             logger = Syslog_logger.new
64             Syslog.expects(:err).with("rspec rspec").once
65             logger.set_level(:debug)
66             logger.log(:error, "rspec", "rspec")
67           end
68
69           it "should resort to STDERR output if all else fails" do
70             logger = Syslog_logger.new
71             IO.any_instance.expects(:puts).with("error: rspec").once
72
73             logger.log(:error, "rspec", "rspec")
74           end
75         end
76       end
77     end
78   end
79 end