X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=spec%2Funit%2Flogger%2Fbase_spec.rb;fp=spec%2Funit%2Flogger%2Fbase_spec.rb;h=e618f65cdff1541c7486b2645717ba4805fb1c01;hb=b87d2f4e68281062df1913440ca5753ae63314a9;hp=0000000000000000000000000000000000000000;hpb=ab0ea530b8ac956091f17b104ab2311336cfc250;p=packages%2Fprecise%2Fmcollective.git diff --git a/spec/unit/logger/base_spec.rb b/spec/unit/logger/base_spec.rb new file mode 100755 index 0000000..e618f65 --- /dev/null +++ b/spec/unit/logger/base_spec.rb @@ -0,0 +1,118 @@ +#!/usr/bin/env rspec + +require 'spec_helper' + +module MCollective::Logger + describe Base do + before do + Base.any_instance.stubs(:set_logging_level).returns(true) + Base.any_instance.stubs(:valid_levels).returns({:info => :info_test, + :warn => :warning_test, + :debug => :debug_test, + :fatal => :crit_test, + :error => :err_test}) + end + + describe "#initialize" do + it "should check for valid levels" do + Base.any_instance.stubs(:valid_levels).returns({}) + + expect { + Base.new + }.to raise_error(/Logger class did not specify a map for/) + end + + it "should accept correct levels" do + logger = Base.new + logger.set_level :warn + + logger.should_log?(:debug).should == false + logger.should_log?(:error).should == true + end + end + + describe "#should_log?" do + it "should correctly determine if a line should be logged" do + end + end + describe "#valid_levels" do + it "should report if valid_levels was not implimented" do + Base.any_instance.unstub(:valid_levels) + + expect { + logger = Base.new + }.to raise_error("The logging class did not supply a valid_levels method") + end + end + + describe "#log" do + it "should report if log was not implimented" do + logger = Base.new + + expect { + logger.send(:log, nil, nil, nil) + }.to raise_error("The logging class did not supply a log method") + end + end + + describe "#start" do + it "should report if log was not implimented" do + logger = Base.new + + expect { + logger.send(:start) + }.to raise_error("The logging class did not supply a start method") + end + end + + describe "#map_level" do + it "should map levels correctly" do + logger = Base.new + + logger.send(:map_level, :info).should == :info_test + logger.send(:map_level, :warn).should == :warning_test + logger.send(:map_level, :debug).should == :debug_test + logger.send(:map_level, :fatal).should == :crit_test + logger.send(:map_level, :error).should == :err_test + end + end + + describe "#get_next_level" do + it "should supply the correct next level" do + logger = Base.new + logger.set_level(:fatal) + + logger.send(:get_next_level).should == :debug + end + end + + describe "#cycle_level" do + it "should set the level to the next one and log the event" do + logger = Base.new + + logger.stubs(:get_next_level).returns(:error) + + logger.expects(:set_level).with(:error) + logger.expects(:log).with(:error, "", "Logging level is now ERROR") + + logger.cycle_level + end + end + + describe "#set_level" do + it "should set the active level" do + logger = Base.new + + logger.set_level(:error) + + logger.active_level.should == :error + end + + it "should set the level on the logger" do + logger = Base.new + + logger.set_level(:error) + end + end + end +end