chefspec 7.0.0 → 7.1.0

Sign up to get free protection for your applications and to get access to all the features.
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,22 +1,24 @@
1
1
  require 'chefspec'
2
2
 
3
- describe 'dnf_package::upgrade' do
4
- let(:chef_run) do
5
- ChefSpec::ServerRunner.new(platform: 'fedora', version: '25')
6
- .converge(described_recipe)
7
- end
3
+ if defined?(Chef::Resource::DnfPackage)
4
+ describe 'dnf_package::upgrade' do
5
+ let(:chef_run) do
6
+ ChefSpec::ServerRunner.new(platform: 'fedora', version: '25')
7
+ .converge(described_recipe)
8
+ end
8
9
 
9
- it 'upgrades a dnf_package with an explicit action' do
10
- expect(chef_run).to upgrade_dnf_package('explicit_action')
11
- expect(chef_run).to_not upgrade_dnf_package('not_explicit_action')
12
- end
10
+ it 'upgrades a dnf_package with an explicit action' do
11
+ expect(chef_run).to upgrade_dnf_package('explicit_action')
12
+ expect(chef_run).to_not upgrade_dnf_package('not_explicit_action')
13
+ end
13
14
 
14
- it 'upgrades a dnf_package with attributes' do
15
- expect(chef_run).to upgrade_dnf_package('with_attributes').with(version: '1.0.0')
16
- expect(chef_run).to_not upgrade_dnf_package('with_attributes').with(version: '1.2.3')
17
- end
15
+ it 'upgrades a dnf_package with attributes' do
16
+ expect(chef_run).to upgrade_dnf_package('with_attributes').with(version: '1.0.0')
17
+ expect(chef_run).to_not upgrade_dnf_package('with_attributes').with(version: '1.2.3')
18
+ end
18
19
 
19
- it 'upgrades a dnf_package when specifying the identity attribute' do
20
- expect(chef_run).to upgrade_dnf_package('identity_attribute')
20
+ it 'upgrades a dnf_package when specifying the identity attribute' do
21
+ expect(chef_run).to upgrade_dnf_package('identity_attribute')
22
+ end
21
23
  end
22
24
  end
@@ -1,3 +1,4 @@
1
+ require 'chefspec'
1
2
  require_relative '../libraries/resource_service'
2
3
 
3
4
  describe 'heavy_provider_light_resource::default' do
@@ -1,26 +1,28 @@
1
1
  require 'chefspec'
2
2
 
3
- describe 'msu_package::install' do
4
- let(:chef_run) do
5
- ChefSpec::ServerRunner.new(platform: 'windows', version: '2012R2')
6
- .converge(described_recipe)
7
- end
3
+ if defined?(Chef::Resource::MsuPackage)
4
+ describe 'msu_package::install' do
5
+ let(:chef_run) do
6
+ ChefSpec::ServerRunner.new(platform: 'windows', version: '2012R2')
7
+ .converge(described_recipe)
8
+ end
8
9
 
9
- it 'installs a msu_package with the default action' do
10
- expect(chef_run).to install_msu_package('default_action')
11
- expect(chef_run).to_not install_msu_package('not_default_action')
12
- end
10
+ it 'installs a msu_package with the default action' do
11
+ expect(chef_run).to install_msu_package('default_action')
12
+ expect(chef_run).to_not install_msu_package('not_default_action')
13
+ end
13
14
 
14
- it 'installs a msu_package with an explicit action' do
15
- expect(chef_run).to install_msu_package('explicit_action')
16
- end
15
+ it 'installs a msu_package with an explicit action' do
16
+ expect(chef_run).to install_msu_package('explicit_action')
17
+ end
17
18
 
18
- it 'installs a msu_package with attributes' do
19
- expect(chef_run).to install_msu_package('with_attributes').with(version: '1.0.0')
20
- expect(chef_run).to_not install_msu_package('with_attributes').with(version: '1.2.3')
21
- end
19
+ it 'installs a msu_package with attributes' do
20
+ expect(chef_run).to install_msu_package('with_attributes').with(version: '1.0.0')
21
+ expect(chef_run).to_not install_msu_package('with_attributes').with(version: '1.2.3')
22
+ end
22
23
 
23
- it 'installs a msu_package when specifying the identity attribute' do
24
- expect(chef_run).to install_msu_package('identity_attribute')
24
+ it 'installs a msu_package when specifying the identity attribute' do
25
+ expect(chef_run).to install_msu_package('identity_attribute')
26
+ end
25
27
  end
26
28
  end
@@ -1,22 +1,24 @@
1
1
  require 'chefspec'
2
2
 
3
- describe 'msu_package::remove' do
4
- let(:chef_run) do
5
- ChefSpec::ServerRunner.new(platform: 'windows', version: '2012R2')
6
- .converge(described_recipe)
7
- end
3
+ if defined?(Chef::Resource::MsuPackage)
4
+ describe 'msu_package::remove' do
5
+ let(:chef_run) do
6
+ ChefSpec::ServerRunner.new(platform: 'windows', version: '2012R2')
7
+ .converge(described_recipe)
8
+ end
8
9
 
9
- it 'removes a msu_package with an explicit action' do
10
- expect(chef_run).to remove_msu_package('explicit_action')
11
- expect(chef_run).to_not remove_msu_package('not_explicit_action')
12
- end
10
+ it 'removes a msu_package with an explicit action' do
11
+ expect(chef_run).to remove_msu_package('explicit_action')
12
+ expect(chef_run).to_not remove_msu_package('not_explicit_action')
13
+ end
13
14
 
14
- it 'removes a msu_package with attributes' do
15
- expect(chef_run).to remove_msu_package('with_attributes').with(version: '1.0.0')
16
- expect(chef_run).to_not remove_msu_package('with_attributes').with(version: '1.2.3')
17
- end
15
+ it 'removes a msu_package with attributes' do
16
+ expect(chef_run).to remove_msu_package('with_attributes').with(version: '1.0.0')
17
+ expect(chef_run).to_not remove_msu_package('with_attributes').with(version: '1.2.3')
18
+ end
18
19
 
19
- it 'removes a msu_package when specifying the identity attribute' do
20
- expect(chef_run).to remove_msu_package('identity_attribute')
20
+ it 'removes a msu_package when specifying the identity attribute' do
21
+ expect(chef_run).to remove_msu_package('identity_attribute')
22
+ end
21
23
  end
22
24
  end
@@ -1,6 +1,19 @@
1
1
  require 'chefspec'
2
2
 
3
3
  describe 'server::port' do
4
+ before(:all) do
5
+ @oldsetting = RSpec.configuration.server_runner_port
6
+ RSpec.configuration.server_runner_port = (8900..8910)
7
+ ChefSpec::ZeroServer.nuke!
8
+ ChefSpec::ZeroServer.setup!
9
+ end
10
+
11
+ after(:all) do
12
+ RSpec.configuration.server_runner_port = @oldsetting
13
+ ChefSpec::ZeroServer.nuke!
14
+ ChefSpec::ZeroServer.setup!
15
+ end
16
+
4
17
  let(:chef_run) do
5
18
  ChefSpec::ServerRunner.new(platform: 'ubuntu', version: '16.04')
6
19
  end
@@ -10,8 +23,8 @@ describe 'server::port' do
10
23
  end
11
24
 
12
25
  it 'creates a chef-zero listening on the right port' do
13
- expect(ChefSpec::ZeroServer.server).to be_running?
26
+ expect(ChefSpec::ZeroServer.server).to be_running
14
27
  expect(ChefSpec::ZeroServer.server.port).to be_a(Integer)
15
- expect(8900..9010).to include(ChefSpec::ZeroServer.server.port)
28
+ expect(8890..9010).to include(ChefSpec::ZeroServer.server.port)
16
29
  end
17
30
  end
@@ -42,14 +42,7 @@ module ChefSpec
42
42
  module_function :matchers
43
43
  end
44
44
 
45
- require_relative 'chefspec/extensions/chef/securable'
46
- require_relative 'chefspec/extensions/chef/client'
47
- require_relative 'chefspec/extensions/chef/conditional'
48
- require_relative 'chefspec/extensions/chef/cookbook_uploader'
49
- require_relative 'chefspec/extensions/chef/data_query'
50
- require_relative 'chefspec/extensions/chef/lwrp_base'
51
- require_relative 'chefspec/extensions/chef/resource'
52
- require_relative 'chefspec/extensions/chef/resource/freebsd_package'
45
+ require_relative 'chefspec/extensions'
53
46
 
54
47
  require_relative 'chefspec/mixins/normalize'
55
48
 
@@ -1,96 +1,18 @@
1
1
  module ChefSpec
2
2
  module API
3
- extend self
4
-
5
- def self.included(base)
6
- submodules.each do |child|
7
- base.send(:include, child)
8
- end
9
- end
10
-
11
- private
12
-
13
- #
14
- # WARNING: This is metaprogramming madness. Find all modules who are
15
- # nested beneath this module.
16
- #
17
- # @return [Array<Module>]
18
- #
19
- def submodules
20
- self.constants
21
- .map { |name| const_get(name) }
22
- .select { |const| const.class == Module }
23
- end
3
+ # empty container
24
4
  end
25
5
  end
26
6
 
27
- require_relative 'api/apt_package'
28
- require_relative 'api/apt_update'
29
- require_relative 'api/apt_repository'
30
- require_relative 'api/bff_package'
31
- require_relative 'api/batch'
32
- require_relative 'api/cab_package'
33
- require_relative 'api/chef_gem'
34
- require_relative 'api/chocolatey_package'
35
- require_relative 'api/cookbook_file'
36
- require_relative 'api/cron'
37
- require_relative 'api/deploy'
38
- require_relative 'api/directory'
39
- require_relative 'api/dnf_package'
40
- require_relative 'api/dpkg_package'
7
+ # non-resources
41
8
  require_relative 'api/do_nothing'
42
- require_relative 'api/dsc_resource'
43
- require_relative 'api/dsc_script'
44
- require_relative 'api/easy_install_package'
45
- require_relative 'api/env'
46
- require_relative 'api/erl_call'
47
- require_relative 'api/execute'
48
- require_relative 'api/file'
49
- require_relative 'api/freebsd_package'
50
- require_relative 'api/gem_package'
51
- require_relative 'api/git'
52
- require_relative 'api/group'
53
- require_relative 'api/homebrew_package'
54
- require_relative 'api/http_request'
55
- require_relative 'api/ifconfig'
56
9
  require_relative 'api/include_recipe'
57
- require_relative 'api/ips_package'
58
- require_relative 'api/launchd'
59
- require_relative 'api/link'
60
- require_relative 'api/log'
61
- require_relative 'api/macports_package'
62
- require_relative 'api/mdadm'
63
- require_relative 'api/mount'
64
- require_relative 'api/msu_package'
65
10
  require_relative 'api/notifications'
66
- require_relative 'api/ohai'
67
- require_relative 'api/openbsd_package'
68
- require_relative 'api/osx_profile'
69
- require_relative 'api/package'
70
- require_relative 'api/pacman_package'
71
- require_relative 'api/paludis_package'
72
- require_relative 'api/portage_package'
73
- require_relative 'api/powershell_script'
74
- require_relative 'api/reboot'
75
- require_relative 'api/registry_key'
76
- require_relative 'api/remote_directory'
77
- require_relative 'api/remote_file'
78
11
  require_relative 'api/render_file'
79
- require_relative 'api/route'
80
- require_relative 'api/rpm_package'
81
- require_relative 'api/ruby_block'
82
- require_relative 'api/script'
83
- require_relative 'api/service'
84
- require_relative 'api/smartos_package'
85
- require_relative 'api/solaris_package'
86
12
  require_relative 'api/state_attrs'
87
13
  require_relative 'api/subscriptions'
88
- require_relative 'api/subversion'
89
- require_relative 'api/systemd_unit'
90
- require_relative 'api/template'
14
+
15
+ # hacks and sugar for resources that don't follow the normal pattern
91
16
  require_relative 'api/user'
92
- require_relative 'api/windows_package'
93
- require_relative 'api/windows_service'
94
- require_relative 'api/yum_package'
95
- require_relative 'api/yum_repository'
96
- require_relative 'api/zypper_package'
17
+ require_relative 'api/link'
18
+ require_relative 'api/reboot'
@@ -1,24 +1,21 @@
1
1
  module ChefSpec::API
2
- # @since 3.4.0
3
- module DoNothingMatchers
4
- #
5
- # Assert that a resource in the Chef run does not perform any actions. Given
6
- # a resource with +action :nothing+:
7
- #
8
- # package 'apache2' do
9
- # action :nothing
10
- # end
11
- #
12
- # The Examples section demonstrates the different ways to test that no
13
- # actions were performed on a resource in a Chef run.
14
- #
15
- # @example Assert the +package+ does not perform any actions
16
- #
17
- #
18
- # @return [ChefSpec::Matchers::DoNothingMatcher]
19
- #
20
- def do_nothing
21
- ChefSpec::Matchers::DoNothingMatcher.new
22
- end
2
+ #
3
+ # Assert that a resource in the Chef run does not perform any actions. Given
4
+ # a resource with +action :nothing+:
5
+ #
6
+ # package 'apache2' do
7
+ # action :nothing
8
+ # end
9
+ #
10
+ # The Examples section demonstrates the different ways to test that no
11
+ # actions were performed on a resource in a Chef run.
12
+ #
13
+ # @example Assert the +package+ does not perform any actions
14
+ #
15
+ #
16
+ # @return [ChefSpec::Matchers::DoNothingMatcher]
17
+ #
18
+ def do_nothing
19
+ ChefSpec::Matchers::DoNothingMatcher.new
23
20
  end
24
21
  end
@@ -1,26 +1,23 @@
1
1
  module ChefSpec::API
2
- # @since 0.2.1
3
- module IncludeRecipeMatchers
4
- #
5
- # Assert that a Chef run includes a certain recipe. Given a Chef Recipe
6
- # that calls +include_recipe+:
7
- #
8
- # include_recipe 'apache2::default'
9
- #
10
- # The Examples section demonstrates the different ways to test an
11
- # +include_recipe+ directive with ChefSpec.
12
- #
13
- # @example Assert the +apache2::default+ recipe is included in the Chef run
14
- # expect(chef_run).to include_recipe('apache2::default')
15
- #
16
- #
17
- # @param [String] recipe_name
18
- # the name of the recipe to be included
19
- #
20
- # @return [ChefSpec::Matchers::IncludeRecipeMatcher]
21
- #
22
- def include_recipe(recipe_name)
23
- ChefSpec::Matchers::IncludeRecipeMatcher.new(recipe_name)
24
- end
2
+ #
3
+ # Assert that a Chef run includes a certain recipe. Given a Chef Recipe
4
+ # that calls +include_recipe+:
5
+ #
6
+ # include_recipe 'apache2::default'
7
+ #
8
+ # The Examples section demonstrates the different ways to test an
9
+ # +include_recipe+ directive with ChefSpec.
10
+ #
11
+ # @example Assert the +apache2::default+ recipe is included in the Chef run
12
+ # expect(chef_run).to include_recipe('apache2::default')
13
+ #
14
+ #
15
+ # @param [String] recipe_name
16
+ # the name of the recipe to be included
17
+ #
18
+ # @return [ChefSpec::Matchers::IncludeRecipeMatcher]
19
+ #
20
+ def include_recipe(recipe_name)
21
+ ChefSpec::Matchers::IncludeRecipeMatcher.new(recipe_name)
25
22
  end
26
23
  end
@@ -1,102 +1,23 @@
1
1
  module ChefSpec::API
2
- # @since 1.1.0
3
- module LinkMatchers
4
- ChefSpec.define_matcher :link
5
-
6
- #
7
- # Assert that a +link+ resource exists in the Chef run with the
8
- # action +:create+. Given a Chef Recipe that creates "/tmp" as a
9
- # +link+:
10
- #
11
- # link '/tmp' do
12
- # action :create
13
- # end
14
- #
15
- # The Examples section demonstrates the different ways to test a
16
- # +link+ resource with ChefSpec.
17
- #
18
- # @example Assert that a +link+ was created
19
- # expect(chef_run).to create_link('/tmp')
20
- #
21
- # @example Assert that a +link+ was created with predicate matchers
22
- # expect(chef_run).to create_link('/tmp').with_link_type(:hard)
23
- #
24
- # @example Assert that a +link+ was created with attributes
25
- # expect(chef_run).to create_link('/tmp').with(link_type: :hard)
26
- #
27
- # @example Assert that a +link+ was created using a regex
28
- # expect(chef_run).to create_link('/tmp').with(link_type: Symbol)
29
- #
30
- # @example Assert that a +link+ was _not_ created
31
- # expect(chef_run).to_not create_link('/tmp')
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 create_link(resource_name)
40
- ChefSpec::Matchers::ResourceMatcher.new(:link, :create, resource_name)
41
- end
42
-
43
- #
44
- # Assert that a +link+ resource exists in the Chef run with the
45
- # action +:delete+. Given a Chef Recipe that deletes "/tmp" as a
46
- # +link+:
47
- #
48
- # link '/tmp' do
49
- # action :delete
50
- # end
51
- #
52
- # The Examples section demonstrates the different ways to test a
53
- # +link+ resource with ChefSpec.
54
- #
55
- # @example Assert that a +link+ was deleted
56
- # expect(chef_run).to delete_link('/tmp')
57
- #
58
- # @example Assert that a +link+ was deleted with predicate matchers
59
- # expect(chef_run).to delete_link('/tmp').with_link_type(:hard)
60
- #
61
- # @example Assert that a +link+ was deleted with attributes
62
- # expect(chef_run).to delete_link('/tmp').with(link_type: :hard)
63
- #
64
- # @example Assert that a +link+ was deleted using a regex
65
- # expect(chef_run).to delete_link('/tmp').with(link_type: Symbol)
66
- #
67
- # @example Assert that a +link+ was _not_ deleted
68
- # expect(chef_run).to_not delete_link('/tmp')
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 delete_link(resource_name)
77
- ChefSpec::Matchers::ResourceMatcher.new(:link, :delete, resource_name)
78
- end
79
-
80
- #
81
- # Assert that a symlink links to a specific path. This is really
82
- # syntactic sugar for the following:
83
- #
84
- # expect(chef_run).to create_link('/tmp/thing').with(to: '/tmp/other_thing')
85
- #
86
- # @example Using +link_to+ with a String path
87
- # link = chef_run.link('/tmp/thing')
88
- # expect(link).to link_to('/tmp/other_thing')
89
- #
90
- # @example Using +link_to+ with a regular expression
91
- # expect(link).to link_to(/\/tmp/(.+)/)
92
- #
93
- # @param [String, Regex] path
94
- # the path to link to
95
- #
96
- # @return [ChefSpec::Matchers::LinkToMatcher]
97
- #
98
- def link_to(path)
99
- ChefSpec::Matchers::LinkToMatcher.new(path)
100
- end
2
+ #
3
+ # Assert that a symlink links to a specific path. This is really
4
+ # syntactic sugar for the following:
5
+ #
6
+ # expect(chef_run).to create_link('/tmp/thing').with(to: '/tmp/other_thing')
7
+ #
8
+ # @example Using +link_to+ with a String path
9
+ # link = chef_run.link('/tmp/thing')
10
+ # expect(link).to link_to('/tmp/other_thing')
11
+ #
12
+ # @example Using +link_to+ with a regular expression
13
+ # expect(link).to link_to(/\/tmp/(.+)/)
14
+ #
15
+ # @param [String, Regex] path
16
+ # the path to link to
17
+ #
18
+ # @return [ChefSpec::Matchers::LinkToMatcher]
19
+ #
20
+ def link_to(path)
21
+ ChefSpec::Matchers::LinkToMatcher.new(path)
101
22
  end
102
23
  end