Update mcollective.init according to OSCI-855
[packages/precise/mcollective.git] / spec / unit / logger / base_spec.rb
1 #!/usr/bin/env rspec
2
3 require 'spec_helper'
4
5 module MCollective::Logger
6   describe Base do
7     before do
8       Base.any_instance.stubs(:set_logging_level).returns(true)
9       Base.any_instance.stubs(:valid_levels).returns({:info  => :info_test,
10                                                        :warn  => :warning_test,
11                                                        :debug => :debug_test,
12                                                        :fatal => :crit_test,
13                                                        :error => :err_test})
14     end
15
16     describe "#initialize" do
17       it "should check for valid levels" do
18         Base.any_instance.stubs(:valid_levels).returns({})
19
20         expect {
21           Base.new
22         }.to raise_error(/Logger class did not specify a map for/)
23       end
24
25       it "should accept correct levels" do
26         logger = Base.new
27         logger.set_level :warn
28
29         logger.should_log?(:debug).should == false
30         logger.should_log?(:error).should == true
31       end
32     end
33
34     describe "#should_log?" do
35       it "should correctly determine if a line should be logged" do
36       end
37     end
38     describe "#valid_levels" do
39       it "should report if valid_levels was not implimented" do
40         Base.any_instance.unstub(:valid_levels)
41
42         expect {
43           logger = Base.new
44         }.to raise_error("The logging class did not supply a valid_levels method")
45       end
46     end
47
48     describe "#log" do
49       it "should report if log was not implimented" do
50         logger = Base.new
51
52         expect {
53           logger.send(:log, nil, nil, nil)
54         }.to raise_error("The logging class did not supply a log method")
55       end
56     end
57
58     describe "#start" do
59       it "should report if log was not implimented" do
60         logger = Base.new
61
62         expect {
63           logger.send(:start)
64         }.to raise_error("The logging class did not supply a start method")
65       end
66     end
67
68     describe "#map_level" do
69       it "should map levels correctly" do
70         logger = Base.new
71
72         logger.send(:map_level, :info).should == :info_test
73         logger.send(:map_level, :warn).should == :warning_test
74         logger.send(:map_level, :debug).should == :debug_test
75         logger.send(:map_level, :fatal).should == :crit_test
76         logger.send(:map_level, :error).should == :err_test
77       end
78     end
79
80     describe "#get_next_level" do
81       it "should supply the correct next level" do
82         logger = Base.new
83         logger.set_level(:fatal)
84
85         logger.send(:get_next_level).should == :debug
86       end
87     end
88
89     describe "#cycle_level" do
90       it "should set the level to the next one and log the event" do
91         logger = Base.new
92
93         logger.stubs(:get_next_level).returns(:error)
94
95         logger.expects(:set_level).with(:error)
96         logger.expects(:log).with(:error, "", "Logging level is now ERROR")
97
98         logger.cycle_level
99       end
100     end
101
102     describe "#set_level" do
103       it "should set the active level" do
104         logger = Base.new
105
106         logger.set_level(:error)
107
108         logger.active_level.should == :error
109       end
110
111       it "should set the level on the logger" do
112         logger = Base.new
113
114         logger.set_level(:error)
115       end
116     end
117   end
118 end