]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/inifile/spec/unit/puppet/util/setting_value_spec.rb
add puppetlabs/inifile to 3rdparty
[dsa-puppet.git] / 3rdparty / modules / inifile / spec / unit / puppet / util / setting_value_spec.rb
1 require 'spec_helper'
2 require 'puppet/util/setting_value'
3
4 describe Puppet::Util::SettingValue do
5
6   describe "space subsetting separator" do
7     INIT_VALUE_SPACE = "\"-Xmx192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/pe-puppetdb/puppetdb-oom.hprof\""
8
9     before :each do
10       @setting_value = Puppet::Util::SettingValue.new(INIT_VALUE_SPACE, " ")
11     end
12   
13     it "should get the original value" do
14       @setting_value.get_value.should == INIT_VALUE_SPACE
15     end
16    
17     it "should get the correct value" do
18       @setting_value.get_subsetting_value("-Xmx").should == "192m"
19     end
20   
21     it "should add a new value" do
22       @setting_value.add_subsetting("-Xms", "256m")
23       @setting_value.get_subsetting_value("-Xms").should == "256m"
24       @setting_value.get_value.should == INIT_VALUE_SPACE[0, INIT_VALUE_SPACE.length - 1] + " -Xms256m\""
25     end
26   
27     it "should change existing value" do
28       @setting_value.add_subsetting("-Xmx", "512m")
29       @setting_value.get_subsetting_value("-Xmx").should == "512m"
30     end
31   
32     it "should remove existing value" do
33       @setting_value.remove_subsetting("-Xmx")
34       @setting_value.get_subsetting_value("-Xmx").should == nil
35     end
36   end
37
38   describe "comma subsetting separator" do
39     INIT_VALUE_COMMA = "\"-Xmx192m,-XX:+HeapDumpOnOutOfMemoryError,-XX:HeapDumpPath=/var/log/pe-puppetdb/puppetdb-oom.hprof\""
40
41     before :each do
42       @setting_value = Puppet::Util::SettingValue.new(INIT_VALUE_COMMA, ",")
43     end
44   
45     it "should get the original value" do
46       @setting_value.get_value.should == INIT_VALUE_COMMA
47     end
48    
49     it "should get the correct value" do
50       @setting_value.get_subsetting_value("-Xmx").should == "192m"
51     end
52   
53     it "should add a new value" do
54       @setting_value.add_subsetting("-Xms", "256m")
55       @setting_value.get_subsetting_value("-Xms").should == "256m"
56       @setting_value.get_value.should == INIT_VALUE_COMMA[0, INIT_VALUE_COMMA.length - 1] + ",-Xms256m\""
57     end
58   
59     it "should change existing value" do
60       @setting_value.add_subsetting("-Xmx", "512m")
61       @setting_value.get_subsetting_value("-Xmx").should == "512m"
62     end
63   
64     it "should remove existing value" do
65       @setting_value.remove_subsetting("-Xmx")
66       @setting_value.get_subsetting_value("-Xmx").should == nil
67     end
68   end
69
70   describe "quote_char parameter" do
71     QUOTE_CHAR = '"'
72     INIT_VALUE_UNQUOTED = '-Xmx192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/pe-puppetdb/puppetdb-oom.hprof'
73
74     it "should get quoted empty string if original value was empty" do
75       setting_value = Puppet::Util::SettingValue.new(nil, ' ', QUOTE_CHAR)
76       setting_value.get_value.should == QUOTE_CHAR * 2
77     end
78    
79     it "should quote the setting when adding a value" do
80       setting_value = Puppet::Util::SettingValue.new(INIT_VALUE_UNQUOTED, ' ', QUOTE_CHAR)
81       setting_value.add_subsetting("-Xms", "256m")
82
83       setting_value.get_subsetting_value("-Xms").should == "256m"
84       setting_value.get_value.should == QUOTE_CHAR + INIT_VALUE_UNQUOTED + ' -Xms256m' + QUOTE_CHAR
85     end
86   
87     it "should quote the setting when changing an existing value" do
88       setting_value = Puppet::Util::SettingValue.new(INIT_VALUE_UNQUOTED, ' ', QUOTE_CHAR)
89       setting_value.add_subsetting("-Xmx", "512m")
90
91       setting_value.get_subsetting_value("-Xmx").should == "512m"
92       setting_value.get_value.should =~ /^#{Regexp.quote(QUOTE_CHAR)}.*#{Regexp.quote(QUOTE_CHAR)}$/
93     end
94   
95     it "should quote the setting when removing an existing value" do
96       setting_value = Puppet::Util::SettingValue.new(INIT_VALUE_UNQUOTED, ' ', QUOTE_CHAR)
97       setting_value.remove_subsetting("-Xmx")
98
99       setting_value.get_subsetting_value("-Xmx").should == nil
100       setting_value.get_value.should =~ /^#{Regexp.quote(QUOTE_CHAR)}.*#{Regexp.quote(QUOTE_CHAR)}$/
101     end
102   end
103 end