4 provider_class = Puppet::Type.type(:ini_subsetting).provider(:ruby)
5 describe provider_class do
6 include PuppetlabsSpec::Files
8 let(:tmpfile) { tmpfilename("ini_setting_test") }
10 def validate_file(expected_content,tmpfile = tmpfile)
11 File.read(tmpfile).should == expected_content
16 File.open(tmpfile, 'w') do |fh|
17 fh.write(orig_content)
21 context "when ensuring that a subsetting is present" do
22 let(:common_params) { {
23 :title => 'ini_setting_ensure_present_test',
26 :key_val_separator => '=',
27 :setting => 'JAVA_ARGS',
32 JAVA_ARGS="-Xmx192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/pe-puppetdb/puppetdb-oom.hprof"
36 it "should add a missing subsetting" do
37 resource = Puppet::Type::Ini_subsetting.new(common_params.merge(
38 :subsetting => '-Xms', :value => '128m'))
39 provider = described_class.new(resource)
40 provider.exists?.should be_nil
43 JAVA_ARGS="-Xmx192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/pe-puppetdb/puppetdb-oom.hprof -Xms128m"
48 it "should remove an existing subsetting" do
49 resource = Puppet::Type::Ini_subsetting.new(common_params.merge(
50 :subsetting => '-Xmx'))
51 provider = described_class.new(resource)
52 provider.exists?.should == "192m"
55 JAVA_ARGS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/pe-puppetdb/puppetdb-oom.hprof"
60 it "should modify an existing subsetting" do
61 resource = Puppet::Type::Ini_subsetting.new(common_params.merge(
62 :subsetting => '-Xmx', :value => '256m'))
63 provider = described_class.new(resource)
64 provider.exists?.should == "192m"
65 provider.value=('256m')
67 JAVA_ARGS="-Xmx256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/pe-puppetdb/puppetdb-oom.hprof"
73 context "when working with subsettings in files with unquoted settings values" do
74 let(:common_params) { {
75 :title => 'ini_setting_ensure_present_test',
78 :setting => 'reports',
89 it "should remove an existing subsetting" do
90 resource = Puppet::Type::Ini_subsetting.new(common_params.merge(
91 :subsetting => 'http', :subsetting_separator => ','))
92 provider = described_class.new(resource)
93 provider.exists?.should == ""
103 it "should add a new subsetting when the 'parent' setting already exists" do
104 resource = Puppet::Type::Ini_subsetting.new(common_params.merge(
105 :subsetting => 'puppetdb', :subsetting_separator => ','))
106 provider = described_class.new(resource)
107 provider.exists?.should be_nil
112 reports = http,foo,puppetdb
117 it "should add a new subsetting when the 'parent' setting does not already exist" do
118 resource = Puppet::Type::Ini_subsetting.new(common_params.merge(
119 :setting => 'somenewsetting',
120 :subsetting => 'puppetdb',
121 :subsetting_separator => ','))
122 provider = described_class.new(resource)
123 provider.exists?.should be_nil
129 somenewsetting = puppetdb