+++ /dev/null
-require 'spec_helper'
-
-# This is a reduced version of ruby_spec.rb just to ensure we can subclass as
-# documented
-$: << 'spec/fixtures/modules/inherit_ini_setting/lib'
-provider_class = Puppet::Type.type(:inherit_ini_setting).provider(:ini_setting)
-describe provider_class do
- include PuppetlabsSpec::Files
-
- let(:tmpfile) { tmpfilename('inherit_ini_setting_test') }
-
- def validate_file(expected_content,tmpfile = tmpfile)
- File.read(tmpfile).should == expected_content
- end
-
-
- before :each do
- File.open(tmpfile, 'w') do |fh|
- fh.write(orig_content)
- end
- end
-
- context 'when calling instances' do
- let(:orig_content) { '' }
-
- it 'should parse nothing when the file is empty' do
- provider_class.stubs(:file_path).returns(tmpfile)
- provider_class.instances.should == []
- end
-
- context 'when the file has contents' do
- let(:orig_content) {
- <<-EOS
-# A comment
-red = blue
-green = purple
- EOS
- }
-
- it 'should parse the results' do
- provider_class.stubs(:file_path).returns(tmpfile)
- instances = provider_class.instances
- instances.size.should == 2
- # inherited version of namevar flattens the names
- names = instances.map do |instance|
- instance.instance_variable_get(:@property_hash)[:name]
- end
- names.sort.should == [ 'green', 'red' ]
- end
- end
- end
-
- context 'when ensuring that a setting is present' do
- let(:orig_content) { '' }
-
- it 'should add a value to the file' do
- provider_class.stubs(:file_path).returns(tmpfile)
- resource = Puppet::Type::Inherit_ini_setting.new({
- :setting => 'set_this',
- :value => 'to_that',
- })
- provider = described_class.new(resource)
- provider.create
- validate_file("set_this=to_that\n")
- end
- end
-end