File: naginator_spec.rb

package info (click to toggle)
puppet 5.5.22-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 21,316 kB
  • sloc: ruby: 254,925; sh: 1,608; xml: 219; makefile: 153; sql: 103
file content (78 lines) | stat: -rw-r--r-- 2,350 bytes parent folder | download
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
require 'spec_helper'

require 'puppet/provider/naginator'

describe Puppet::Provider::Naginator do
  before do
    @resource_type = double('resource_type', :name => :nagios_test)
    @class = Class.new(Puppet::Provider::Naginator)

    allow(@class).to receive(:resource_type).and_return(@resource_type)
  end

  it "should be able to look up the associated Nagios type" do
    nagios_type = double("nagios_type")
    allow(nagios_type).to receive(:attr_accessor)
    expect(Nagios::Base).to receive(:type).with(:test).and_return(nagios_type)

    expect(@class.nagios_type).to equal(nagios_type)
  end

  it "should use the Nagios type to determine whether an attribute is valid" do
    nagios_type = double("nagios_type")
    allow(nagios_type).to receive(:attr_accessor)
    expect(Nagios::Base).to receive(:type).with(:test).and_return(nagios_type)

    expect(nagios_type).to receive(:parameters).and_return([:foo, :bar])

    expect(@class.valid_attr?(:test, :foo)).to be_truthy
  end

  it "should use Naginator to parse configuration snippets" do
    parser = double('parser')
    expect(parser).to receive(:parse).with("my text").and_return("my instances")
    expect(Nagios::Parser).to receive(:new).and_return(parser)

    expect(@class.parse("my text")).to eq("my instances")
  end

  it "should join Nagios::Base records with '\\n' when asked to convert them to text" do
    expect(@class).to receive(:header).and_return("myheader\n")

    expect(@class.to_file([:one, :two])).to eq("myheader\none\ntwo")
  end

  it "should be able to prefetch instance from configuration files" do
    expect(@class).to respond_to(:prefetch)
  end

  it "should be able to generate a list of instances" do
    expect(@class).to respond_to(:instances)
  end

  it "should never skip records" do
    expect(@class).not_to be_skip_record("foo")
  end
end

describe Nagios::Base do
  it "should not turn set parameters into arrays #17871" do
    obj = Nagios::Base.create('host')
    obj.host_name = "my_hostname"
    expect(obj.host_name).to eq("my_hostname")
  end
end

describe Nagios::Parser do
  include PuppetSpec::Files

  subject do
    described_class.new
  end

  let(:config) { File.new( my_fixture('define_empty_param') ).read }

  it "should handle empty parameter values" do
    expect { subject.parse(config) }.to_not raise_error
  end
end