chefspec 2.0.1 → 3.0.0.beta.1

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 (110) hide show
  1. checksums.yaml +4 -4
  2. data/lib/chefspec.rb +30 -44
  3. data/lib/chefspec/api.rb +74 -0
  4. data/lib/chefspec/api/apt_package.rb +192 -0
  5. data/lib/chefspec/api/batch.rb +43 -0
  6. data/lib/chefspec/api/chef_gem.rb +191 -0
  7. data/lib/chefspec/api/cookbook_file.rb +166 -0
  8. data/lib/chefspec/api/cron.rb +80 -0
  9. data/lib/chefspec/api/deploy.rb +117 -0
  10. data/lib/chefspec/api/directory.rb +80 -0
  11. data/lib/chefspec/api/dpkg_package.rb +117 -0
  12. data/lib/chefspec/api/easy_install_package.rb +154 -0
  13. data/lib/chefspec/api/env.rb +117 -0
  14. data/lib/chefspec/api/erl_call.rb +43 -0
  15. data/lib/chefspec/api/execute.rb +43 -0
  16. data/lib/chefspec/api/file.rb +166 -0
  17. data/lib/chefspec/api/freebsd_package.rb +80 -0
  18. data/lib/chefspec/api/gem_package.rb +191 -0
  19. data/lib/chefspec/api/git.rb +117 -0
  20. data/lib/chefspec/api/group.rb +154 -0
  21. data/lib/chefspec/api/http_request.rb +228 -0
  22. data/lib/chefspec/api/ifconfig.rb +154 -0
  23. data/lib/chefspec/api/include_recipe.rb +26 -0
  24. data/lib/chefspec/api/ips_package.rb +117 -0
  25. data/lib/chefspec/api/link.rb +102 -0
  26. data/lib/chefspec/api/log.rb +43 -0
  27. data/lib/chefspec/api/macports_package.rb +154 -0
  28. data/lib/chefspec/api/mdadm.rb +117 -0
  29. data/lib/chefspec/api/mount.rb +192 -0
  30. data/lib/chefspec/api/notifications.rb +38 -0
  31. data/lib/chefspec/api/ohai.rb +43 -0
  32. data/lib/chefspec/api/package.rb +192 -0
  33. data/lib/chefspec/api/pacman_package.rb +155 -0
  34. data/lib/chefspec/api/portage_package.rb +155 -0
  35. data/lib/chefspec/api/powershell_script.rb +43 -0
  36. data/lib/chefspec/api/registry_key.rb +166 -0
  37. data/lib/chefspec/api/remote_directory.rb +120 -0
  38. data/lib/chefspec/api/remote_file.rb +166 -0
  39. data/lib/chefspec/api/render_file.rb +32 -0
  40. data/lib/chefspec/api/route.rb +80 -0
  41. data/lib/chefspec/api/rpm_package.rb +117 -0
  42. data/lib/chefspec/api/ruby_block.rb +37 -0
  43. data/lib/chefspec/api/script.rb +228 -0
  44. data/lib/chefspec/api/service.rb +246 -0
  45. data/lib/chefspec/api/smartos_package.rb +117 -0
  46. data/lib/chefspec/api/solaris_package.rb +80 -0
  47. data/lib/chefspec/api/subversion.rb +154 -0
  48. data/lib/chefspec/api/template.rb +166 -0
  49. data/lib/chefspec/api/user.rb +228 -0
  50. data/lib/chefspec/api/yum_package.rb +154 -0
  51. data/lib/chefspec/berkshelf.rb +37 -0
  52. data/lib/chefspec/deprecations.rb +151 -0
  53. data/lib/chefspec/errors.rb +99 -0
  54. data/lib/chefspec/expect_exception.rb +45 -0
  55. data/lib/chefspec/extensions/chef/client.rb +15 -0
  56. data/lib/chefspec/extensions/chef/conditional.rb +11 -0
  57. data/lib/chefspec/extensions/chef/data_query.rb +29 -0
  58. data/lib/chefspec/extensions/chef/lwrp_base.rb +44 -0
  59. data/lib/chefspec/extensions/chef/resource.rb +27 -0
  60. data/lib/chefspec/extensions/chef/securable.rb +19 -0
  61. data/lib/chefspec/formatter.rb +270 -0
  62. data/lib/chefspec/macros.rb +217 -0
  63. data/lib/chefspec/matchers.rb +9 -0
  64. data/lib/chefspec/matchers/include_recipe_matcher.rb +45 -0
  65. data/lib/chefspec/matchers/link_to_matcher.rb +28 -0
  66. data/lib/chefspec/matchers/notifications_matcher.rb +92 -0
  67. data/lib/chefspec/matchers/render_file_matcher.rb +72 -0
  68. data/lib/chefspec/matchers/resource_matcher.rb +143 -0
  69. data/lib/chefspec/renderer.rb +137 -0
  70. data/lib/chefspec/rspec.rb +17 -0
  71. data/lib/chefspec/runner.rb +274 -0
  72. data/lib/chefspec/stubs/command_registry.rb +11 -0
  73. data/lib/chefspec/stubs/command_stub.rb +37 -0
  74. data/lib/chefspec/stubs/data_bag_item_registry.rb +13 -0
  75. data/lib/chefspec/stubs/data_bag_item_stub.rb +25 -0
  76. data/lib/chefspec/stubs/data_bag_registry.rb +13 -0
  77. data/lib/chefspec/stubs/data_bag_stub.rb +23 -0
  78. data/lib/chefspec/stubs/registry.rb +32 -0
  79. data/lib/chefspec/stubs/search_registry.rb +13 -0
  80. data/lib/chefspec/stubs/search_stub.rb +25 -0
  81. data/lib/chefspec/stubs/stub.rb +37 -0
  82. data/lib/chefspec/version.rb +1 -2
  83. metadata +100 -103
  84. data/lib/chef/expect_exception.rb +0 -34
  85. data/lib/chef/formatters/chefspec.rb +0 -233
  86. data/lib/chef/knife/cookbook_create_specs.rb +0 -107
  87. data/lib/chefspec/chef_runner.rb +0 -275
  88. data/lib/chefspec/helpers/describe.rb +0 -17
  89. data/lib/chefspec/matchers/cron.rb +0 -7
  90. data/lib/chefspec/matchers/env.rb +0 -8
  91. data/lib/chefspec/matchers/execute.rb +0 -33
  92. data/lib/chefspec/matchers/file.rb +0 -83
  93. data/lib/chefspec/matchers/file_content.rb +0 -32
  94. data/lib/chefspec/matchers/group.rb +0 -8
  95. data/lib/chefspec/matchers/include_recipe.rb +0 -20
  96. data/lib/chefspec/matchers/link.rb +0 -14
  97. data/lib/chefspec/matchers/log.rb +0 -21
  98. data/lib/chefspec/matchers/notifications.rb +0 -43
  99. data/lib/chefspec/matchers/package.rb +0 -39
  100. data/lib/chefspec/matchers/python.rb +0 -7
  101. data/lib/chefspec/matchers/ruby_block.rb +0 -13
  102. data/lib/chefspec/matchers/script.rb +0 -34
  103. data/lib/chefspec/matchers/service.rb +0 -25
  104. data/lib/chefspec/matchers/shared.rb +0 -132
  105. data/lib/chefspec/matchers/user.rb +0 -8
  106. data/lib/chefspec/minitest.rb +0 -195
  107. data/lib/chefspec/monkey_patches/conditional.rb +0 -19
  108. data/lib/chefspec/monkey_patches/hash.rb +0 -23
  109. data/lib/chefspec/monkey_patches/lwrp_base.rb +0 -45
  110. data/lib/chefspec/monkey_patches/provider.rb +0 -43
@@ -0,0 +1,43 @@
1
+ module ChefSpec::API
2
+ # @since 3.0.0
3
+ module PowershellScriptMatchers
4
+ ChefSpec::Runner.define_runner_method :powershell_script
5
+
6
+ #
7
+ # Assert that a +powershell_script+ resource exists in the Chef run with the
8
+ # action +:run+. Given a Chef Recipe that runs "/tmp" as a
9
+ # +powershell_script+:
10
+ #
11
+ # powershell_script '/tmp' do
12
+ # action :run
13
+ # end
14
+ #
15
+ # The Examples section demonstrates the different ways to test a
16
+ # +powershell_script+ resource with ChefSpec.
17
+ #
18
+ # @example Assert that a +powershell_script+ was runed
19
+ # expect(chef_run).to run_powershell_script('/tmp')
20
+ #
21
+ # @example Assert that a +powershell_script+ was runed with predicate matchers
22
+ # expect(chef_run).to run_powershell_script('/tmp').with_user('svargo')
23
+ #
24
+ # @example Assert that a +powershell_script+ was runed with attributes
25
+ # expect(chef_run).to run_powershell_script('/tmp').with(user: 'svargo')
26
+ #
27
+ # @example Assert that a +powershell_script+ was runed using a regex
28
+ # expect(chef_run).to run_powershell_script('/tmp').with(user: /sva(.+)/)
29
+ #
30
+ # @example Assert that a +powershell_script+ was _not_ runed
31
+ # expect(chef_run).to_not run_powershell_script('/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 run_powershell_script(resource_name)
40
+ ChefSpec::Matchers::ResourceMatcher.new(:powershell_script, :run, resource_name)
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,166 @@
1
+ module ChefSpec::API
2
+ # @since 3.0.0
3
+ module RegistryKeyMatchers
4
+ ChefSpec::Runner.define_runner_method :registry_key
5
+
6
+ #
7
+ # Assert that a +registry_key+ resource exists in the Chef run with the
8
+ # action +:create+. Given a Chef Recipe that creates "HKEY_LOCAL_MACHINE\\SOFTWARE" as a
9
+ # +registry_key+:
10
+ #
11
+ # registry_key 'HKEY_LOCAL_MACHINE\\SOFTWARE' do
12
+ # action :create
13
+ # end
14
+ #
15
+ # To test the content rendered by a +registry_key+, see
16
+ # {ChefSpec::API::RenderFileMatchers}.
17
+ #
18
+ # The Examples section demonstrates the different ways to test a
19
+ # +registry_key+ resource with ChefSpec.
20
+ #
21
+ # @example Assert that a +registry_key+ was created
22
+ # expect(chef_run).to create_registry_key('HKEY_LOCAL_MACHINE\\SOFTWARE')
23
+ #
24
+ # @example Assert that a +registry_key+ was created with predicate matchers
25
+ # expect(chef_run).to create_registry_key('HKEY_LOCAL_MACHINE\\SOFTWARE').with_recursive(false)
26
+ #
27
+ # @example Assert that a +registry_key+ was created with attributes
28
+ # expect(chef_run).to create_registry_key('HKEY_LOCAL_MACHINE\\SOFTWARE').with(recursive: false)
29
+ #
30
+ # @example Assert that a +registry_key+ was created using a regex
31
+ # expect(chef_run).to create_registry_key('HKEY_LOCAL_MACHINE\\SOFTWARE').with(values: Array)
32
+ #
33
+ # @example Assert that a +registry_key+ was _not_ created
34
+ # expect(chef_run).to_not create_registry_key('HKEY_LOCAL_MACHINE\\SOFTWARE')
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_registry_key(resource_name)
43
+ ChefSpec::Matchers::ResourceMatcher.new(:registry_key, :create, resource_name)
44
+ end
45
+
46
+ #
47
+ # Assert that a +registry_key+ resource exists in the Chef run with the
48
+ # action +:create_if_missing+. Given a Chef Recipe that creates "HKEY_LOCAL_MACHINE\\SOFTWARE"
49
+ # if missing as a +registry_key+:
50
+ #
51
+ # registry_key 'HKEY_LOCAL_MACHINE\\SOFTWARE' do
52
+ # action :create_if_missing
53
+ # end
54
+ #
55
+ # To test the content rendered by a +registry_key+, see
56
+ # {ChefSpec::API::RenderFileMatchers}.
57
+ #
58
+ # The Examples section demonstrates the different ways to test a
59
+ # +registry_key+ resource with ChefSpec.
60
+ #
61
+ # @example Assert that a +registry_key+ was created if missing
62
+ # expect(chef_run).to create_registry_key_if_missing('HKEY_LOCAL_MACHINE\\SOFTWARE')
63
+ #
64
+ # @example Assert that a +registry_key+ was created if missing with predicate matchers
65
+ # expect(chef_run).to create_registry_key_if_missing('HKEY_LOCAL_MACHINE\\SOFTWARE').with_recursive(false)
66
+ #
67
+ # @example Assert that a +registry_key+ was created if missing with attributes
68
+ # expect(chef_run).to create_registry_key_if_missing('HKEY_LOCAL_MACHINE\\SOFTWARE').with(recursive: false)
69
+ #
70
+ # @example Assert that a +registry_key+ was created if missing using a regex
71
+ # expect(chef_run).to create_registry_key_if_missing('HKEY_LOCAL_MACHINE\\SOFTWARE').with(values: Array)
72
+ #
73
+ # @example Assert that a +registry_key+ was _not_ created if missing
74
+ # expect(chef_run).to_not create_registry_key('HKEY_LOCAL_MACHINE\\SOFTWARE')
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_registry_key_if_missing(resource_name)
83
+ ChefSpec::Matchers::ResourceMatcher.new(:registry_key, :create_if_missing, resource_name)
84
+ end
85
+
86
+ #
87
+ # Assert that a +registry_key+ resource exists in the Chef run with the
88
+ # action +:delete+. Given a Chef Recipe that deletes "HKEY_LOCAL_MACHINE\\SOFTWARE" as a
89
+ # +registry_key+:
90
+ #
91
+ # registry_key 'HKEY_LOCAL_MACHINE\\SOFTWARE' do
92
+ # action :delete
93
+ # end
94
+ #
95
+ # To test the content rendered by a +registry_key+, see
96
+ # {ChefSpec::API::RenderFileMatchers}.
97
+ #
98
+ # The Examples section demonstrates the different ways to test a
99
+ # +registry_key+ resource with ChefSpec.
100
+ #
101
+ # @example Assert that a +registry_key+ was deleted
102
+ # expect(chef_run).to delete_registry_key('HKEY_LOCAL_MACHINE\\SOFTWARE')
103
+ #
104
+ # @example Assert that a +registry_key+ was deleted with predicate matchers
105
+ # expect(chef_run).to delete_registry_key('HKEY_LOCAL_MACHINE\\SOFTWARE').with_recursive(false)
106
+ #
107
+ # @example Assert that a +registry_key+ was deleted with attributes
108
+ # expect(chef_run).to delete_registry_key('HKEY_LOCAL_MACHINE\\SOFTWARE').with(recursive: false)
109
+ #
110
+ # @example Assert that a +registry_key+ was deleted using a regex
111
+ # expect(chef_run).to delete_registry_key('HKEY_LOCAL_MACHINE\\SOFTWARE').with(values: Array)
112
+ #
113
+ # @example Assert that a +registry_key+ was _not_ deleted
114
+ # expect(chef_run).to_not delete_registry_key('HKEY_LOCAL_MACHINE\\SOFTWARE')
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_registry_key(resource_name)
123
+ ChefSpec::Matchers::ResourceMatcher.new(:registry_key, :delete, resource_name)
124
+ end
125
+
126
+ #
127
+ # Assert that a +registry_key+ resource exists in the Chef run with the
128
+ # action +:delete_key+. Given a Chef Recipe that delete_keys "HKEY_LOCAL_MACHINE\\SOFTWARE" as a
129
+ # +registry_key+:
130
+ #
131
+ # registry_key 'HKEY_LOCAL_MACHINE\\SOFTWARE' do
132
+ # action :delete_key
133
+ # end
134
+ #
135
+ # To test the content rendered by a +registry_key+, see
136
+ # {ChefSpec::API::RenderFileMatchers}.
137
+ #
138
+ # The Examples section demonstrates the different ways to test a
139
+ # +registry_key+ resource with ChefSpec.
140
+ #
141
+ # @example Assert that a +registry_key+ was delete_keyd
142
+ # expect(chef_run).to delete_key_registry_key('HKEY_LOCAL_MACHINE\\SOFTWARE')
143
+ #
144
+ # @example Assert that a +registry_key+ was delete_keyd with predicate matchers
145
+ # expect(chef_run).to delete_key_registry_key('HKEY_LOCAL_MACHINE\\SOFTWARE').with_recursive(false)
146
+ #
147
+ # @example Assert that a +registry_key+ was delete_keyd with attributes
148
+ # expect(chef_run).to delete_key_registry_key('HKEY_LOCAL_MACHINE\\SOFTWARE').with(recursive: false)
149
+ #
150
+ # @example Assert that a +registry_key+ was delete_keyd using a regex
151
+ # expect(chef_run).to delete_key_registry_key('HKEY_LOCAL_MACHINE\\SOFTWARE').with(values: Array)
152
+ #
153
+ # @example Assert that a +registry_key+ was _not_ delete_keyd
154
+ # expect(chef_run).to_not delete_key_registry_key('HKEY_LOCAL_MACHINE\\SOFTWARE')
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 delete_key_registry_key(resource_name)
163
+ ChefSpec::Matchers::ResourceMatcher.new(:registry_key, :delete_key, resource_name)
164
+ end
165
+ end
166
+ end
@@ -0,0 +1,120 @@
1
+ module ChefSpec::API
2
+ # @since 3.0.0
3
+ module RemoteDirectoryMatchers
4
+ ChefSpec::Runner.define_runner_method :remote_directory
5
+
6
+ #
7
+ # Assert that a +remote_directory+ resource exists in the Chef run with the
8
+ # action +:create+. Given a Chef Recipe that creates "/tmp" as a
9
+ # +remote_directory+:
10
+ #
11
+ # remote_directory '/tmp' do
12
+ # action :create
13
+ # end
14
+ #
15
+ # The Examples section demonstrates the different ways to test a
16
+ # +remote_directory+ resource with ChefSpec.
17
+ #
18
+ # @example Assert that a +remote_directory+ was createed
19
+ # expect(chef_run).to create_remote_directory('/tmp')
20
+ #
21
+ # @example Assert that a +remote_directory+ was createed with predicate matchers
22
+ # expect(chef_run).to create_remote_directory('/tmp').with_overwrite(true)
23
+ #
24
+ # @example Assert that a +remote_directory+ was createed with attributes
25
+ # expect(chef_run).to create_remote_directory('/tmp').with(overwrite: true)
26
+ #
27
+ # @example Assert that a +remote_directory+ was createed using a regex
28
+ # expect(chef_run).to create_remote_directory('/tmp').with(overwrite: Boolean)
29
+ #
30
+ # @example Assert that a +remote_directory+ was _not_ createed
31
+ # expect(chef_run).to_not create_remote_directory('/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_remote_directory(resource_name)
40
+ ChefSpec::Matchers::ResourceMatcher.new(:remote_directory, :create, resource_name)
41
+ end
42
+
43
+ #
44
+ # Assert that a +remote_directory+ resource exists in the Chef run with the
45
+ # action +:create_if_missing+. Given a Chef Recipe that creates "/tmp/config"
46
+ # if missing as a +remote_directory+:
47
+ #
48
+ # remote_directory '/tmp/config' do
49
+ # action :create_if_missing
50
+ # end
51
+ #
52
+ # To test the content rendered by a +remote_directory+, see
53
+ # {ChefSpec::API::RenderFileMatchers}.
54
+ #
55
+ # The Examples section demonstrates the different ways to test a
56
+ # +remote_directory+ resource with ChefSpec.
57
+ #
58
+ # @example Assert that a +remote_directory+ was created if missing
59
+ # expect(chef_run).to create_remote_directory_if_missing('/tmp/config')
60
+ #
61
+ # @example Assert that a +remote_directory+ was created if missing with predicate matchers
62
+ # expect(chef_run).to create_remote_directory_if_missing('/tmp/config').with_overwrite(true)
63
+ #
64
+ # @example Assert that a +remote_directory+ was created if missing with attributes
65
+ # expect(chef_run).to create_remote_directory_if_missing('/tmp/config').with(overwrite: true)
66
+ #
67
+ # @example Assert that a +remote_directory+ was created if missing using a regex
68
+ # expect(chef_run).to create_remote_directory_if_missing('/tmp/config').with(overwrite: Boolean)
69
+ #
70
+ # @example Assert that a +remote_directory+ was _not_ created if missing
71
+ # expect(chef_run).to_not create_remote_directory('/tmp/config')
72
+ #
73
+ #
74
+ # @param [String, Regex] resource_name
75
+ # the name of the resource to match
76
+ #
77
+ # @return [ChefSpec::Matchers::ResourceMatcher]
78
+ #
79
+ def create_remote_directory_if_missing(resource_name)
80
+ ChefSpec::Matchers::ResourceMatcher.new(:remote_directory, :create_if_missing, resource_name)
81
+ end
82
+
83
+ #
84
+ # Assert that a +remote_directory+ resource exists in the Chef run with the
85
+ # action +:delete+. Given a Chef Recipe that deletes "/tmp" as a
86
+ # +remote_directory+:
87
+ #
88
+ # remote_directory '/tmp' do
89
+ # action :delete
90
+ # end
91
+ #
92
+ # The Examples section demonstrates the different ways to test a
93
+ # +remote_directory+ resource with ChefSpec.
94
+ #
95
+ # @example Assert that a +remote_directory+ was deleteed
96
+ # expect(chef_run).to delete_remote_directory('/tmp')
97
+ #
98
+ # @example Assert that a +remote_directory+ was deleteed with predicate matchers
99
+ # expect(chef_run).to delete_remote_directory('/tmp').with_overwrite(true)
100
+ #
101
+ # @example Assert that a +remote_directory+ was deleteed with attributes
102
+ # expect(chef_run).to delete_remote_directory('/tmp').with(overwrite: true)
103
+ #
104
+ # @example Assert that a +remote_directory+ was deleteed using a regex
105
+ # expect(chef_run).to delete_remote_directory('/tmp').with(overwrite: Boolean)
106
+ #
107
+ # @example Assert that a +remote_directory+ was _not_ deleteed
108
+ # expect(chef_run).to_not delete_remote_directory('/tmp')
109
+ #
110
+ #
111
+ # @param [String, Regex] resource_name
112
+ # the name of the resource to match
113
+ #
114
+ # @return [ChefSpec::Matchers::ResourceMatcher]
115
+ #
116
+ def delete_remote_directory(resource_name)
117
+ ChefSpec::Matchers::ResourceMatcher.new(:remote_directory, :delete, resource_name)
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,166 @@
1
+ module ChefSpec::API
2
+ # @since 1.0.0
3
+ module RemoteFileMatchers
4
+ ChefSpec::Runner.define_runner_method :remote_file
5
+
6
+ #
7
+ # Assert that a +remote_file+ resource exists in the Chef run with the
8
+ # action +:create+. Given a Chef Recipe that creates "/tmp/config" as a
9
+ # +remote_file+:
10
+ #
11
+ # remote_file '/tmp/config' do
12
+ # action :create
13
+ # end
14
+ #
15
+ # To test the content rendered by a +remote_file+, see
16
+ # {ChefSpec::API::RenderFileMatchers}.
17
+ #
18
+ # The Examples section demonstrates the different ways to test a
19
+ # +remote_file+ resource with ChefSpec.
20
+ #
21
+ # @example Assert that a +remote_file+ was created
22
+ # expect(chef_run).to create_remote_file('/tmp/config')
23
+ #
24
+ # @example Assert that a +remote_file+ was created with predicate matchers
25
+ # expect(chef_run).to create_remote_file('/tmp/config').with_backup(false)
26
+ #
27
+ # @example Assert that a +remote_file+ was created with attributes
28
+ # expect(chef_run).to create_remote_file('/tmp/config').with(backup: false)
29
+ #
30
+ # @example Assert that a +remote_file+ was created using a regex
31
+ # expect(chef_run).to create_remote_file('/tmp/config').with(user: /apa(.+)/)
32
+ #
33
+ # @example Assert that a +remote_file+ was _not_ created
34
+ # expect(chef_run).to_not create_remote_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_remote_file(resource_name)
43
+ ChefSpec::Matchers::ResourceMatcher.new(:remote_file, :create, resource_name)
44
+ end
45
+
46
+ #
47
+ # Assert that a +remote_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 +remote_file+:
50
+ #
51
+ # remote_file '/tmp/config' do
52
+ # action :create_if_missing
53
+ # end
54
+ #
55
+ # To test the content rendered by a +remote_file+, see
56
+ # {ChefSpec::API::RenderFileMatchers}.
57
+ #
58
+ # The Examples section demonstrates the different ways to test a
59
+ # +remote_file+ resource with ChefSpec.
60
+ #
61
+ # @example Assert that a +remote_file+ was created if missing
62
+ # expect(chef_run).to create_remote_file_if_missing('/tmp/config')
63
+ #
64
+ # @example Assert that a +remote_file+ was created if missing with predicate matchers
65
+ # expect(chef_run).to create_remote_file_if_missing('/tmp/config').with_backup(false)
66
+ #
67
+ # @example Assert that a +remote_file+ was created if missing with attributes
68
+ # expect(chef_run).to create_remote_file_if_missing('/tmp/config').with(backup: false)
69
+ #
70
+ # @example Assert that a +remote_file+ was created if missing using a regex
71
+ # expect(chef_run).to create_remote_file_if_missing('/tmp/config').with(user: /apa(.+)/)
72
+ #
73
+ # @example Assert that a +remote_file+ was _not_ created if missing
74
+ # expect(chef_run).to_not create_remote_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_remote_file_if_missing(resource_name)
83
+ ChefSpec::Matchers::ResourceMatcher.new(:remote_file, :create_if_missing, resource_name)
84
+ end
85
+
86
+ #
87
+ # Assert that a +remote_file+ resource exists in the Chef run with the
88
+ # action +:delete+. Given a Chef Recipe that deletes "/tmp/config" as a
89
+ # +remote_file+:
90
+ #
91
+ # remote_file '/tmp/config' do
92
+ # action :delete
93
+ # end
94
+ #
95
+ # To test the content rendered by a +remote_file+, see
96
+ # {ChefSpec::API::RenderFileMatchers}.
97
+ #
98
+ # The Examples section demonstrates the different ways to test a
99
+ # +remote_file+ resource with ChefSpec.
100
+ #
101
+ # @example Assert that a +remote_file+ was deleted
102
+ # expect(chef_run).to delete_remote_file('/tmp/config')
103
+ #
104
+ # @example Assert that a +remote_file+ was deleted with predicate matchers
105
+ # expect(chef_run).to delete_remote_file('/tmp/config').with_backup(false)
106
+ #
107
+ # @example Assert that a +remote_file+ was deleted with attributes
108
+ # expect(chef_run).to delete_remote_file('/tmp/config').with(backup: false)
109
+ #
110
+ # @example Assert that a +remote_file+ was deleted using a regex
111
+ # expect(chef_run).to delete_remote_file('/tmp/config').with(user: /apa(.+)/)
112
+ #
113
+ # @example Assert that a +remote_file+ was _not_ deleted
114
+ # expect(chef_run).to_not delete_remote_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_remote_file(resource_name)
123
+ ChefSpec::Matchers::ResourceMatcher.new(:remote_file, :delete, resource_name)
124
+ end
125
+
126
+ #
127
+ # Assert that a +remote_file+ resource exists in the Chef run with the
128
+ # action +:touch+. Given a Chef Recipe that touches "/tmp/config" as a
129
+ # +remote_file+:
130
+ #
131
+ # remote_file '/tmp/config' do
132
+ # action :touch
133
+ # end
134
+ #
135
+ # To test the content rendered by a +remote_file+, see
136
+ # {ChefSpec::API::RenderFileMatchers}.
137
+ #
138
+ # The Examples section demonstrates the different ways to test a
139
+ # +remote_file+ resource with ChefSpec.
140
+ #
141
+ # @example Assert that a +remote_file+ was touched
142
+ # expect(chef_run).to touch_remote_file('/tmp/config')
143
+ #
144
+ # @example Assert that a +remote_file+ was touched with predicate matchers
145
+ # expect(chef_run).to touch_remote_file('/tmp/config').with_backup(false)
146
+ #
147
+ # @example Assert that a +remote_file+ was touched with attributes
148
+ # expect(chef_run).to touch_remote_file('/tmp/config').with(backup: false)
149
+ #
150
+ # @example Assert that a +remote_file+ was touched using a regex
151
+ # expect(chef_run).to touch_remote_file('/tmp/config').with(user: /apa(.+)/)
152
+ #
153
+ # @example Assert that a +remote_file+ was _not_ touched
154
+ # expect(chef_run).to_not touch_remote_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_remote_file(resource_name)
163
+ ChefSpec::Matchers::ResourceMatcher.new(:remote_file, :touch, resource_name)
164
+ end
165
+ end
166
+ end