Sha256: 28c257b7d22f8750c18136fc50beb3b85394d7b57075333b4b140e60e965c2d4

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
require 'log_switch/mixin'


class Tester
end


describe LogSwitch::Mixin do
  describe "::included" do
    context "LogSwitch.extender is set" do
      let(:logger_class) do
        double "LogSwitch.logger"
      end

      before { LogSwitch.stub(:extender).and_return logger_class }

      it "takes a class and defines the #log method on it" do
        Tester.should_receive(:send).with(:define_method, :log)

        class Tester
          include LogSwitch::Mixin
        end

        LogSwitch.unstub(:extender)
      end

      it "results in an object with a #log message" do
        class Tester
          include LogSwitch::Mixin
        end

        Tester.new.methods.should include(:log)
      end
    end

    context "LogSwitch.extender is not set" do
      before { LogSwitch.stub(:extender).and_return nil }

      it "raises a RuntimeError" do
        expect {
          class Tester
            include LogSwitch::Mixin
          end
        }.to raise_error RuntimeError
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
log_switch-0.3.0 spec/log_switch/mixin_spec.rb