summaryrefslogtreecommitdiff
path: root/spec/unit/puppet/util/ini_file_spec.rb
blob: f2c6e204ae064bb1f52148c51ab4bb982dd76c30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
require 'spec_helper'
require 'puppet/util/ini_file'

describe Puppet::Util::IniFile do
  context "when parsing a file" do
    let(:subject) { Puppet::Util::IniFile.new("/my/ini/file/path") }
    let(:sample_content) {
      template = <<-EOS
# This is a comment
[section1]
; This is also a comment
foo=foovalue

bar = barvalue
[section2]

foo= foovalue2
baz=bazvalue
    #another comment
 ; yet another comment
      EOS
      template.split("\n")
    }

    before :each do
      File.should_receive(:file?).with("/my/ini/file/path") { true }
      described_class.should_receive(:readlines).once.with("/my/ini/file/path") do
        sample_content
      end
    end

    it "should parse the correct number of sections" do
      subject.section_names.length.should == 2
    end

    it "should parse the correct section_names" do
      subject.section_names.should == ["section1", "section2"]
    end

    it "should expose settings for sections" do
      subject.get_value("section1", "foo").should == "foovalue"
      subject.get_value("section1", "bar").should == "barvalue"
      subject.get_value("section2", "foo").should == "foovalue2"
      subject.get_value("section2", "baz").should == "bazvalue"
    end

  end
end