Sha256: 468050235833e56346982f4b05651f9b7b5e97618e3f60551db82211ace0b0eb

Contents?: true

Size: 1.98 KB

Versions: 19

Compression:

Stored size: 1.98 KB

Contents

#!/usr/bin/env ruby

Dir.chdir(File.dirname(__FILE__)) { (s = lambda { |f| File.exist?(f) ? require(f) : Dir.chdir("..") { s.call(f) } }).call("spec/spec_helper.rb") }

provider = Puppet::Type.type(:package).provider(:pkg)

describe provider do
  before do
    @resource = stub 'resource', :[] => "dummy"
    @provider = provider.new(@resource)

    @fakeresult = "install ok installed dummy 1.0\n"
  end

  def self.it_should_respond_to(*actions)
    actions.each do |action|
      it "should respond to :#{action}" do
        @provider.should respond_to(action)
      end
    end
  end

  it_should_respond_to :install, :uninstall, :update, :query, :latest

  it "should be versionable" do
    provider.should_not be_versionable
  end

  it "should use :install to update" do
    @provider.expects(:install)
    @provider.update
  end

  it "should parse a line correctly" do
    result = provider.parse_line("dummy 1.0@1.0-1.0 installed ----")
    result.should == {:name => "dummy", :version => "1.0@1.0-1.0",
      :ensure => :present, :status => "installed",
      :provider => :pkg, :error => "ok"}
  end

  it "should fail to parse an incorrect line" do
    result = provider.parse_line("foo")
    result.should be_nil
  end

  it "should fail to list a missing package" do
    @provider.expects(:pkg).with(:list, "-H", "dummy").returns "1"
    @provider.query.should == {:status=>"missing", :ensure=>:absent,
      :name=>"dummy", :error=>"ok"}
  end

  it "should fail to list a package when it can't parse the output line" do
    @provider.expects(:pkg).with(:list, "-H", "dummy").returns "failed"
    @provider.query.should == {:status=>"missing", :ensure=>:absent, :name=>"dummy", :error=>"ok"}
  end

  it "should list package correctly" do
    @provider.expects(:pkg).with(:list, "-H", "dummy").returns "dummy 1.0@1.0-1.0 installed ----"
    @provider.query.should == {:name => "dummy", :version => "1.0@1.0-1.0",
      :ensure => :present, :status => "installed",
      :provider => :pkg, :error => "ok"}
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
puppet-2.6.18 spec/unit/provider/package/pkg_spec.rb
puppet-2.6.17 spec/unit/provider/package/pkg_spec.rb
puppet-2.6.16 spec/unit/provider/package/pkg_spec.rb
puppet-2.6.15 spec/unit/provider/package/pkg_spec.rb
puppet-2.6.14 spec/unit/provider/package/pkg_spec.rb
puppet-2.6.13 spec/unit/provider/package/pkg_spec.rb
puppet-2.6.12 spec/unit/provider/package/pkg_spec.rb
puppet-2.6.11 spec/unit/provider/package/pkg_spec.rb
puppet-2.6.10 spec/unit/provider/package/pkg_spec.rb
puppet-2.6.9 spec/unit/provider/package/pkg_spec.rb
puppet-2.6.8 spec/unit/provider/package/pkg_spec.rb
puppet-2.6.7 spec/unit/provider/package/pkg_spec.rb
puppet-2.6.6 spec/unit/provider/package/pkg_spec.rb
puppet-2.6.5 spec/unit/provider/package/pkg_spec.rb
puppet-2.6.4 spec/unit/provider/package/pkg_spec.rb
puppet-2.6.3 spec/unit/provider/package/pkg_spec.rb
puppet-2.6.2 spec/unit/provider/package/pkg_spec.rb
puppet-2.6.1 spec/unit/provider/package/pkg_spec.rb
puppet-2.6.0 spec/unit/provider/package/pkg_spec.rb