Skip to content

Commit e5dc537

Browse files
committed
Add unit tests to keycloak_role_mapping
Signed-off-by: Samuli Seppänen <samuli.seppanen@puppeteers.net>
1 parent cbf40d7 commit e5dc537

File tree

1 file changed

+97
-0
lines changed

1 file changed

+97
-0
lines changed
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
require 'spec_helper'
2+
3+
describe Puppet::Type.type(:keycloak_role_mapping) do
4+
let(:default_config) do
5+
{
6+
name: 'test',
7+
}
8+
end
9+
let(:config) do
10+
default_config
11+
end
12+
let(:resource) do
13+
described_class.new(config)
14+
end
15+
16+
it 'adds to catalog without raising an error' do
17+
catalog = Puppet::Resource::Catalog.new
18+
expect {
19+
catalog.add_resource resource
20+
}.not_to raise_error
21+
end
22+
23+
it 'has a name' do
24+
expect(resource[:name]).to eq('test')
25+
end
26+
27+
defaults = {
28+
group: :false,
29+
}
30+
31+
describe 'basic properties' do
32+
# Test basic properties
33+
[
34+
:realm,
35+
:name,
36+
].each do |p|
37+
it "should accept a #{p}" do
38+
config[p] = 'foo'
39+
expect(resource[p]).to eq('foo')
40+
end
41+
next unless defaults[p]
42+
it "should have default for #{p}" do
43+
expect(resource[p]).to eq(defaults[p])
44+
end
45+
end
46+
end
47+
48+
describe 'boolean properties' do
49+
# Test boolean properties
50+
[
51+
:group,
52+
].each do |p|
53+
it "should accept true for #{p}" do
54+
config[p] = true
55+
expect(resource[p]).to eq(:true)
56+
end
57+
it "should accept true for #{p} string" do
58+
config[p] = 'true'
59+
expect(resource[p]).to eq(:true)
60+
end
61+
it "should accept false for #{p}" do
62+
config[p] = false
63+
expect(resource[p]).to eq(:false)
64+
end
65+
it "should accept false for #{p} string" do
66+
config[p] = 'false'
67+
expect(resource[p]).to eq(:false)
68+
end
69+
it "should not accept strings for #{p}" do
70+
config[p] = 'foo'
71+
expect {
72+
resource
73+
}.to raise_error(%r{foo})
74+
end
75+
next unless defaults[p]
76+
it "should have default for #{p}" do
77+
expect(resource[p]).to eq(defaults[p])
78+
end
79+
end
80+
end
81+
82+
describe 'array properties' do
83+
# Array properties
84+
[
85+
:realm_roles,
86+
].each do |p|
87+
it "should accept array for #{p}" do
88+
config[p] = ['foo', 'bar']
89+
expect(resource[p]).to eq(['foo', 'bar'])
90+
end
91+
next unless defaults[p]
92+
it "should have default for #{p}" do
93+
expect(resource[p]).to eq(defaults[p])
94+
end
95+
end
96+
end
97+
end

0 commit comments

Comments
 (0)