Sha256: 300814f059ce50aece246b76e20efe652926441918dea00667489281b888f3a8

Contents?: true

Size: 1.68 KB

Versions: 36

Compression:

Stored size: 1.68 KB

Contents

#!/usr/bin/env rspec

require 'spec_helper'

module MCollective
  if Util.windows?
    require 'mcollective/windows_daemon'

    describe WindowsDaemon do
      describe "#daemonize_runner" do
        it "should only run on the windows platform" do
          Util.expects("windows?").returns(false)
          expect { WindowsDaemon.daemonize_runner }.to raise_error("The Windows Daemonizer should only be used on the Windows Platform")
        end

        it "should not support writing pid files" do
          expect { WindowsDaemon.daemonize_runner(true) }.to raise_error("Writing pid files are not supported on the Windows Platform")
        end

        it "should start the mainloop" do
          Util.stubs(:windows?).returns(true)
          WindowsDaemon.expects(:mainloop)
          WindowsDaemon.daemonize_runner
        end
      end

      describe "#service_main" do
        it "should start the runner" do
          runner = mock
          Runner.stubs(:new).returns(runner)
          d = WindowsDaemon.new
          runner.expects(:main_loop)
          d.service_main
        end

        it "should kill any other living threads on exit" do
          d = WindowsDaemon.new
          d.stubs(:running?).returns(false)
          other = mock
          Thread.stubs(:list).returns([Thread.current, other])
          Thread.current.expects(:kill).never
          other.expects(:kill)
          d.service_main
        end
      end

      describe "#service_stop" do
        it "should log, disconnect, stop the runner and exit" do
          runner = mock
          Log.expects(:info)
          d = WindowsDaemon.new
          runner.expects(:stop)
          d.service_stop
        end
      end
    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
mcollective-client-2.12.5 spec/unit/mcollective/windows_daemon_spec.rb
mcollective-client-2.12.4 spec/unit/mcollective/windows_daemon_spec.rb
mcollective-client-2.12.3 spec/unit/mcollective/windows_daemon_spec.rb
mcollective-client-2.12.1 spec/unit/mcollective/windows_daemon_spec.rb
mcollective-client-2.12.0 spec/unit/mcollective/windows_daemon_spec.rb
mcollective-client-2.10.6 spec/unit/mcollective/windows_daemon_spec.rb
mcollective-client-2.11.4 spec/unit/mcollective/windows_daemon_spec.rb
mcollective-client-2.11.3 spec/unit/mcollective/windows_daemon_spec.rb
mcollective-client-2.11.2 spec/unit/mcollective/windows_daemon_spec.rb
mcollective-client-2.11.1 spec/unit/mcollective/windows_daemon_spec.rb
mcollective-client-2.11.0 spec/unit/mcollective/windows_daemon_spec.rb
mcollective-client-2.10.4 spec/unit/mcollective/windows_daemon_spec.rb
mcollective-client-2.10.3 spec/unit/mcollective/windows_daemon_spec.rb
mcollective-client-2.10.2 spec/unit/mcollective/windows_daemon_spec.rb
mcollective-client-2.10.1 spec/unit/mcollective/windows_daemon_spec.rb
mcollective-client-2.10.0 spec/unit/mcollective/windows_daemon_spec.rb
mcollective-client-2.8.7 spec/unit/mcollective/windows_daemon_spec.rb
mcollective-client-2.8.5 spec/unit/mcollective/windows_daemon_spec.rb
mcollective-client-2.8.8 spec/unit/mcollective/windows_daemon_spec.rb
mcollective-client-2.8.6 spec/unit/mcollective/windows_daemon_spec.rb