Sha256: 95d5efdba071556d47d054a9357d835430e611bca193f9708a9c6f972295ccc0

Contents?: true

Size: 1.98 KB

Versions: 29

Compression:

Stored size: 1.98 KB

Contents

#! /usr/bin/env ruby
require 'spec_helper'
require 'rbconfig'
require 'fileutils'

provider_class = Puppet::Type.type(:service).provider(:init)

describe "base service provider" do
  include PuppetSpec::Files

  let :type do Puppet::Type.type(:service) end
  let :provider do type.provider(:base) end

  subject { provider }

  context "basic operations" do
    # Cross-platform file interactions.  Fun times.
    Ruby = File.join(RbConfig::CONFIG["bindir"],
                     RbConfig::CONFIG["RUBY_INSTALL_NAME"] +
                     RbConfig::CONFIG["EXEEXT"])

    Start  = [Ruby, '-rfileutils', '-e', 'FileUtils.touch(ARGV[0])']
    Status = [Ruby, '-e' 'exit File.file?(ARGV[0])']
    Stop   = [Ruby, '-e', 'File.exist?(ARGV[0]) and File.unlink(ARGV[0])']

    let :flag do tmpfile('base-service-test') end

    subject do
      type.new(:name  => "test", :provider => :base,
               :start  => Start  + [flag],
               :status => Status + [flag],
               :stop   => Stop   + [flag]
      ).provider
    end

    before :each do
      File.unlink(flag) if File.exist?(flag)
    end

    it { should be }

    it "should invoke the start command if not running" do
      File.should_not be_file flag
      subject.start
      File.should be_file flag
    end

    it "should be stopped before being started" do
      subject.status.should == :stopped
    end

    it "should be running after being started" do
      subject.start
      subject.status.should == :running
    end

    it "should invoke the stop command when asked" do
      subject.start
      subject.status.should == :running
      subject.stop
      subject.status.should == :stopped
      File.should_not be_file flag
    end

    it "should start again even if already running" do
      subject.start
      subject.expects(:ucommand).with(:start)
      subject.start
    end

    it "should stop again even if already stopped" do
      subject.stop
      subject.expects(:ucommand).with(:stop)
      subject.stop
    end
  end
end

Version data entries

29 entries across 29 versions & 2 rubygems

Version Path
puppet-3.3.2 spec/unit/provider/service/base_spec.rb
puppet-3.3.1 spec/unit/provider/service/base_spec.rb
puppet-3.3.1.rc3 spec/unit/provider/service/base_spec.rb
puppet-3.3.1.rc2 spec/unit/provider/service/base_spec.rb
puppet-3.3.1.rc1 spec/unit/provider/service/base_spec.rb
puppet-3.3.0 spec/unit/provider/service/base_spec.rb
puppet-3.3.0.rc3 spec/unit/provider/service/base_spec.rb
puppet-3.3.0.rc2 spec/unit/provider/service/base_spec.rb
puppet-3.2.4 spec/unit/provider/service/base_spec.rb
puppet-3.2.3 spec/unit/provider/service/base_spec.rb
puppet-3.2.3.rc1 spec/unit/provider/service/base_spec.rb
puppet-3.2.2 spec/unit/provider/service/base_spec.rb
puppet-3.2.1 spec/unit/provider/service/base_spec.rb
puppet-3.2.1.rc1 spec/unit/provider/service/base_spec.rb
puppet-3.2.0.rc2 spec/unit/provider/service/base_spec.rb
librarian-puppet-0.9.9 vendor/gems/ruby/1.9.1/gems/puppet-3.1.0/spec/unit/provider/service/base_spec.rb
puppet-3.2.0.rc1 spec/unit/provider/service/base_spec.rb
puppet-3.1.1 spec/unit/provider/service/base_spec.rb
librarian-puppet-0.9.8 vendor/gems/ruby/1.9.1/gems/puppet-3.1.0/spec/unit/provider/service/base_spec.rb
puppet-3.1.0 spec/unit/provider/service/base_spec.rb