forked from sous-chefs/java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathopenjdk_spec.rb
More file actions
147 lines (130 loc) · 4.42 KB
/
Copy pathopenjdk_spec.rb
File metadata and controls
147 lines (130 loc) · 4.42 KB
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
require 'spec_helper'
describe 'java::openjdk' do
platforms = {
'ubuntu-10.04' => {
'packages' => ['openjdk-6-jdk', 'openjdk-6-jre-headless'],
'update_alts' => true
},
'ubuntu-12.04' => {
'packages' => ['openjdk-6-jdk', 'openjdk-6-jre-headless'],
'update_alts' => true
},
'debian-6.0.5' => {
'packages' => ['openjdk-6-jdk', 'openjdk-6-jre-headless'],
'update_alts' => true
},
'debian-7.0' => {
'packages' => ['openjdk-6-jdk', 'openjdk-6-jre-headless'],
'update_alts' => true
},
'centos-6.4' => {
'packages' => ['java-1.6.0-openjdk', 'java-1.6.0-openjdk-devel'],
'update_alts' => true
},
'smartos-joyent_20130111T180733Z' => {
'packages' => ['sun-jdk6', 'sun-jre6'],
'update_alts' => false
}
}
platforms.each do |platform, data|
parts = platform.split('-')
os = parts[0]
version = parts[1]
context "On #{os} #{version}" do
let(:chef_run) { ChefSpec::ServerRunner.new(:platform => os, :version => version).converge(described_recipe) }
data['packages'].each do |pkg|
it "installs package #{pkg}" do
expect(chef_run).to install_package(pkg)
end
end
it 'sends notification to update-java-alternatives' do
if data['update_alts']
expect(chef_run).to set_java_alternatives('set-java-alternatives')
else
expect(chef_run).to_not set_java_alternatives('set-java-alternatives')
end
end
end
end
describe 'conditionally includes set attributes' do
context 'when java_home and openjdk_packages are set' do
let(:chef_run) do
runner = ChefSpec::ServerRunner.new(
:platform => 'ubuntu',
:version => '12.04'
)
runner.node.set['java']['java_home'] = "/some/path"
runner.node.set['java']['openjdk_packages'] = ['dummy','stump']
runner.converge(described_recipe)
end
it 'does not include set_attributes_from_version' do
expect(chef_run).to_not include_recipe('java::set_attributes_from_version')
end
end
context 'when java_home and openjdk_packages are not set' do
let(:chef_run) do
runner = ChefSpec::ServerRunner.new(
:platform => 'ubuntu',
:version => '12.04'
)
runner.converge(described_recipe)
end
it 'does not include set_attributes_from_version' do
expect(chef_run).to include_recipe('java::set_attributes_from_version')
end
end
end
describe 'license acceptance file' do
{'centos' => '6.3','ubuntu' => '12.04'}.each_pair do |platform, version|
context platform do
let(:chef_run) do
ChefSpec::ServerRunner.new(:platform => platform, :version => version).converge('java::openjdk')
end
it 'does not write out license file' do
expect(chef_run).not_to create_file("/opt/local/.dlj_license_accepted")
end
end
end
context 'smartos' do
let(:chef_run) do
ChefSpec::ServerRunner.new(:platform => 'smartos', :version => 'joyent_20130111T180733Z', :evaluate_guards => true)
end
context 'when auto_accept_license is true' do
it 'writes out a license acceptance file' do
chef_run.node.set['java']['accept_license_agreement'] = true
expect(chef_run.converge(described_recipe)).to create_file("/opt/local/.dlj_license_accepted")
end
end
context 'when auto_accept_license is false' do
it 'does not write license file' do
chef_run.node.set['java']['accept_license_agreement'] = false
expect(chef_run.converge(described_recipe)).not_to create_file("/opt/local/.dlj_license_accepted")
end
end
end
end
describe 'default-java' do
context 'ubuntu' do
let(:chef_run) do
ChefSpec::ServerRunner.new(
:platform => 'ubuntu',
:version => '12.04'
).converge(described_recipe)
end
it 'includes default_java_symlink' do
expect(chef_run).to include_recipe('java::default_java_symlink')
end
end
context 'centos' do
let(:chef_run) do
ChefSpec::ServerRunner.new(
:platform => 'centos',
:version => '6.4'
).converge(described_recipe)
end
it 'does not include default_java_symlink' do
expect(chef_run).to_not include_recipe('java::default_java_symlink')
end
end
end
end