puppetlabs-stdlib/spec/unit/puppet/provider/append_line/ruby_spec.rb
Dan Bode e82370a26d (#8628) Add append_line native type
This commit adds a native type that can check if
a line exists and append it to a file.

This use case seems common enough to warrant its
inclusion into stdlib.

Reviewed-by: Jeff McCune
2011-07-26 15:30:28 -07:00

30 lines
851 B
Ruby

require 'puppet'
require 'tempfile'
provider_class = Puppet::Type.type(:append_line).provider(:ruby)
describe provider_class do
before :each do
tmp = Tempfile.new('tmp')
@tmpfile = tmp.path
tmp.close!
@resource = Puppet::Type::Append_line.new(
{:name => 'foo', :path => @tmpfile, :line => 'foo'}
)
@provider = provider_class.new(@resource)
end
it 'should detect if the line exists in the file' do
File.open(@tmpfile, 'w') do |fh|
fh.write('foo')
end
@provider.exists?.should be_true
end
it 'should detect if the line does not exist in the file' do
File.open(@tmpfile, 'w') do |fh|
fh.write('foo1')
end
@provider.exists?.should be_nil
end
it 'should append to an existing file when creating' do
@provider.create
File.read(@tmpfile).chomp.should == 'foo'
end
end