2 require 'puppet/util/setting_value'
4 describe Puppet::Util::SettingValue do
6 describe "space subsetting separator" do
7 INIT_VALUE_SPACE = "\"-Xmx192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/pe-puppetdb/puppetdb-oom.hprof\""
10 @setting_value = Puppet::Util::SettingValue.new(INIT_VALUE_SPACE, " ")
13 it "should get the original value" do
14 @setting_value.get_value.should == INIT_VALUE_SPACE
17 it "should get the correct value" do
18 @setting_value.get_subsetting_value("-Xmx").should == "192m"
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\""
27 it "should change existing value" do
28 @setting_value.add_subsetting("-Xmx", "512m")
29 @setting_value.get_subsetting_value("-Xmx").should == "512m"
32 it "should remove existing value" do
33 @setting_value.remove_subsetting("-Xmx")
34 @setting_value.get_subsetting_value("-Xmx").should == nil
38 describe "comma subsetting separator" do
39 INIT_VALUE_COMMA = "\"-Xmx192m,-XX:+HeapDumpOnOutOfMemoryError,-XX:HeapDumpPath=/var/log/pe-puppetdb/puppetdb-oom.hprof\""
42 @setting_value = Puppet::Util::SettingValue.new(INIT_VALUE_COMMA, ",")
45 it "should get the original value" do
46 @setting_value.get_value.should == INIT_VALUE_COMMA
49 it "should get the correct value" do
50 @setting_value.get_subsetting_value("-Xmx").should == "192m"
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\""
59 it "should change existing value" do
60 @setting_value.add_subsetting("-Xmx", "512m")
61 @setting_value.get_subsetting_value("-Xmx").should == "512m"
64 it "should remove existing value" do
65 @setting_value.remove_subsetting("-Xmx")
66 @setting_value.get_subsetting_value("-Xmx").should == nil
70 describe "quote_char parameter" do
72 INIT_VALUE_UNQUOTED = '-Xmx192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/pe-puppetdb/puppetdb-oom.hprof'
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
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")
83 setting_value.get_subsetting_value("-Xms").should == "256m"
84 setting_value.get_value.should == QUOTE_CHAR + INIT_VALUE_UNQUOTED + ' -Xms256m' + QUOTE_CHAR
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")
91 setting_value.get_subsetting_value("-Xmx").should == "512m"
92 setting_value.get_value.should =~ /^#{Regexp.quote(QUOTE_CHAR)}.*#{Regexp.quote(QUOTE_CHAR)}$/
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")
99 setting_value.get_subsetting_value("-Xmx").should == nil
100 setting_value.get_value.should =~ /^#{Regexp.quote(QUOTE_CHAR)}.*#{Regexp.quote(QUOTE_CHAR)}$/