chefspec 7.0.0 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -1
  3. data/Gemfile +6 -0
  4. data/README.md +43 -11
  5. data/Rakefile +48 -8
  6. data/chefspec.gemspec +0 -8
  7. data/examples/cab_package/spec/install_spec.rb +20 -18
  8. data/examples/cab_package/spec/remove_spec.rb +17 -15
  9. data/examples/cached/spec/default_spec.rb +1 -0
  10. data/examples/compile_time/spec/default_spec.rb +2 -0
  11. data/examples/custom_matcher/libraries/matcher.rb +1 -23
  12. data/examples/dnf_package/spec/install_spec.rb +20 -18
  13. data/examples/dnf_package/spec/purge_spec.rb +17 -15
  14. data/examples/dnf_package/spec/remove_spec.rb +17 -15
  15. data/examples/dnf_package/spec/upgrade_spec.rb +17 -15
  16. data/examples/heavy_provider_light_resource/spec/provider_service_spec.rb +1 -0
  17. data/examples/msu_package/spec/install_spec.rb +20 -18
  18. data/examples/msu_package/spec/remove_spec.rb +17 -15
  19. data/examples/server/spec/exotic_port_spec.rb +15 -2
  20. data/lib/chefspec.rb +1 -8
  21. data/lib/chefspec/api.rb +6 -84
  22. data/lib/chefspec/api/do_nothing.rb +18 -21
  23. data/lib/chefspec/api/include_recipe.rb +20 -23
  24. data/lib/chefspec/api/link.rb +20 -99
  25. data/lib/chefspec/api/notifications.rb +32 -35
  26. data/lib/chefspec/api/reboot.rb +5 -14
  27. data/lib/chefspec/api/render_file.rb +29 -32
  28. data/lib/chefspec/api/state_attrs.rb +22 -25
  29. data/lib/chefspec/api/subscriptions.rb +29 -32
  30. data/lib/chefspec/api/user.rb +216 -219
  31. data/lib/chefspec/extensions.rb +16 -0
  32. data/lib/chefspec/extensions/chef/resource.rb +90 -8
  33. data/lib/chefspec/version.rb +1 -1
  34. data/lib/chefspec/zero_server.rb +20 -18
  35. metadata +3 -313
  36. data/examples/custom_resource/libraries/matchers.rb +0 -5
  37. data/examples/use_inline_resources/libraries/matchers.rb +0 -5
  38. data/features/apt_package.feature +0 -14
  39. data/features/apt_repository.feature +0 -15
  40. data/features/apt_update.feature +0 -13
  41. data/features/attributes.feature +0 -7
  42. data/features/batch.feature +0 -10
  43. data/features/bff_package.feature +0 -12
  44. data/features/cab_package.feature +0 -21
  45. data/features/cached.feature +0 -7
  46. data/features/chef_gem.feature +0 -14
  47. data/features/chocolatey_package.feature +0 -14
  48. data/features/compile_time.feature +0 -7
  49. data/features/cookbook_file.feature +0 -13
  50. data/features/cron.feature +0 -11
  51. data/features/custom_matcher.feature +0 -11
  52. data/features/custom_resource.feature +0 -7
  53. data/features/deploy.feature +0 -12
  54. data/features/directory.feature +0 -11
  55. data/features/dnf_package.feature +0 -26
  56. data/features/do_nothing.feature +0 -10
  57. data/features/dpkg_package.feature +0 -12
  58. data/features/dsc_resource.feature +0 -10
  59. data/features/dsc_script.feature +0 -10
  60. data/features/env.feature +0 -12
  61. data/features/erl_call.feature +0 -10
  62. data/features/execute.feature +0 -10
  63. data/features/exotic_zero_port.feature +0 -7
  64. data/features/expect_exception.feature +0 -12
  65. data/features/file.feature +0 -13
  66. data/features/freebsd_package.feature +0 -11
  67. data/features/gem_package.feature +0 -14
  68. data/features/git.feature +0 -12
  69. data/features/group.feature +0 -13
  70. data/features/guards.feature +0 -10
  71. data/features/heavy_provider_light_resource.feature +0 -10
  72. data/features/homebrew_package.feature +0 -12
  73. data/features/http_request.feature +0 -15
  74. data/features/ifconfig.feature +0 -13
  75. data/features/include_recipe.feature +0 -10
  76. data/features/ips_package.feature +0 -12
  77. data/features/launchd.feature +0 -17
  78. data/features/link.feature +0 -12
  79. data/features/log.feature +0 -10
  80. data/features/macports_package.feature +0 -13
  81. data/features/mdadm.feature +0 -12
  82. data/features/mount.feature +0 -14
  83. data/features/msu_package.feature +0 -23
  84. data/features/multiple_actions.feature +0 -12
  85. data/features/multiple_run_action.feature +0 -7
  86. data/features/notifications.feature +0 -14
  87. data/features/ohai.feature +0 -10
  88. data/features/openbsd_package.feature +0 -12
  89. data/features/osx_profile.feature +0 -13
  90. data/features/package.feature +0 -14
  91. data/features/pacman_package.feature +0 -13
  92. data/features/paludis_package.feature +0 -12
  93. data/features/portage_package.feature +0 -13
  94. data/features/powershell_script.feature +0 -10
  95. data/features/reboot.feature +0 -12
  96. data/features/registry_key.feature +0 -13
  97. data/features/remote_directory.feature +0 -12
  98. data/features/remote_file.feature +0 -13
  99. data/features/render_file.feature +0 -11
  100. data/features/roles.feature +0 -7
  101. data/features/route.feature +0 -11
  102. data/features/rpm_package.feature +0 -12
  103. data/features/ruby_block.feature +0 -11
  104. data/features/script.feature +0 -16
  105. data/features/server.feature +0 -16
  106. data/features/server_on_disk.feature +0 -16
  107. data/features/service.feature +0 -15
  108. data/features/smartos_package.feature +0 -12
  109. data/features/solaris_package.feature +0 -12
  110. data/features/state_attrs.feature +0 -7
  111. data/features/step_definitions/background_steps.rb +0 -7
  112. data/features/step_into.feature +0 -7
  113. data/features/stub_command.feature +0 -7
  114. data/features/stub_data_bag.feature +0 -7
  115. data/features/stub_data_bag_item.feature +0 -7
  116. data/features/stub_node.feature +0 -7
  117. data/features/stub_search.feature +0 -7
  118. data/features/subscribes.feature +0 -14
  119. data/features/subversion.feature +0 -13
  120. data/features/support/env.rb +0 -38
  121. data/features/support/executor.rb +0 -20
  122. data/features/support/exotic_zero_port.rb +0 -3
  123. data/features/support/on_disk.rb +0 -7
  124. data/features/systemd_unit.feature +0 -27
  125. data/features/template.feature +0 -13
  126. data/features/use_inline_resources.feature +0 -7
  127. data/features/user.feature +0 -15
  128. data/features/windows_package.feature +0 -11
  129. data/features/windows_service.feature +0 -16
  130. data/features/yum_package.feature +0 -13
  131. data/features/yum_repository.feature +0 -23
  132. data/features/zypper_package.feature +0 -13
  133. data/lib/chefspec/api/apt_package.rb +0 -192
  134. data/lib/chefspec/api/apt_repository.rb +0 -56
  135. data/lib/chefspec/api/apt_update.rb +0 -53
  136. data/lib/chefspec/api/batch.rb +0 -43
  137. data/lib/chefspec/api/bff_package.rb +0 -154
  138. data/lib/chefspec/api/cab_package.rb +0 -80
  139. data/lib/chefspec/api/chef_gem.rb +0 -191
  140. data/lib/chefspec/api/chocolatey_package.rb +0 -107
  141. data/lib/chefspec/api/cookbook_file.rb +0 -166
  142. data/lib/chefspec/api/cron.rb +0 -80
  143. data/lib/chefspec/api/deploy.rb +0 -117
  144. data/lib/chefspec/api/directory.rb +0 -80
  145. data/lib/chefspec/api/dnf_package.rb +0 -154
  146. data/lib/chefspec/api/dpkg_package.rb +0 -117
  147. data/lib/chefspec/api/dsc_resource.rb +0 -49
  148. data/lib/chefspec/api/dsc_script.rb +0 -37
  149. data/lib/chefspec/api/easy_install_package.rb +0 -154
  150. data/lib/chefspec/api/env.rb +0 -117
  151. data/lib/chefspec/api/erl_call.rb +0 -43
  152. data/lib/chefspec/api/execute.rb +0 -43
  153. data/lib/chefspec/api/file.rb +0 -166
  154. data/lib/chefspec/api/freebsd_package.rb +0 -80
  155. data/lib/chefspec/api/gem_package.rb +0 -191
  156. data/lib/chefspec/api/git.rb +0 -117
  157. data/lib/chefspec/api/group.rb +0 -154
  158. data/lib/chefspec/api/homebrew_package.rb +0 -154
  159. data/lib/chefspec/api/http_request.rb +0 -228
  160. data/lib/chefspec/api/ifconfig.rb +0 -154
  161. data/lib/chefspec/api/ips_package.rb +0 -117
  162. data/lib/chefspec/api/launchd.rb +0 -151
  163. data/lib/chefspec/api/log.rb +0 -43
  164. data/lib/chefspec/api/macports_package.rb +0 -154
  165. data/lib/chefspec/api/mdadm.rb +0 -117
  166. data/lib/chefspec/api/mount.rb +0 -192
  167. data/lib/chefspec/api/msu_package.rb +0 -81
  168. data/lib/chefspec/api/ohai.rb +0 -43
  169. data/lib/chefspec/api/openbsd_package.rb +0 -155
  170. data/lib/chefspec/api/osx_profile.rb +0 -63
  171. data/lib/chefspec/api/package.rb +0 -192
  172. data/lib/chefspec/api/pacman_package.rb +0 -155
  173. data/lib/chefspec/api/paludis_package.rb +0 -155
  174. data/lib/chefspec/api/portage_package.rb +0 -155
  175. data/lib/chefspec/api/powershell_script.rb +0 -43
  176. data/lib/chefspec/api/registry_key.rb +0 -166
  177. data/lib/chefspec/api/remote_directory.rb +0 -120
  178. data/lib/chefspec/api/remote_file.rb +0 -166
  179. data/lib/chefspec/api/route.rb +0 -80
  180. data/lib/chefspec/api/rpm_package.rb +0 -117
  181. data/lib/chefspec/api/ruby_block.rb +0 -68
  182. data/lib/chefspec/api/script.rb +0 -278
  183. data/lib/chefspec/api/service.rb +0 -246
  184. data/lib/chefspec/api/smartos_package.rb +0 -117
  185. data/lib/chefspec/api/solaris_package.rb +0 -117
  186. data/lib/chefspec/api/subversion.rb +0 -154
  187. data/lib/chefspec/api/systemd_unit.rb +0 -353
  188. data/lib/chefspec/api/template.rb +0 -166
  189. data/lib/chefspec/api/windows_package.rb +0 -86
  190. data/lib/chefspec/api/windows_service.rb +0 -286
  191. data/lib/chefspec/api/yum_package.rb +0 -154
  192. data/lib/chefspec/api/yum_repository.rb +0 -130
  193. data/lib/chefspec/api/zypper_package.rb +0 -154
  194. data/spec/unit/api_spec.rb +0 -18
@@ -1,80 +0,0 @@
1
- module ChefSpec::API
2
- # @since 6.0.0
3
- module CabPackageMatchers
4
- ChefSpec.define_matcher :cab_package
5
-
6
- #
7
- # Assert that a +cab_package+ resource exists in the Chef run with the
8
- # action +:install+. Given a Chef Recipe that installs "apache2" as a
9
- # +cab_package+:
10
- #
11
- # cab_package 'apache2' do
12
- # action :install
13
- # end
14
- #
15
- # The Examples section demonstrates the different ways to test a
16
- # +cab_package+ resource with ChefSpec.
17
- #
18
- # @example Assert that a +cab_package+ was installed
19
- # expect(chef_run).to install_cab_package('apache2')
20
- #
21
- # @example Assert that a +cab_package+ was installed with predicate matchers
22
- # expect(chef_run).to install_cab_package('apache2').with_version('1.2.3')
23
- #
24
- # @example Assert that a +cab_package+ was installed with attributes
25
- # expect(chef_run).to install_cab_package('apache2').with(version: '1.2.3')
26
- #
27
- # @example Assert that a +cab_package+ was installed using a regex
28
- # expect(chef_run).to install_cab_package('apache2').with(version: /(\d+\.){2}\.\d+/)
29
- #
30
- # @example Assert that a +cab_package+ was _not_ installed
31
- # expect(chef_run).to_not install_cab_package('apache2')
32
- #
33
- #
34
- # @param [String, Regex] resource_name
35
- # the name of the resource to match
36
- #
37
- # @return [ChefSpec::Matchers::ResourceMatcher]
38
- #
39
- def install_cab_package(resource_name)
40
- ChefSpec::Matchers::ResourceMatcher.new(:cab_package, :install, resource_name)
41
- end
42
-
43
- #
44
- # Assert that a +cab_package+ resource exists in the Chef run with the
45
- # action +:remove+. Given a Chef Recipe that removes "apache2" as a
46
- # +cab_package+:
47
- #
48
- # cab_package 'apache2' do
49
- # action :remove
50
- # end
51
- #
52
- # The Examples section demonstrates the different ways to test a
53
- # +cab_package+ resource with ChefSpec.
54
- #
55
- # @example Assert that a +cab_package+ was removed
56
- # expect(chef_run).to remove_cab_package('apache2')
57
- #
58
- # @example Assert that a +cab_package+ was removed with predicate matchers
59
- # expect(chef_run).to remove_cab_package('apache2').with_version('1.2.3')
60
- #
61
- # @example Assert that a +cab_package+ was removed with attributes
62
- # expect(chef_run).to remove_cab_package('apache2').with(version: '1.2.3')
63
- #
64
- # @example Assert that a +cab_package+ was removed using a regex
65
- # expect(chef_run).to remove_cab_package('apache2').with(version: /(\d+\.){2}\.\d+/)
66
- #
67
- # @example Assert that a +cab_package+ was _not_ removed
68
- # expect(chef_run).to_not remove_cab_package('apache2')
69
- #
70
- #
71
- # @param [String, Regex] resource_name
72
- # the name of the resource to match
73
- #
74
- # @return [ChefSpec::Matchers::ResourceMatcher]
75
- #
76
- def remove_cab_package(resource_name)
77
- ChefSpec::Matchers::ResourceMatcher.new(:cab_package, :remove, resource_name)
78
- end
79
- end
80
- end
@@ -1,191 +0,0 @@
1
- module ChefSpec::API
2
- # @since 0.8.0
3
- module ChefGemMatchers
4
- ChefSpec.define_matcher :chef_gem
5
-
6
- #
7
- # Assert that a +chef_gem+ resource exists in the Chef run with the
8
- # action +:install+. Given a Chef Recipe that installs "community-zero" as a
9
- # +chef_gem+:
10
- #
11
- # chef_gem 'community-zero' do
12
- # action :install
13
- # end
14
- #
15
- # The Examples section demonstrates the different ways to test a
16
- # +chef_gem+ resource with ChefSpec.
17
- #
18
- # @example Assert that a +chef_gem+ was installed
19
- # expect(chef_run).to install_chef_gem('community-zero')
20
- #
21
- # @example Assert that a +chef_gem+ was installed with predicate matchers
22
- # expect(chef_run).to install_chef_gem('community-zero').with_version('1.2.3')
23
- #
24
- # @example Assert that a +chef_gem+ was installed with attributes
25
- # expect(chef_run).to install_chef_gem('community-zero').with(version: '1.2.3')
26
- #
27
- # @example Assert that a +chef_gem+ was installed using a regex
28
- # expect(chef_run).to install_chef_gem('community-zero').with(version: /(\d+\.){2}\.\d+/)
29
- #
30
- # @example Assert that a +chef_gem+ was _not_ installed
31
- # expect(chef_run).to_not install_chef_gem('community-zero')
32
- #
33
- #
34
- # @param [String, Regex] resource_name
35
- # the name of the resource to match
36
- #
37
- # @return [ChefSpec::Matchers::ResourceMatcher]
38
- #
39
- def install_chef_gem(resource_name)
40
- ChefSpec::Matchers::ResourceMatcher.new(:chef_gem, :install, resource_name)
41
- end
42
-
43
- #
44
- # Assert that a +chef_gem+ resource exists in the Chef run with the
45
- # action +:purge+. Given a Chef Recipe that purges "community-zero" as a
46
- # +chef_gem+:
47
- #
48
- # chef_gem 'community-zero' do
49
- # action :purge
50
- # end
51
- #
52
- # The Examples section demonstrates the different ways to test a
53
- # +chef_gem+ resource with ChefSpec.
54
- #
55
- # @example Assert that a +chef_gem+ was purgeed
56
- # expect(chef_run).to purge_chef_gem('community-zero')
57
- #
58
- # @example Assert that a +chef_gem+ was purgeed with predicate matchers
59
- # expect(chef_run).to purge_chef_gem('community-zero').with_version('1.2.3')
60
- #
61
- # @example Assert that a +chef_gem+ was purgeed with attributes
62
- # expect(chef_run).to purge_chef_gem('community-zero').with(version: '1.2.3')
63
- #
64
- # @example Assert that a +chef_gem+ was purgeed using a regex
65
- # expect(chef_run).to purge_chef_gem('community-zero').with(version: /(\d+\.){2}\.\d+/)
66
- #
67
- # @example Assert that a +chef_gem+ was _not_ purgeed
68
- # expect(chef_run).to_not purge_chef_gem('community-zero')
69
- #
70
- #
71
- # @param [String, Regex] resource_name
72
- # the name of the resource to match
73
- #
74
- # @return [ChefSpec::Matchers::ResourceMatcher]
75
- #
76
- def purge_chef_gem(resource_name)
77
- ChefSpec::Matchers::ResourceMatcher.new(:chef_gem, :purge, resource_name)
78
- end
79
-
80
- #
81
- # Assert that a +chef_gem+ resource exists in the Chef run with the
82
- # action +:reconfig+. Given a Chef Recipe that reconfigures "community-zero"
83
- # as a +chef_gem+:
84
- #
85
- # chef_gem 'community-zero' do
86
- # action :reconfig
87
- # end
88
- #
89
- # The Examples section demonstrates the different ways to test a
90
- # +chef_gem+ resource with ChefSpec.
91
- #
92
- # @example Assert that a +chef_gem+ was reconfigured
93
- # expect(chef_run).to reconfig_chef_gem('community-zero')
94
- #
95
- # @example Assert that a +chef_gem+ was reconfigured with predicate matchers
96
- # expect(chef_run).to reconfig_chef_gem('community-zero').with_version('1.2.3')
97
- #
98
- # @example Assert that a +chef_gem+ was reconfigured with attributes
99
- # expect(chef_run).to reconfig_chef_gem('community-zero').with(version: '1.2.3')
100
- #
101
- # @example Assert that a +chef_gem+ was reconfigured using a regex
102
- # expect(chef_run).to reconfig_chef_gem('community-zero').with(version: /(\d+\.){2}\.\d+/)
103
- #
104
- # @example Assert that a +chef_gem+ was _not_ reconfigured
105
- # expect(chef_run).to_not reconfig_chef_gem('community-zero')
106
- #
107
- #
108
- # @param [String, Regex] resource_name
109
- # the name of the resource to match
110
- #
111
- # @return [ChefSpec::Matchers::ResourceMatcher]
112
- #
113
- def reconfig_chef_gem(resource_name)
114
- ChefSpec::Matchers::ResourceMatcher.new(:chef_gem, :reconfig, resource_name)
115
- end
116
-
117
- #
118
- # Assert that a +chef_gem+ resource exists in the Chef run with the
119
- # action +:remove+. Given a Chef Recipe that removes "community-zero" as a
120
- # +chef_gem+:
121
- #
122
- # chef_gem 'community-zero' do
123
- # action :remove
124
- # end
125
- #
126
- # The Examples section demonstrates the different ways to test a
127
- # +chef_gem+ resource with ChefSpec.
128
- #
129
- # @example Assert that a +chef_gem+ was removeed
130
- # expect(chef_run).to remove_chef_gem('community-zero')
131
- #
132
- # @example Assert that a +chef_gem+ was removeed with predicate matchers
133
- # expect(chef_run).to remove_chef_gem('community-zero').with_version('1.2.3')
134
- #
135
- # @example Assert that a +chef_gem+ was removeed with attributes
136
- # expect(chef_run).to remove_chef_gem('community-zero').with(version: '1.2.3')
137
- #
138
- # @example Assert that a +chef_gem+ was removeed using a regex
139
- # expect(chef_run).to remove_chef_gem('community-zero').with(version: /(\d+\.){2}\.\d+/)
140
- #
141
- # @example Assert that a +chef_gem+ was _not_ removeed
142
- # expect(chef_run).to_not remove_chef_gem('community-zero')
143
- #
144
- #
145
- # @param [String, Regex] resource_name
146
- # the name of the resource to match
147
- #
148
- # @return [ChefSpec::Matchers::ResourceMatcher]
149
- #
150
- def remove_chef_gem(resource_name)
151
- ChefSpec::Matchers::ResourceMatcher.new(:chef_gem, :remove, resource_name)
152
- end
153
-
154
- #
155
- # Assert that a +chef_gem+ resource exists in the Chef run with the
156
- # action +:upgrade+. Given a Chef Recipe that upgrades "community-zero" as a
157
- # +chef_gem+:
158
- #
159
- # chef_gem 'community-zero' do
160
- # action :upgrade
161
- # end
162
- #
163
- # The Examples section demonstrates the different ways to test a
164
- # +chef_gem+ resource with ChefSpec.
165
- #
166
- # @example Assert that a +chef_gem+ was upgradeed
167
- # expect(chef_run).to upgrade_chef_gem('community-zero')
168
- #
169
- # @example Assert that a +chef_gem+ was upgradeed with predicate matchers
170
- # expect(chef_run).to upgrade_chef_gem('community-zero').with_version('1.2.3')
171
- #
172
- # @example Assert that a +chef_gem+ was upgradeed with attributes
173
- # expect(chef_run).to upgrade_chef_gem('community-zero').with(version: '1.2.3')
174
- #
175
- # @example Assert that a +chef_gem+ was upgradeed using a regex
176
- # expect(chef_run).to upgrade_chef_gem('community-zero').with(version: /(\d+\.){2}\.\d+/)
177
- #
178
- # @example Assert that a +chef_gem+ was _not_ upgradeed
179
- # expect(chef_run).to_not upgrade_chef_gem('community-zero')
180
- #
181
- #
182
- # @param [String, Regex] resource_name
183
- # the name of the resource to match
184
- #
185
- # @return [ChefSpec::Matchers::ResourceMatcher]
186
- #
187
- def upgrade_chef_gem(resource_name)
188
- ChefSpec::Matchers::ResourceMatcher.new(:chef_gem, :upgrade, resource_name)
189
- end
190
- end
191
- end
@@ -1,107 +0,0 @@
1
- module ChefSpec::API
2
- # @since 4.6.0
3
- module ChocolateyPackageMatchers
4
- ChefSpec.define_matcher :chocolatey_package
5
- #
6
- # Assert that a +chocolatey_package+ resource exists in the Chef run with the
7
- # action +:install+. Given a Chef Recipe that installs "7zip" as a
8
- # +chocolatey_package+:
9
- #
10
- # chocolatey_package '7zip' do
11
- # action :install
12
- # end
13
- #
14
- # The Examples section demonstrates the different ways to test a
15
- # +chocolatey_package+ resource with ChefSpec.
16
- #
17
- # @example Assert that a +chocolatey_package+ was installed
18
- # expect(chef_run).to install_chocolatey_package('7zip')
19
- #
20
- # @example Assert that a +chocolatey_package+ was installed with attributes
21
- # expect(chef_run).to install_chocolatey_package('git').with(
22
- # version: %w(2.7.1),
23
- # options: '--params /GitAndUnixToolsOnPath'
24
- # )
25
- #
26
- # @example Assert that a +chocolatey_package+ was _not_ installed
27
- # expect(chef_run).to_not install_chocolatey_package('flashplayeractivex')
28
- #
29
- # @param [String, Regex] resource_name
30
- # the name of the resource to match
31
- #
32
- # @return [ChefSpec::Matchers::ResourceMatcher]
33
- #
34
- def install_chocolatey_package(resource_name)
35
- ChefSpec::Matchers::ResourceMatcher.new(:chocolatey_package, :install, resource_name)
36
- end
37
-
38
- #
39
- # Assert that a +chocolatey_package+ resource exists in the Chef run with the
40
- # action +:remove+. Given a Chef Recipe that removes "7zip" as a
41
- # +chocolatey_package+:
42
- #
43
- # chocolatey_package '7zip' do
44
- # action :remove
45
- # end
46
- #
47
- # To test the content rendered by a +chocolatey_package+, see
48
- # {ChefSpec::API::RenderFileMatchers}.
49
- #
50
- # The Examples section demonstrates the different ways to test a
51
- # +chocolatey_package+ resource with ChefSpec.
52
- #
53
- # @example Assert that a +chocolatey_package+ was removed
54
- # expect(chef_run).to remove_chocolatey_package('7zip')
55
- #
56
- # @example Assert that a specific +chocolatey_package+ version was removed
57
- # expect(chef_run).to remove_chocolatey_package('7zip').with(
58
- # version: %w(15.14)
59
- # )
60
- #
61
- # @example Assert that a +chocolatey_package+ was _not_ removed
62
- # expect(chef_run).to_not remove_chocolatey_package('7zip')
63
- #
64
- #
65
- # @param [String, Regex] resource_name
66
- # the name of the resource to match
67
- #
68
- # @return [ChefSpec::Matchers::ResourceMatcher]
69
- #
70
- def remove_chocolatey_package(resource_name)
71
- ChefSpec::Matchers::ResourceMatcher.new(:chocolatey_package, :remove, resource_name)
72
- end
73
-
74
- #
75
- # Assert that a +chocolatey_package+ resource exists in the Chef run with the
76
- # action +:upgrade+. Given a Chef Recipe that upgrades "7zip" as a
77
- # +chocolatey_package+:
78
- #
79
- # chocolatey_package '7zip' do
80
- # action :upgrade
81
- # end
82
- #
83
- # The Examples section demonstrates the different ways to test a
84
- # +chocolatey_package+ resource with ChefSpec.
85
- #
86
- # @example Assert that a +chocolatey_package+ was upgraded
87
- # expect(chef_run).to upgrade_chocolatey_package('7zip')
88
- #
89
- # @example Assert that a +chocolatey_package+ was upgraded with attributes
90
- # expect(chef_run).to upgrade_chocolatey_package('git').with(
91
- # version: %w(2.7.1),
92
- # options: '-params "/GitAndUnixToolsOnPath"'
93
- # )
94
- #
95
- # @example Assert that a +chocolatey_package+ was _not_ upgraded
96
- # expect(chef_run).to_not upgrade_chocolatey_package('flashplayeractivex')
97
- #
98
- # @param [String, Regex] resource_name
99
- # the name of the resource to match
100
- #
101
- # @return [ChefSpec::Matchers::ResourceMatcher]
102
- #
103
- def upgrade_chocolatey_package(resource_name)
104
- ChefSpec::Matchers::ResourceMatcher.new(:chocolatey_package, :upgrade, resource_name)
105
- end
106
- end
107
- end
@@ -1,166 +0,0 @@
1
- module ChefSpec::API
2
- # @since 0.0.1
3
- module CookbookFileMatchers
4
- ChefSpec.define_matcher :cookbook_file
5
-
6
- #
7
- # Assert that a +cookbook_file+ resource exists in the Chef run with the
8
- # action +:create+. Given a Chef Recipe that creates "/tmp/config" as a
9
- # +cookbook_file+:
10
- #
11
- # cookbook_file '/tmp/config' do
12
- # action :create
13
- # end
14
- #
15
- # To test the content rendered by a +cookbook_file+, see
16
- # {ChefSpec::API::RenderFileMatchers}.
17
- #
18
- # The Examples section demonstrates the different ways to test a
19
- # +cookbook_file+ resource with ChefSpec.
20
- #
21
- # @example Assert that a +cookbook_file+ was created
22
- # expect(chef_run).to create_cookbook_file('/tmp/config')
23
- #
24
- # @example Assert that a +cookbook_file+ was created with predicate matchers
25
- # expect(chef_run).to create_cookbook_file('/tmp/config').with_backup(false)
26
- #
27
- # @example Assert that a +cookbook_file+ was created with attributes
28
- # expect(chef_run).to create_cookbook_file('/tmp/config').with(backup: false)
29
- #
30
- # @example Assert that a +cookbook_file+ was created using a regex
31
- # expect(chef_run).to create_cookbook_file('/tmp/config').with(user: /apa(.+)/)
32
- #
33
- # @example Assert that a +cookbook_file+ was _not_ created
34
- # expect(chef_run).to_not create_cookbook_file('/tmp/config')
35
- #
36
- #
37
- # @param [String, Regex] resource_name
38
- # the name of the resource to match
39
- #
40
- # @return [ChefSpec::Matchers::ResourceMatcher]
41
- #
42
- def create_cookbook_file(resource_name)
43
- ChefSpec::Matchers::ResourceMatcher.new(:cookbook_file, :create, resource_name)
44
- end
45
-
46
- #
47
- # Assert that a +cookbook_file+ resource exists in the Chef run with the
48
- # action +:create_if_missing+. Given a Chef Recipe that creates "/tmp/config"
49
- # if missing as a +cookbook_file+:
50
- #
51
- # cookbook_file '/tmp/config' do
52
- # action :create_if_missing
53
- # end
54
- #
55
- # To test the content rendered by a +cookbook_file+, see
56
- # {ChefSpec::API::RenderFileMatchers}.
57
- #
58
- # The Examples section demonstrates the different ways to test a
59
- # +cookbook_file+ resource with ChefSpec.
60
- #
61
- # @example Assert that a +cookbook_file+ was created if missing
62
- # expect(chef_run).to create_cookbook_file_if_missing('/tmp/config')
63
- #
64
- # @example Assert that a +cookbook_file+ was created if missing with predicate matchers
65
- # expect(chef_run).to create_cookbook_file_if_missing('/tmp/config').with_backup(false)
66
- #
67
- # @example Assert that a +cookbook_file+ was created if missing with attributes
68
- # expect(chef_run).to create_cookbook_file_if_missing('/tmp/config').with(backup: false)
69
- #
70
- # @example Assert that a +cookbook_file+ was created if missing using a regex
71
- # expect(chef_run).to create_cookbook_file_if_missing('/tmp/config').with(user: /apa(.+)/)
72
- #
73
- # @example Assert that a +cookbook_file+ was _not_ created if missing
74
- # expect(chef_run).to_not create_cookbook_file('/tmp/config')
75
- #
76
- #
77
- # @param [String, Regex] resource_name
78
- # the name of the resource to match
79
- #
80
- # @return [ChefSpec::Matchers::ResourceMatcher]
81
- #
82
- def create_cookbook_file_if_missing(resource_name)
83
- ChefSpec::Matchers::ResourceMatcher.new(:cookbook_file, :create_if_missing, resource_name)
84
- end
85
-
86
- #
87
- # Assert that a +cookbook_file+ resource exists in the Chef run with the
88
- # action +:delete+. Given a Chef Recipe that deletes "/tmp/config" as a
89
- # +cookbook_file+:
90
- #
91
- # cookbook_file '/tmp/config' do
92
- # action :delete
93
- # end
94
- #
95
- # To test the content rendered by a +cookbook_file+, see
96
- # {ChefSpec::API::RenderFileMatchers}.
97
- #
98
- # The Examples section demonstrates the different ways to test a
99
- # +cookbook_file+ resource with ChefSpec.
100
- #
101
- # @example Assert that a +cookbook_file+ was deleted
102
- # expect(chef_run).to delete_cookbook_file('/tmp/config')
103
- #
104
- # @example Assert that a +cookbook_file+ was deleted with predicate matchers
105
- # expect(chef_run).to delete_cookbook_file('/tmp/config').with_backup(false)
106
- #
107
- # @example Assert that a +cookbook_file+ was deleted with attributes
108
- # expect(chef_run).to delete_cookbook_file('/tmp/config').with(backup: false)
109
- #
110
- # @example Assert that a +cookbook_file+ was deleted using a regex
111
- # expect(chef_run).to delete_cookbook_file('/tmp/config').with(user: /apa(.+)/)
112
- #
113
- # @example Assert that a +cookbook_file+ was _not_ deleted
114
- # expect(chef_run).to_not delete_cookbook_file('/tmp/config')
115
- #
116
- #
117
- # @param [String, Regex] resource_name
118
- # the name of the resource to match
119
- #
120
- # @return [ChefSpec::Matchers::ResourceMatcher]
121
- #
122
- def delete_cookbook_file(resource_name)
123
- ChefSpec::Matchers::ResourceMatcher.new(:cookbook_file, :delete, resource_name)
124
- end
125
-
126
- #
127
- # Assert that a +cookbook_file+ resource exists in the Chef run with the
128
- # action +:touch+. Given a Chef Recipe that touches "/tmp/config" as a
129
- # +cookbook_file+:
130
- #
131
- # cookbook_file '/tmp/config' do
132
- # action :touch
133
- # end
134
- #
135
- # To test the content rendered by a +cookbook_file+, see
136
- # {ChefSpec::API::RenderFileMatchers}.
137
- #
138
- # The Examples section demonstrates the different ways to test a
139
- # +cookbook_file+ resource with ChefSpec.
140
- #
141
- # @example Assert that a +cookbook_file+ was touched
142
- # expect(chef_run).to touch_cookbook_file('/tmp/config')
143
- #
144
- # @example Assert that a +cookbook_file+ was touched with predicate matchers
145
- # expect(chef_run).to touch_cookbook_file('/tmp/config').with_backup(false)
146
- #
147
- # @example Assert that a +cookbook_file+ was touched with attributes
148
- # expect(chef_run).to touch_cookbook_file('/tmp/config').with(backup: false)
149
- #
150
- # @example Assert that a +cookbook_file+ was touched using a regex
151
- # expect(chef_run).to touch_cookbook_file('/tmp/config').with(user: /apa(.+)/)
152
- #
153
- # @example Assert that a +cookbook_file+ was _not_ touched
154
- # expect(chef_run).to_not touch_cookbook_file('/tmp/config')
155
- #
156
- #
157
- # @param [String, Regex] resource_name
158
- # the name of the resource to match
159
- #
160
- # @return [ChefSpec::Matchers::ResourceMatcher]
161
- #
162
- def touch_cookbook_file(resource_name)
163
- ChefSpec::Matchers::ResourceMatcher.new(:cookbook_file, :touch, resource_name)
164
- end
165
- end
166
- end