Sha256: fa2b5dd95ddfe896ccb767b064530971cb4a46d6fa0f7da140b91f763c473502

Contents?: true

Size: 1.62 KB

Versions: 92

Compression:

Stored size: 1.62 KB

Contents

#! /usr/bin/env ruby

require 'spec_helper'

describe Puppet::Type.type(:file).attrclass(:owner) do
  include PuppetSpec::Files

  let(:path) { tmpfile('mode_spec') }
  let(:resource) { Puppet::Type.type(:file).new :path => path, :owner => 'joeuser' }
  let(:owner) { resource.property(:owner) }

  before :each do
    Puppet.features.stubs(:root?).returns(true)
  end

  describe "#insync?" do
    before :each do
      resource[:owner] = ['foo', 'bar']

      resource.provider.stubs(:name2uid).with('foo').returns 1001
      resource.provider.stubs(:name2uid).with('bar').returns 1002
    end

    it "should fail if an owner's id can't be found by name" do
      resource.provider.stubs(:name2uid).returns nil

      expect { owner.insync?(5) }.to raise_error(/Could not find user foo/)
    end

    it "should use the id for comparisons, not the name" do
      owner.insync?('foo').should be_false
    end

    it "should return true if the current owner is one of the desired owners" do
      owner.insync?(1001).should be_true
    end

    it "should return false if the current owner is not one of the desired owners" do
      owner.insync?(1003).should be_false
    end
  end

  %w[is_to_s should_to_s].each do |prop_to_s|
    describe "##{prop_to_s}" do
      it "should use the name of the user if it can find it" do
        resource.provider.stubs(:uid2name).with(1001).returns 'foo'

        owner.send(prop_to_s, 1001).should == 'foo'
      end

      it "should use the id of the user if it can't" do
        resource.provider.stubs(:uid2name).with(1001).returns nil

        owner.send(prop_to_s, 1001).should == 1001
      end
    end
  end
end

Version data entries

92 entries across 92 versions & 2 rubygems

Version Path
puppet-3.8.7 spec/unit/type/file/owner_spec.rb
puppet-3.8.7-x86-mingw32 spec/unit/type/file/owner_spec.rb
puppet-3.8.7-x64-mingw32 spec/unit/type/file/owner_spec.rb
puppet-3.8.6 spec/unit/type/file/owner_spec.rb
puppet-3.8.6-x86-mingw32 spec/unit/type/file/owner_spec.rb
puppet-3.8.6-x64-mingw32 spec/unit/type/file/owner_spec.rb
puppet-3.8.5 spec/unit/type/file/owner_spec.rb
puppet-3.8.5-x86-mingw32 spec/unit/type/file/owner_spec.rb
puppet-3.8.5-x64-mingw32 spec/unit/type/file/owner_spec.rb
puppet-3.8.4 spec/unit/type/file/owner_spec.rb
puppet-3.8.4-x86-mingw32 spec/unit/type/file/owner_spec.rb
puppet-3.8.4-x64-mingw32 spec/unit/type/file/owner_spec.rb
puppet-3.8.3 spec/unit/type/file/owner_spec.rb
puppet-3.8.3-x86-mingw32 spec/unit/type/file/owner_spec.rb
puppet-3.8.3-x64-mingw32 spec/unit/type/file/owner_spec.rb
puppet-3.8.2 spec/unit/type/file/owner_spec.rb
puppet-3.8.2-x86-mingw32 spec/unit/type/file/owner_spec.rb
puppet-3.8.2-x64-mingw32 spec/unit/type/file/owner_spec.rb
puppet-3.8.1 spec/unit/type/file/owner_spec.rb
puppet-3.8.1-x86-mingw32 spec/unit/type/file/owner_spec.rb