Sha256: 833c2734e06987108e08f7923d9553294f6e586e8a945edcf1537748988060ca

Contents?: true

Size: 1.75 KB

Versions: 15

Compression:

Stored size: 1.75 KB

Contents

require 'assert'
require 'sanford/pid_file'

class Sanford::PIDFile

  class UnitTests < Assert::Context
    desc "Sanford::PIDFile"
    setup do
      @path = ROOT_PATH.join('tmp/pid_file_tests.pid').to_s
      @pid_file = Sanford::PIDFile.new(@path)
    end
    teardown do
      FileUtils.rm_rf(@path)
    end
    subject{ @pid_file }

    should have_readers :path
    should have_imeths :pid, :write, :remove, :to_s

    should "know its path" do
      assert_equal @path, subject.path
    end

    should "default its path" do
      pid_file = Sanford::PIDFile.new(nil)
      assert_equal '/dev/null', pid_file.path
    end

    should "know its string format" do
      assert_equal @path, subject.to_s
    end

    should "read a PID from its file" do
      pid = Factory.integer
      File.open(@path, 'w'){ |f| f.puts pid }
      assert_equal pid, subject.pid
    end

    should "raise an invalid error when it can't read from its file" do
      FileUtils.rm_rf(@path)
      assert_raises(InvalidError){ subject.pid }
    end

    should "raise an invalid error when the file doesn't have a PID in it" do
      File.open(@path, 'w'){ |f| f.puts '' }
      assert_raises(InvalidError){ subject.pid }
    end

    should "write the process PID to its file" do
      assert_false File.exists?(@path)
      subject.write
      assert_true File.exists?(@path)
      assert_equal "#{::Process.pid}\n", File.read(@path)
    end

    should "raise an invalid error when it can't write its file" do
      Assert.stub(File, :open){ raise "can't open file" }
      assert_raises(InvalidError){ subject.write }
    end

    should "remove its file" do
      FileUtils.touch(@path)
      assert_true File.exists?(@path)
      subject.remove
      assert_false File.exists?(@path)
    end

  end

end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
sanford-0.19.1 test/unit/pid_file_tests.rb
sanford-0.19.0 test/unit/pid_file_tests.rb
sanford-0.18.2 test/unit/pid_file_tests.rb
sanford-0.18.1 test/unit/pid_file_tests.rb
sanford-0.18.0 test/unit/pid_file_tests.rb
sanford-0.17.0 test/unit/pid_file_tests.rb
sanford-0.16.1 test/unit/pid_file_tests.rb
sanford-0.16.0 test/unit/pid_file_tests.rb
sanford-0.15.1 test/unit/pid_file_tests.rb
sanford-0.15.0 test/unit/pid_file_tests.rb
sanford-0.14.0 test/unit/pid_file_tests.rb
sanford-0.13.0 test/unit/pid_file_tests.rb
sanford-0.12.0 test/unit/pid_file_tests.rb
sanford-0.11.1 test/unit/pid_file_tests.rb
sanford-0.11.0 test/unit/pid_file_tests.rb