describe :syslog_reopen, :shared => true do
  platform_is_not :windows do
    before :each do
      Syslog.opened?.should be_false
    end

    after :each do
      Syslog.opened?.should be_false
    end

    it "reopens the log" do
      Syslog.open
      lambda { Syslog.send(@method)}.should_not raise_error
      Syslog.opened?.should be_true
      Syslog.close
    end

    it "fails with RuntimeError if the log is closed" do
      lambda { Syslog.send(@method)}.should raise_error(RuntimeError)
    end

    it "receives the same parameters as Syslog.open" do
      Syslog.open
      Syslog.send(@method, "rubyspec", 3, 8) do |s|
        s.should == Syslog
        s.ident.should == "rubyspec"
        s.options.should == 3
        s.facility.should == Syslog::LOG_USER
        s.opened?.should be_true
      end
      Syslog.opened?.should be_false
    end

    it "returns the module" do
      Syslog.open
      Syslog.send(@method).should == Syslog
      Syslog.close
    end
  end
end
