chef 16.6.14 → 16.7.61

Sign up to get free protection for your applications and to get access to all the features.
Files changed (205) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -11
  3. data/Rakefile +21 -14
  4. data/chef-universal-mingw32.gemspec +1 -1
  5. data/lib/chef/application/knife.rb +1 -1
  6. data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +1 -1
  7. data/lib/chef/chef_fs/file_pattern.rb +1 -1
  8. data/lib/chef/client.rb +1 -1
  9. data/lib/chef/cookbook_manifest.rb +1 -1
  10. data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
  11. data/lib/chef/cookbook_version.rb +2 -5
  12. data/lib/chef/environment.rb +1 -1
  13. data/lib/chef/exceptions.rb +1 -1
  14. data/lib/chef/file_access_control/windows.rb +1 -4
  15. data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +2 -2
  16. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +4 -4
  17. data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +28 -39
  18. data/lib/chef/http.rb +2 -12
  19. data/lib/chef/http/basic_client.rb +1 -1
  20. data/lib/chef/http/http_request.rb +1 -1
  21. data/lib/chef/http/socketless_chef_zero_client.rb +1 -1
  22. data/lib/chef/json_compat.rb +2 -7
  23. data/lib/chef/key.rb +1 -1
  24. data/lib/chef/knife/bootstrap.rb +2 -1
  25. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +2 -2
  26. data/lib/chef/knife/config_show.rb +1 -1
  27. data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
  28. data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
  29. data/lib/chef/knife/core/windows_bootstrap_context.rb +7 -4
  30. data/lib/chef/mixin/convert_to_class_name.rb +0 -56
  31. data/lib/chef/mixin/openssl_helper.rb +1 -1
  32. data/lib/chef/mixin/properties.rb +2 -0
  33. data/lib/chef/mixin/unformatter.rb +1 -1
  34. data/lib/chef/node/attribute_collections.rb +2 -6
  35. data/lib/chef/powershell.rb +5 -2
  36. data/lib/chef/property.rb +1 -1
  37. data/lib/chef/provider/cron.rb +2 -13
  38. data/lib/chef/provider/group.rb +14 -6
  39. data/lib/chef/provider/group/windows.rb +12 -1
  40. data/lib/chef/provider/ifconfig.rb +7 -7
  41. data/lib/chef/provider/ifconfig/debian.rb +5 -7
  42. data/lib/chef/provider/ifconfig/redhat.rb +3 -1
  43. data/lib/chef/provider/launchd.rb +1 -11
  44. data/lib/chef/provider/mount.rb +18 -1
  45. data/lib/chef/provider/mount/linux.rb +4 -0
  46. data/lib/chef/provider/mount/mount.rb +41 -43
  47. data/lib/chef/provider/package.rb +3 -0
  48. data/lib/chef/provider/package/apt.rb +1 -1
  49. data/lib/chef/provider/package/chocolatey.rb +6 -6
  50. data/lib/chef/provider/package/freebsd/base.rb +3 -2
  51. data/lib/chef/provider/package/freebsd/pkgng.rb +1 -1
  52. data/lib/chef/provider/package/ips.rb +1 -1
  53. data/lib/chef/provider/package/powershell.rb +2 -3
  54. data/lib/chef/provider/package/rubygems.rb +1 -1
  55. data/lib/chef/provider/package/snap.rb +1 -3
  56. data/lib/chef/provider/package/solaris.rb +0 -2
  57. data/lib/chef/provider/package/yum/rpm_utils.rb +1 -1
  58. data/lib/chef/provider/package/zypper.rb +98 -71
  59. data/lib/chef/provider/registry_key.rb +4 -3
  60. data/lib/chef/provider/route.rb +2 -2
  61. data/lib/chef/provider/service/debian.rb +2 -1
  62. data/lib/chef/provider/user.rb +17 -9
  63. data/lib/chef/provider/user/aix.rb +1 -1
  64. data/lib/chef/provider/user/mac.rb +12 -4
  65. data/lib/chef/provider/user/solaris.rb +1 -1
  66. data/lib/chef/provider/user/windows.rb +10 -3
  67. data/lib/chef/providers.rb +0 -3
  68. data/lib/chef/pwsh.rb +7 -0
  69. data/lib/chef/resource/bash.rb +119 -1
  70. data/lib/chef/resource/batch.rb +1 -1
  71. data/lib/chef/resource/breakpoint.rb +3 -1
  72. data/lib/chef/resource/build_essential.rb +5 -8
  73. data/lib/chef/resource/csh.rb +2 -2
  74. data/lib/chef/resource/execute.rb +6 -4
  75. data/lib/chef/resource/file.rb +1 -1
  76. data/lib/chef/resource/homebrew_update.rb +4 -1
  77. data/lib/chef/resource/hostname.rb +2 -2
  78. data/lib/chef/resource/ifconfig.rb +52 -5
  79. data/lib/chef/resource/ksh.rb +3 -3
  80. data/lib/chef/resource/lwrp_base.rb +3 -5
  81. data/lib/chef/resource/mount.rb +7 -1
  82. data/lib/chef/resource/perl.rb +2 -2
  83. data/lib/chef/resource/plist.rb +2 -6
  84. data/lib/chef/resource/powershell_package_source.rb +19 -18
  85. data/lib/chef/resource/powershell_script.rb +7 -10
  86. data/lib/chef/resource/python.rb +2 -2
  87. data/lib/chef/resource/registry_key.rb +93 -2
  88. data/lib/chef/resource/route.rb +1 -1
  89. data/lib/chef/resource/ruby.rb +2 -2
  90. data/lib/chef/resource/scm/_scm.rb +2 -1
  91. data/lib/chef/resource/scm/git.rb +82 -1
  92. data/lib/chef/resource/scm/subversion.rb +12 -0
  93. data/lib/chef/resource/script.rb +2 -2
  94. data/lib/chef/resource/solaris_package.rb +0 -2
  95. data/lib/chef/resource/sudo.rb +1 -1
  96. data/lib/chef/resource/support/client.erb +4 -5
  97. data/lib/chef/resource/systemd_unit.rb +42 -1
  98. data/lib/chef/resource/windows_ad_join.rb +9 -9
  99. data/lib/chef/resource/windows_certificate.rb +6 -6
  100. data/lib/chef/resource/windows_dfs_server.rb +7 -4
  101. data/lib/chef/resource/windows_env.rb +173 -0
  102. data/lib/chef/resource/windows_feature.rb +2 -0
  103. data/lib/chef/resource/windows_firewall_profile.rb +7 -12
  104. data/lib/chef/resource/windows_firewall_rule.rb +9 -11
  105. data/lib/chef/resource/windows_font.rb +1 -1
  106. data/lib/chef/resource/windows_package.rb +1 -0
  107. data/lib/chef/resource/windows_path.rb +38 -0
  108. data/lib/chef/resource/windows_security_policy.rb +5 -5
  109. data/lib/chef/resource/windows_service.rb +108 -0
  110. data/lib/chef/resource/windows_share.rb +18 -18
  111. data/lib/chef/resource/windows_task.rb +629 -28
  112. data/lib/chef/resource/windows_workgroup.rb +6 -4
  113. data/lib/chef/resource/yum_repository.rb +1 -1
  114. data/lib/chef/resource_collection/resource_set.rb +1 -5
  115. data/lib/chef/resource_inspector.rb +77 -75
  116. data/lib/chef/run_lock.rb +1 -1
  117. data/lib/chef/server_api.rb +0 -4
  118. data/lib/chef/shell/ext.rb +1 -1
  119. data/lib/chef/util/dsc/lcm_output_parser.rb +1 -3
  120. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  121. data/lib/chef/util/powershell/cmdlet.rb +3 -9
  122. data/lib/chef/version.rb +1 -1
  123. data/lib/chef/win32/security/sid.rb +1 -1
  124. data/spec/functional/mixin/powershell_out_spec.rb +4 -4
  125. data/spec/functional/resource/apt_package_spec.rb +4 -6
  126. data/spec/functional/resource/chocolatey_package_spec.rb +3 -3
  127. data/spec/functional/resource/cron_spec.rb +3 -3
  128. data/spec/functional/resource/dsc_script_spec.rb +3 -3
  129. data/spec/functional/resource/mount_spec.rb +10 -2
  130. data/spec/functional/resource/powershell_package_source_spec.rb +107 -0
  131. data/spec/functional/resource/windows_certificate_spec.rb +10 -6
  132. data/spec/functional/resource/windows_firewall_rule_spec.rb +93 -0
  133. data/spec/functional/resource/windows_package_spec.rb +36 -10
  134. data/spec/functional/resource/windows_share_spec.rb +103 -0
  135. data/spec/functional/resource/windows_task_spec.rb +2 -3
  136. data/spec/functional/resource/zypper_package_spec.rb +11 -0
  137. data/spec/integration/knife/client_key_create_spec.rb +1 -1
  138. data/spec/integration/knife/node_create_spec.rb +1 -1
  139. data/spec/integration/knife/node_environment_set_spec.rb +1 -1
  140. data/spec/integration/knife/node_run_list_add_spec.rb +4 -4
  141. data/spec/integration/knife/node_run_list_remove_spec.rb +1 -1
  142. data/spec/integration/knife/node_run_list_set_spec.rb +1 -1
  143. data/spec/integration/knife/node_show_spec.rb +1 -1
  144. data/spec/integration/recipes/notifies_spec.rb +1 -1
  145. data/spec/integration/recipes/provider_choice.rb +2 -2
  146. data/spec/support/lib/chef/resource/cat.rb +1 -1
  147. data/spec/support/lib/chef/resource/one_two_three_four.rb +1 -1
  148. data/spec/support/mock/platform.rb +24 -16
  149. data/spec/support/platform_helpers.rb +6 -4
  150. data/spec/support/shared/unit/knife_shared.rb +1 -1
  151. data/spec/support/shared/unit/script_resource.rb +4 -4
  152. data/spec/support/shared/unit/windows_script_resource.rb +1 -1
  153. data/spec/unit/client_spec.rb +16 -0
  154. data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +11 -11
  155. data/spec/unit/knife/client_create_spec.rb +2 -2
  156. data/spec/unit/knife/configure_client_spec.rb +5 -5
  157. data/spec/unit/knife/configure_spec.rb +3 -3
  158. data/spec/unit/knife/cookbook_delete_spec.rb +2 -2
  159. data/spec/unit/knife/cookbook_download_spec.rb +2 -2
  160. data/spec/unit/knife/cookbook_list_spec.rb +2 -2
  161. data/spec/unit/knife/cookbook_metadata_spec.rb +3 -3
  162. data/spec/unit/knife/environment_compare_spec.rb +3 -3
  163. data/spec/unit/knife/supermarket_download_spec.rb +8 -8
  164. data/spec/unit/knife/supermarket_list_spec.rb +3 -3
  165. data/spec/unit/knife/supermarket_search_spec.rb +1 -1
  166. data/spec/unit/knife/tag_create_spec.rb +1 -1
  167. data/spec/unit/knife/tag_delete_spec.rb +1 -1
  168. data/spec/unit/knife/user_create_spec.rb +1 -1
  169. data/spec/unit/mixin/which.rb +1 -1
  170. data/spec/unit/provider/group/windows_spec.rb +6 -0
  171. data/spec/unit/provider/group_spec.rb +1 -1
  172. data/spec/unit/provider/mount/linux_spec.rb +10 -0
  173. data/spec/unit/provider/mount/mount_spec.rb +21 -10
  174. data/spec/unit/provider/mount/solaris_spec.rb +1 -1
  175. data/spec/unit/provider/mount_spec.rb +31 -0
  176. data/spec/unit/provider/package/chocolatey_spec.rb +1 -2
  177. data/spec/unit/provider/package/powershell_spec.rb +87 -95
  178. data/spec/unit/provider/package/zypper_spec.rb +0 -25
  179. data/spec/unit/provider/package_spec.rb +2 -2
  180. data/spec/unit/provider/subversion_spec.rb +0 -3
  181. data/spec/unit/provider/user_spec.rb +7 -1
  182. data/spec/unit/provider/windows_env_spec.rb +18 -34
  183. data/spec/unit/provider/windows_path_spec.rb +6 -11
  184. data/spec/unit/provider/windows_task_spec.rb +7 -6
  185. data/spec/unit/resource/breakpoint_spec.rb +1 -1
  186. data/spec/unit/resource/build_essential_spec.rb +0 -12
  187. data/spec/unit/resource/ifconfig_spec.rb +2 -10
  188. data/spec/unit/resource/mount_spec.rb +18 -5
  189. data/spec/unit/resource/powershell_package_source_spec.rb +20 -20
  190. data/spec/unit/resource/powershell_script_spec.rb +4 -74
  191. data/spec/unit/resource/service_spec.rb +2 -2
  192. data/spec/unit/resource/solaris_package_spec.rb +8 -10
  193. data/spec/unit/resource_inspector_spec.rb +3 -3
  194. data/spec/unit/shell_spec.rb +2 -2
  195. data/tasks/rspec.rb +1 -1
  196. metadata +9 -15
  197. data/lib/chef/monkey_patches/net_http.rb +0 -22
  198. data/lib/chef/provider/windows_env.rb +0 -210
  199. data/lib/chef/provider/windows_path.rb +0 -61
  200. data/lib/chef/provider/windows_task.rb +0 -631
  201. data/spec/support/mock/constant.rb +0 -52
  202. data/spec/unit/monkey_patches/uri_spec.rb +0 -34
  203. data/spec/unit/provider_resolver_spec.rb +0 -885
  204. data/spec/unit/resource/data/InstallHistory_with_CLT.plist +0 -92
  205. data/spec/unit/resource/data/InstallHistory_without_CLT.plist +0 -38
@@ -41,7 +41,7 @@ describe Chef::Knife::CookbookList do
41
41
  .and_return(@cookbook_data)
42
42
  @knife.run
43
43
  @cookbook_names.each do |item|
44
- expect(@stdout.string).to match /#{item}\s+1\.0\.1/
44
+ expect(@stdout.string).to match(/#{item}\s+1\.0\.1/)
45
45
  end
46
46
  end
47
47
 
@@ -79,7 +79,7 @@ describe Chef::Knife::CookbookList do
79
79
  .and_return(@cookbook_data)
80
80
  @knife.run
81
81
  @cookbook_names.each do |item|
82
- expect(@stdout.string).to match /#{item}\s+1\.0\.1\s+1\.0\.0/
82
+ expect(@stdout.string).to match(/#{item}\s+1\.0\.1\s+1\.0\.0/)
83
83
  end
84
84
  end
85
85
  end
@@ -145,20 +145,20 @@ describe Chef::Knife::CookbookMetadata do
145
145
  create_metadata_rb(name: "foobar", version: "1.0.0", depends: [ "foo:bar", ">> 0.2" ])
146
146
  expect(Chef::Cookbook::Metadata).not_to receive(:validate_json)
147
147
  expect { knife.run }.to raise_error(SystemExit)
148
- expect(stderr.string).to match /error: the cookbook 'foobar' contains invalid or obsolete metadata syntax/im
148
+ expect(stderr.string).to match(/error: the cookbook 'foobar' contains invalid or obsolete metadata syntax/im)
149
149
  end
150
150
 
151
151
  it "should fail for obsolete format in metadata.rb (sadly)" do
152
152
  create_metadata_rb(name: "foobar", version: "1.0.0", depends: [ "foo:bar", "> 0.2", "< 1.0" ])
153
153
  expect(Chef::Cookbook::Metadata).not_to receive(:validate_json)
154
154
  expect { knife.run }.to raise_error(SystemExit)
155
- expect(stderr.string).to match /error: the cookbook 'foobar' contains invalid or obsolete metadata syntax/im
155
+ expect(stderr.string).to match(/error: the cookbook 'foobar' contains invalid or obsolete metadata syntax/im)
156
156
  end
157
157
 
158
158
  it "should fail for obsolete operators in metadata.json" do
159
159
  create_metadata_json(name: "foobar", version: "1.0.0", dependencies: { "foo:bar" => ">> 0.2" })
160
160
  expect { knife.run }.to raise_error(SystemExit)
161
- expect(stderr.string).to match /error: the cookbook 'foobar' contains invalid or obsolete metadata syntax/im
161
+ expect(stderr.string).to match(/error: the cookbook 'foobar' contains invalid or obsolete metadata syntax/im)
162
162
  end
163
163
 
164
164
  it "should not fail for unknown field in metadata.rb" do
@@ -62,7 +62,7 @@ describe Chef::Knife::EnvironmentCompare do
62
62
  @knife.config[:format] = "summary"
63
63
  @knife.run
64
64
  @environments.each_key do |item|
65
- expect(@stdout.string).to(match /#{item}/) && expect(@stdout.string.lines.count).to(be 4)
65
+ expect(@stdout.string).to(match(/#{item}/)) && expect(@stdout.string.lines.count).to(be 4)
66
66
  end
67
67
  end
68
68
 
@@ -79,7 +79,7 @@ describe Chef::Knife::EnvironmentCompare do
79
79
  @knife.config[:mismatch] = true
80
80
  @knife.run
81
81
  @constraints.each_value do |ver|
82
- expect(@stdout.string).to match /#{ver[1]}/
82
+ expect(@stdout.string).to match(/#{ver[1]}/)
83
83
  end
84
84
  end
85
85
 
@@ -97,7 +97,7 @@ describe Chef::Knife::EnvironmentCompare do
97
97
  @knife.config[:all] = true
98
98
  @knife.run
99
99
  @constraints.each_value do |ver|
100
- expect(@stdout.string).to match /#{ver[1]}/
100
+ expect(@stdout.string).to match(/#{ver[1]}/)
101
101
  end
102
102
  end
103
103
 
@@ -86,8 +86,8 @@ describe Chef::Knife::SupermarketDownload do
86
86
  .with(/.+deprecated.+replaced by other_apache2.+/i)
87
87
  expect(FileUtils).to receive(:cp).with(@temp_file.path, @file)
88
88
  @knife.run
89
- expect(@stderr.string).to match /downloading apache2.+version.+#{Regexp.escape(@version)}/i
90
- expect(@stderr.string).to match /cookbook save.+#{Regexp.escape(@file)}/i
89
+ expect(@stderr.string).to match(/downloading apache2.+version.+#{Regexp.escape(@version)}/i)
90
+ expect(@stderr.string).to match(/cookbook save.+#{Regexp.escape(@file)}/i)
91
91
  end
92
92
 
93
93
  end
@@ -95,8 +95,8 @@ describe Chef::Knife::SupermarketDownload do
95
95
  it "should download the latest version" do
96
96
  expect(FileUtils).to receive(:cp).with(@temp_file.path, @file)
97
97
  @knife.run
98
- expect(@stderr.string).to match /downloading apache2.+version.+#{Regexp.escape(@version)}/i
99
- expect(@stderr.string).to match /cookbook save.+#{Regexp.escape(@file)}/i
98
+ expect(@stderr.string).to match(/downloading apache2.+version.+#{Regexp.escape(@version)}/i)
99
+ expect(@stderr.string).to match(/cookbook save.+#{Regexp.escape(@file)}/i)
100
100
  end
101
101
 
102
102
  context "with -f or --file" do
@@ -108,8 +108,8 @@ describe Chef::Knife::SupermarketDownload do
108
108
 
109
109
  it "should download the cookbook to the desired file" do
110
110
  @knife.run
111
- expect(@stderr.string).to match /downloading apache2.+version.+#{Regexp.escape(@version)}/i
112
- expect(@stderr.string).to match /cookbook save.+#{Regexp.escape(@file)}/i
111
+ expect(@stderr.string).to match(/downloading apache2.+version.+#{Regexp.escape(@version)}/i)
112
+ expect(@stderr.string).to match(/cookbook save.+#{Regexp.escape(@file)}/i)
113
113
  end
114
114
  end
115
115
 
@@ -140,8 +140,8 @@ describe Chef::Knife::SupermarketDownload do
140
140
  .and_return(@temp_file)
141
141
  expect(FileUtils).to receive(:cp).with(@temp_file.path, @file)
142
142
  @knife.run
143
- expect(@stderr.string).to match /downloading apache2.+version.+#{Regexp.escape(@version)}/i
144
- expect(@stderr.string).to match /cookbook save.+#{Regexp.escape(@file)}/i
143
+ expect(@stderr.string).to match(/downloading apache2.+version.+#{Regexp.escape(@version)}/i)
144
+ expect(@stderr.string).to match(/cookbook save.+#{Regexp.escape(@file)}/i)
145
145
  end
146
146
  end
147
147
 
@@ -52,7 +52,7 @@ describe Chef::Knife::SupermarketList do
52
52
  it "should display all supermarket cookbooks" do
53
53
  knife.run
54
54
  cookbooks_data.each do |item|
55
- expect(stdout.string).to match /#{item["cookbook_name"]}\s/
55
+ expect(stdout.string).to match(/#{item["cookbook_name"]}\s/)
56
56
  end
57
57
  end
58
58
 
@@ -61,8 +61,8 @@ describe Chef::Knife::SupermarketList do
61
61
  knife.config[:with_uri] = true
62
62
  knife.run
63
63
  cookbooks_data.each do |item|
64
- expect(stdout.string).to match /#{item["cookbook_name"]}\s/
65
- expect(stdout.string).to match /#{item["cookbook"]}\s/
64
+ expect(stdout.string).to match(/#{item["cookbook_name"]}\s/)
65
+ expect(stdout.string).to match(/#{item["cookbook"]}\s/)
66
66
  end
67
67
  end
68
68
  end
@@ -65,7 +65,7 @@ describe Chef::Knife::SupermarketSearch do
65
65
  knife.name_args = ["mysql"]
66
66
  knife.run
67
67
  cookbooks_data.each do |item|
68
- expect(stdout.string).to match /#{item["cookbook_name"]}\s/
68
+ expect(stdout.string).to match(/#{item["cookbook_name"]}\s/)
69
69
  end
70
70
  end
71
71
  end
@@ -17,7 +17,7 @@ describe Chef::Knife::TagCreate do
17
17
  it "can create tags on a node" do
18
18
  @knife.run
19
19
  expect(@node.tags).to eq(["happytag"])
20
- expect(@stderr.string).to match /created tags happytag.+node webmonkey.example.com/i
20
+ expect(@stderr.string).to match(/created tags happytag.+node webmonkey.example.com/i)
21
21
  end
22
22
  end
23
23
  end
@@ -19,7 +19,7 @@ describe Chef::Knife::TagDelete do
19
19
  expect(@node.tags).to eq(%w{sadtag happytag})
20
20
  @knife.run
21
21
  expect(@node.tags).to eq(["happytag"])
22
- expect(@stderr.string).to match /deleted.+sadtag/i
22
+ expect(@stderr.string).to match(/deleted.+sadtag/i)
23
23
  end
24
24
  end
25
25
  end
@@ -112,7 +112,7 @@ describe Chef::Knife::UserCreate do
112
112
 
113
113
  it "prints a relevant error message" do
114
114
  expect { knife.run }.to raise_error(SystemExit)
115
- expect(stderr.string).to match /You cannot pass --user-key and --prevent-keygen/
115
+ expect(stderr.string).to match(/You cannot pass --user-key and --prevent-keygen/)
116
116
  end
117
117
  end
118
118
 
@@ -93,7 +93,7 @@ describe Chef::Mixin::Which do
93
93
  end
94
94
 
95
95
  test_which("arrays with blocks", "foo1", "foo2", finds: "/dir2/foo1", others: [ "/dir1/foo2" ]) do |f|
96
- raise "bad arg to block" unless f == "/dir2/foo1" || f == "/dir1/foo2"
96
+ raise "bad arg to block" unless ["/dir2/foo1", "/dir1/foo2"].include?(f)
97
97
 
98
98
  true
99
99
  end
@@ -39,6 +39,12 @@ describe Chef::Provider::Group::Windows do
39
39
  end
40
40
 
41
41
  describe "when creating the group" do
42
+ before do
43
+ @current_resource = Chef::Resource::Group.new("staff")
44
+ @current_resource.members %w{all your base}
45
+ @provider.current_resource = @current_resource
46
+ end
47
+
42
48
  it "should call @net_group.local_add" do
43
49
  expect(@net_group).to receive(:local_set_members).with([])
44
50
  expect(@net_group).to receive(:local_add)
@@ -266,7 +266,7 @@ describe Chef::Provider::User do
266
266
  @new_resource.members << "user1"
267
267
  allow(@new_resource).to receive(:append).and_return false
268
268
  expect(@provider.compare_group).to be_truthy
269
- expect(@provider.change_desc).to eq([ "replace group members with new list of members" ])
269
+ expect(@provider.change_desc).to eq([ "replace group members with new list of members: aj, user1" ])
270
270
  end
271
271
 
272
272
  it "should report the gid will be changed when it does not match" do
@@ -24,6 +24,7 @@ describe Chef::Provider::Mount::Linux do
24
24
  before(:each) do
25
25
  allow(::File).to receive(:exists?).with("/dev/sdz1").and_return true
26
26
  allow(::File).to receive(:exists?).with("/tmp/foo").and_return true
27
+ allow(::File).to receive(:exists?).with("//192.168.11.102/Share/backup").and_return true
27
28
  allow(::File).to receive(:realpath).with("/dev/sdz1").and_return "/dev/sdz1"
28
29
  allow(::File).to receive(:realpath).with("/tmp/foo").and_return "/tmp/foo"
29
30
  end
@@ -92,6 +93,15 @@ describe Chef::Provider::Mount::Linux do
92
93
  expect(provider.current_resource.mounted).to be_falsey
93
94
  end
94
95
 
96
+ it "should set mounted true if network_device? is true and the mount point is found in the mounts list" do
97
+ new_resource.device "//192.168.11.102/Share/backup"
98
+ new_resource.fstype "cifs"
99
+ mount = "/tmp/foo //192.168.11.102/Share/backup[/backup] cifs rw\n"
100
+ mount << "#{new_resource.mount_point} #{new_resource.device} type #{new_resource.fstype}\n"
101
+ allow(provider).to receive(:shell_out!).and_return(double(stdout: mount))
102
+ provider.load_current_resource
103
+ expect(provider.current_resource.mounted).to be_truthy
104
+ end
95
105
  end
96
106
 
97
107
  end
@@ -247,15 +247,6 @@ describe Chef::Provider::Mount::Mount do
247
247
  expect(@provider.current_resource.enabled).to be_falsey
248
248
  end
249
249
 
250
- it "should set enabled to false if the mount point is not last in fstab" do
251
- line_1 = "#{@new_resource.device} #{@new_resource.mount_point} ext3 defaults 1 2\n"
252
- line_2 = "/dev/sdy1 #{@new_resource.mount_point} ext3 defaults 1 2\n"
253
- allow(::File).to receive(:foreach).with("/etc/fstab").and_yield(line_1).and_yield(line_2)
254
-
255
- @provider.load_current_resource
256
- expect(@provider.current_resource.enabled).to be_falsey
257
- end
258
-
259
250
  it "should not mangle the mount options if the device in fstab is a symlink" do
260
251
  # expand the target path to correct specs on Windows
261
252
  target = "/dev/mapper/target"
@@ -427,10 +418,30 @@ describe Chef::Provider::Mount::Mount do
427
418
  @fstab = StringIO.new
428
419
  allow(::File).to receive(:readlines).and_return([])
429
420
  expect(::File).to receive(:open).once.with("/etc/fstab", "w").and_yield(@fstab)
430
- expect(::File).to receive(:open).once.with("/etc/fstab", "a").and_yield(@fstab)
431
421
 
432
422
  @provider.enable_fs
433
423
  end
424
+
425
+ it "should update the last matching entry if enabled is true" do
426
+ @new_resource.fstype("ext4")
427
+ @new_resource.dump(2)
428
+ @new_resource.pass(1)
429
+ allow(@current_resource).to receive(:enabled).and_return(true)
430
+ fstab_read = ["/dev/sdz1 /tmp/foo ext3 defaults 1 2\n",
431
+ "/dev/sdy1 /tmp/foo ext3 defaults 1 2\n",
432
+ "/dev/sdz1 /tmp/foo ext3 defaults 1 2\n",
433
+ "/dev/sdz1 /tmp/foobar ext3 defaults 1 2\n"]
434
+
435
+ fstab_write = StringIO.new
436
+ allow(::File).to receive(:readlines).with("/etc/fstab").and_return(fstab_read)
437
+ allow(::File).to receive(:open).with("/etc/fstab", "w").and_yield(fstab_write)
438
+
439
+ @provider.enable_fs
440
+ expect(fstab_write.string).to eq("/dev/sdz1 /tmp/foo ext3 defaults 1 2\n" +
441
+ "/dev/sdy1 /tmp/foo ext3 defaults 1 2\n" +
442
+ "/dev/sdz1 /tmp/foo #{@new_resource.fstype} defaults #{@new_resource.dump} #{@new_resource.pass}\n" +
443
+ "/dev/sdz1 /tmp/foobar ext3 defaults 1 2\n")
444
+ end
434
445
  end
435
446
 
436
447
  describe "when disabling the fs" do
@@ -544,7 +544,7 @@ describe Chef::Provider::Mount::Solaris, :unix_only do
544
544
 
545
545
  it "should mount the filesystem with options if options were passed" do
546
546
  options = "logging,noatime,largefiles,nosuid,rw,quota"
547
- new_resource.options(options.split(/,/))
547
+ new_resource.options(options.split(","))
548
548
  expect(provider).to receive(:shell_out_compacted!).with("mount", "-F", fstype, "-o", options, device, mountpoint)
549
549
  provider.mount_fs
550
550
  end
@@ -151,6 +151,24 @@ describe Chef::Provider::Mount do
151
151
  provider.run_action(:enable)
152
152
  expect(new_resource).not_to be_updated_by_last_action
153
153
  end
154
+
155
+ it "should enable the mount if device changed" do
156
+ allow(current_resource).to receive(:enabled).and_return(true)
157
+ expect(provider).to receive(:mount_options_unchanged?).and_return(true)
158
+ expect(provider).to receive(:device_unchanged?).and_return(false)
159
+ expect(provider).to receive(:enable_fs).and_return(true)
160
+ provider.run_action(:enable)
161
+ expect(new_resource).to be_updated_by_last_action
162
+ end
163
+
164
+ it "should not enable the mount if device not changed" do
165
+ allow(current_resource).to receive(:enabled).and_return(true)
166
+ expect(provider).to receive(:mount_options_unchanged?).and_return(true)
167
+ expect(provider).to receive(:device_unchanged?).and_return(true)
168
+ expect(provider).not_to receive(:enable_fs)
169
+ provider.run_action(:enable)
170
+ expect(new_resource).not_to be_updated_by_last_action
171
+ end
154
172
  end
155
173
 
156
174
  describe "when the target state is to disable the mount" do
@@ -188,4 +206,17 @@ describe Chef::Provider::Mount do
188
206
  it "should delegates the disable implementation to subclasses" do
189
207
  expect { provider.disable_fs }.to raise_error(Chef::Exceptions::UnsupportedAction)
190
208
  end
209
+
210
+ # Not supported on solaris because it can't cope with a LABEL device type.
211
+ describe "#device_unchanged?", :not_supported_on_solaris do
212
+ it "should be true when device_type not changed" do
213
+ expect(provider.device_unchanged?).to be_truthy
214
+ end
215
+
216
+ it "should be false when device_type changed" do
217
+ new_resource.device_type :label
218
+ current_resource.device_type :device
219
+ expect(provider.device_unchanged?).to be_falsey
220
+ end
221
+ end
191
222
  end
@@ -501,8 +501,7 @@ describe "behavior when Chocolatey is not installed" do
501
501
 
502
502
  before do
503
503
  # the shellout sometimes returns "", but test nil to be safe.
504
- allow(provider).to receive(:choco_install_path).and_return(nil)
505
- provider.instance_variable_set("@choco_install_path", nil)
504
+ allow(provider).to receive(:choco_install_path).and_return("")
506
505
 
507
506
  # we don't care what this returns, but we have to let it be called.
508
507
  allow(provider).to receive(:shell_out_compacted!).and_return(double(stdout: ""))
@@ -94,19 +94,20 @@ describe Chef::Provider::Package::Powershell, :windows_only, :windows_gte_10 do
94
94
  double("powershell_out", stdout: "5")
95
95
  end
96
96
 
97
- let(:generated_command) { "( Get-Package posh-git -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version" }
98
- let(:generated_get_cmdlet) { "( Get-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version" }
99
- let(:generated_get_cmdlet_with_version) { "( Get-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 1.0.0.0 ).Version" }
100
- let(:generated_find_cmdlet) { "( Find-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version" }
101
- let(:generated_find_cmdlet_with_version) { "( Find-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 1.0.0.0 ).Version" }
102
- let(:generated_find_cmdlet_with_source) { "( Find-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue -Source MyGallery ).Version" }
103
- let(:generated_find_cmdlet_with_source_and_version) { "( Find-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 1.0.0.0 -Source MyGallery ).Version" }
104
- let(:generated_install_cmdlet) { "( Install-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version" }
105
- let(:generated_install_cmdlet_with_version) { "( Install-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 1.0.0.0 ).Version" }
106
- let(:generated_install_cmdlet_with_source) { "( Install-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue -Source MyGallery ).Version" }
107
- let(:generated_install_cmdlet_with_source_and_version) { "( Install-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 1.0.0.0 -Source MyGallery ).Version" }
108
- let(:generated_uninstall_cmdlet) { "( Uninstall-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version" }
109
- let(:generated_uninstall_cmdlet_with_version) { "( Uninstall-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 1.0.0.0 ).Version" }
97
+ let(:tls_set_command) { "if ([Net.ServicePointManager]::SecurityProtocol -lt [Net.SecurityProtocolType]::Tls12) { [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 };" }
98
+ let(:generated_command) { "#{tls_set_command} ( Get-Package posh-git -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version" }
99
+ let(:generated_get_cmdlet) { "#{tls_set_command} ( Get-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version" }
100
+ let(:generated_get_cmdlet_with_version) { "#{tls_set_command} ( Get-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 1.0.0.0 ).Version" }
101
+ let(:generated_find_cmdlet) { "#{tls_set_command} ( Find-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version" }
102
+ let(:generated_find_cmdlet_with_version) { "#{tls_set_command} ( Find-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 1.0.0.0 ).Version" }
103
+ let(:generated_find_cmdlet_with_source) { "#{tls_set_command} ( Find-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue -Source MyGallery ).Version" }
104
+ let(:generated_find_cmdlet_with_source_and_version) { "#{tls_set_command} ( Find-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 1.0.0.0 -Source MyGallery ).Version" }
105
+ let(:generated_install_cmdlet) { "#{tls_set_command} ( Install-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version" }
106
+ let(:generated_install_cmdlet_with_version) { "#{tls_set_command} ( Install-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 1.0.0.0 ).Version" }
107
+ let(:generated_install_cmdlet_with_source) { "#{tls_set_command} ( Install-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue -Source MyGallery ).Version" }
108
+ let(:generated_install_cmdlet_with_source_and_version) { "#{tls_set_command} ( Install-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 1.0.0.0 -Source MyGallery ).Version" }
109
+ let(:generated_uninstall_cmdlet) { "#{tls_set_command} ( Uninstall-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version" }
110
+ let(:generated_uninstall_cmdlet_with_version) { "#{tls_set_command} ( Uninstall-Package xNetworking -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 1.0.0.0 ).Version" }
110
111
 
111
112
  describe "#initialize" do
112
113
  it "should return the correct class" do
@@ -117,14 +118,14 @@ describe Chef::Provider::Package::Powershell, :windows_only, :windows_gte_10 do
117
118
  describe "#candidate_version" do
118
119
 
119
120
  it "should set the candidate_version to the latest version when not pinning" do
120
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available)
121
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available)
121
122
  new_resource.package_name(["xNetworking"])
122
123
  new_resource.version(nil)
123
124
  expect(provider.candidate_version).to eql(["2.12.0.0"])
124
125
  end
125
126
 
126
127
  it "should use the candidate_version from the correct source" do
127
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -Source MyGallery ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available)
128
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -Source MyGallery ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available)
128
129
  new_resource.package_name(["xNetworking"])
129
130
  new_resource.version(nil)
130
131
  new_resource.source("MyGallery")
@@ -132,60 +133,60 @@ describe Chef::Provider::Package::Powershell, :windows_only, :windows_gte_10 do
132
133
  end
133
134
 
134
135
  it "should set the candidate_version to the latest version when not pinning and package name is space separated" do
135
- allow(provider).to receive(:powershell_out).with("( Find-Package '7-Zip 16.02 (x64)' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_7zip_available)
136
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package '7-Zip 16.02 (x64)' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_7zip_available)
136
137
  new_resource.package_name(["7-Zip 16.02 (x64)"])
137
138
  new_resource.version(nil)
138
139
  expect(provider.candidate_version).to eql(["16.02"])
139
140
  end
140
141
 
141
142
  it "should set the candidate_version to pinned version if available" do
142
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.0.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available_2_0_0_0)
143
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.0.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available_2_0_0_0)
143
144
  new_resource.package_name(["xCertificate"])
144
145
  new_resource.version(["2.0.0.0"])
145
146
  expect(provider.candidate_version).to eql(["2.0.0.0"])
146
147
  end
147
148
 
148
149
  it "should set the candidate_version to nil if there is no candidate" do
149
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
150
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
150
151
  new_resource.package_name(["xCertificate"])
151
152
  expect(provider.candidate_version).to eql([nil])
152
153
  end
153
154
 
154
155
  it "should set the candidate_version correctly when there are two packages to install" do
155
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
156
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available)
156
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
157
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available)
157
158
  new_resource.package_name(%w{xCertificate xNetworking})
158
159
  new_resource.version(nil)
159
160
  expect(provider.candidate_version).to eql(["2.1.0.0", "2.12.0.0"])
160
161
  end
161
162
 
162
163
  it "should set the candidate_version correctly when only the first is installable" do
163
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
164
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_not_available)
164
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
165
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_not_available)
165
166
  new_resource.package_name(%w{xCertificate xNetworking})
166
167
  new_resource.version(nil)
167
168
  expect(provider.candidate_version).to eql(["2.1.0.0", nil])
168
169
  end
169
170
 
170
171
  it "should set the candidate_version correctly when only the last is installable" do
171
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
172
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available)
172
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
173
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available)
173
174
  new_resource.package_name(%w{xCertificate xNetworking})
174
175
  new_resource.version(nil)
175
176
  expect(provider.candidate_version).to eql([nil, "2.12.0.0"])
176
177
  end
177
178
 
178
179
  it "should set the candidate_version correctly when neither are is installable and version is passed as nil array" do
179
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
180
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_not_available)
180
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
181
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_not_available)
181
182
  new_resource.package_name(%w{xNetworking xCertificate})
182
183
  new_resource.version([nil, nil])
183
184
  expect(provider.candidate_version).to eql([nil, nil])
184
185
  end
185
186
 
186
187
  it "should set the candidate_version correctly when neither are is installable and version is not passed" do
187
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
188
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_not_available)
188
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
189
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_not_available)
189
190
  new_resource.package_name(%w{xNetworking xCertificate})
190
191
  new_resource.version(nil)
191
192
  expect(provider.candidate_version).to eql([nil, nil])
@@ -284,11 +285,10 @@ describe Chef::Provider::Package::Powershell, :windows_only, :windows_gte_10 do
284
285
  provider.load_current_resource
285
286
  new_resource.package_name(["xCertificate"])
286
287
  new_resource.version(nil)
287
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
288
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
288
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
289
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
289
290
  allow(provider).to receive(:powershell_out).with("$PSVersionTable.PSVersion.Major").and_return(powershell_installed_version)
290
- allow(provider).to receive(:powershell_out).with("[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12")
291
- expect(provider).to receive(:powershell_out).with("( Install-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout })
291
+ expect(provider).to receive(:powershell_out).with("#{tls_set_command} ( Install-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout })
292
292
  provider.run_action(:install)
293
293
  expect(new_resource).to be_updated_by_last_action
294
294
  end
@@ -298,11 +298,10 @@ describe Chef::Provider::Package::Powershell, :windows_only, :windows_gte_10 do
298
298
  new_resource.package_name(["xCertificate"])
299
299
  new_resource.version(nil)
300
300
  new_resource.source("MyGallery")
301
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -Source MyGallery ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
302
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
301
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -Source MyGallery ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
302
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
303
303
  allow(provider).to receive(:powershell_out).with("$PSVersionTable.PSVersion.Major").and_return(powershell_installed_version)
304
- allow(provider).to receive(:powershell_out).with("[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12")
305
- expect(provider).to receive(:powershell_out).with("( Install-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 -Source MyGallery ).Version", { timeout: new_resource.timeout })
304
+ expect(provider).to receive(:powershell_out).with("#{tls_set_command} ( Install-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 -Source MyGallery ).Version", { timeout: new_resource.timeout })
306
305
  provider.run_action(:install)
307
306
  expect(new_resource).to be_updated_by_last_action
308
307
  end
@@ -312,11 +311,10 @@ describe Chef::Provider::Package::Powershell, :windows_only, :windows_gte_10 do
312
311
  new_resource.package_name(["xCertificate"])
313
312
  new_resource.version(nil)
314
313
  new_resource.skip_publisher_check(true)
315
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
316
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -SkipPublisherCheck ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
314
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
315
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -SkipPublisherCheck ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
317
316
  allow(provider).to receive(:powershell_out).with("$PSVersionTable.PSVersion.Major").and_return(powershell_installed_version)
318
- allow(provider).to receive(:powershell_out).with("[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12")
319
- expect(provider).to receive(:powershell_out).with("( Install-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 -SkipPublisherCheck ).Version", { timeout: new_resource.timeout })
317
+ expect(provider).to receive(:powershell_out).with("#{tls_set_command} ( Install-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 -SkipPublisherCheck ).Version", { timeout: new_resource.timeout })
320
318
  provider.run_action(:install)
321
319
  expect(new_resource).to be_updated_by_last_action
322
320
  end
@@ -325,11 +323,10 @@ describe Chef::Provider::Package::Powershell, :windows_only, :windows_gte_10 do
325
323
  provider.load_current_resource
326
324
  new_resource.package_name(["7-Zip 16.02 (x64)"])
327
325
  new_resource.version(nil)
328
- allow(provider).to receive(:powershell_out).with("( Find-Package '7-Zip 16.02 (x64)' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_7zip_available)
329
- allow(provider).to receive(:powershell_out).with("( Get-Package '7-Zip 16.02 (x64)' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_7zip_not_installed)
326
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package '7-Zip 16.02 (x64)' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_7zip_available)
327
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package '7-Zip 16.02 (x64)' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_7zip_not_installed)
330
328
  allow(provider).to receive(:powershell_out).with("$PSVersionTable.PSVersion.Major").and_return(powershell_installed_version)
331
- allow(provider).to receive(:powershell_out).with("[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12")
332
- expect(provider).to receive(:powershell_out).with("( Install-Package '7-Zip 16.02 (x64)' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 16.02 ).Version", { timeout: new_resource.timeout })
329
+ expect(provider).to receive(:powershell_out).with("#{tls_set_command} ( Install-Package '7-Zip 16.02 (x64)' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 16.02 ).Version", { timeout: new_resource.timeout })
333
330
  provider.run_action(:install)
334
331
  expect(new_resource).to be_updated_by_last_action
335
332
  end
@@ -341,11 +338,10 @@ describe Chef::Provider::Package::Powershell, :windows_only, :windows_gte_10 do
341
338
  provider.load_current_resource
342
339
  new_resource.package_name(["xCertificate"])
343
340
  new_resource.version(nil)
344
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
345
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
341
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
342
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
346
343
  allow(provider).to receive(:powershell_out).with("$PSVersionTable.PSVersion.Major").and_return(powershell_installed_version)
347
- allow(provider).to receive(:powershell_out).with("[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12")
348
- expect(provider).to receive(:powershell_out).with("( Install-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout })
344
+ expect(provider).to receive(:powershell_out).with("#{tls_set_command} ( Install-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout })
349
345
  provider.run_action(:install)
350
346
  expect(new_resource).to be_updated_by_last_action
351
347
  end
@@ -354,8 +350,8 @@ describe Chef::Provider::Package::Powershell, :windows_only, :windows_gte_10 do
354
350
  it "should not install packages that are up-to-date" do
355
351
  new_resource.package_name(["xCertificate"])
356
352
  new_resource.version(nil)
357
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
358
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
353
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
354
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
359
355
  allow(provider).to receive(:powershell_out).with("$PSVersionTable.PSVersion.Major").and_return(powershell_installed_version)
360
356
  provider.load_current_resource
361
357
  expect(provider).not_to receive(:install_package)
@@ -366,8 +362,8 @@ describe Chef::Provider::Package::Powershell, :windows_only, :windows_gte_10 do
366
362
  it "should not install packages that are up-to-date" do
367
363
  new_resource.package_name(["xNetworking"])
368
364
  new_resource.version(["2.11.0.0"])
369
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.11.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
370
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.11.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available_2_11_0_0)
365
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.11.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
366
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.11.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available_2_11_0_0)
371
367
  allow(provider).to receive(:powershell_out).with("$PSVersionTable.PSVersion.Major").and_return(powershell_installed_version)
372
368
  provider.load_current_resource
373
369
  expect(provider).not_to receive(:install_package)
@@ -380,14 +376,13 @@ describe Chef::Provider::Package::Powershell, :windows_only, :windows_gte_10 do
380
376
  # new_version.resource[0]
381
377
  new_resource.package_name(%w{xCertificate xNetworking})
382
378
  new_resource.version([nil, "2.11.0.0"])
383
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
384
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
385
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.11.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available_2_11_0_0)
386
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.11.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_not_available)
379
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
380
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
381
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.11.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available_2_11_0_0)
382
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.11.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_not_available)
387
383
  allow(provider).to receive(:powershell_out).with("$PSVersionTable.PSVersion.Major").and_return(powershell_installed_version)
388
- allow(provider).to receive(:powershell_out).with("[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12")
389
- expect(provider).to receive(:powershell_out).with("( Install-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout })
390
- expect(provider).to receive(:powershell_out).with("( Install-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.11.0.0 ).Version", { timeout: new_resource.timeout })
384
+ expect(provider).to receive(:powershell_out).with("#{tls_set_command} ( Install-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout })
385
+ expect(provider).to receive(:powershell_out).with("#{tls_set_command} ( Install-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.11.0.0 ).Version", { timeout: new_resource.timeout })
391
386
  provider.load_current_resource
392
387
  provider.run_action(:install)
393
388
  expect(new_resource).to be_updated_by_last_action
@@ -396,14 +391,13 @@ describe Chef::Provider::Package::Powershell, :windows_only, :windows_gte_10 do
396
391
  it "should split up commands when given two packages, one with a version pin" do
397
392
  new_resource.package_name(%w{xCertificate xNetworking})
398
393
  new_resource.version(["2.1.0.0", nil])
399
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
400
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
401
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available)
402
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_not_available)
394
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
395
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
396
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available)
397
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_not_available)
403
398
  allow(provider).to receive(:powershell_out).with("$PSVersionTable.PSVersion.Major").and_return(powershell_installed_version)
404
- allow(provider).to receive(:powershell_out).with("[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12")
405
- expect(provider).to receive(:powershell_out).with("( Install-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout })
406
- expect(provider).to receive(:powershell_out).with("( Install-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.12.0.0 ).Version", { timeout: new_resource.timeout })
399
+ expect(provider).to receive(:powershell_out).with("#{tls_set_command} ( Install-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout })
400
+ expect(provider).to receive(:powershell_out).with("#{tls_set_command} ( Install-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.12.0.0 ).Version", { timeout: new_resource.timeout })
407
401
 
408
402
  provider.load_current_resource
409
403
  provider.run_action(:install)
@@ -413,14 +407,13 @@ describe Chef::Provider::Package::Powershell, :windows_only, :windows_gte_10 do
413
407
  it "should do multipackage installs when given two packages without constraints" do
414
408
  new_resource.package_name(%w{xCertificate xNetworking})
415
409
  new_resource.version(nil)
416
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
417
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
418
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available)
419
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_not_available)
410
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
411
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
412
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available)
413
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_not_available)
420
414
  allow(provider).to receive(:powershell_out).with("$PSVersionTable.PSVersion.Major").and_return(powershell_installed_version)
421
- allow(provider).to receive(:powershell_out).with("[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12")
422
- expect(provider).to receive(:powershell_out).with("( Install-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout })
423
- expect(provider).to receive(:powershell_out).with("( Install-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.12.0.0 ).Version", { timeout: new_resource.timeout })
415
+ expect(provider).to receive(:powershell_out).with("#{tls_set_command} ( Install-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout })
416
+ expect(provider).to receive(:powershell_out).with("#{tls_set_command} ( Install-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.12.0.0 ).Version", { timeout: new_resource.timeout })
424
417
  provider.load_current_resource
425
418
  provider.run_action(:install)
426
419
  expect(new_resource).to be_updated_by_last_action
@@ -430,14 +423,13 @@ describe Chef::Provider::Package::Powershell, :windows_only, :windows_gte_10 do
430
423
  new_resource.package_name(%w{xCertificate xNetworking})
431
424
  new_resource.version(nil)
432
425
  new_resource.source("MyGallery")
433
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -Source MyGallery ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
434
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
435
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -Source MyGallery ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available)
436
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_not_available)
426
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -Source MyGallery ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
427
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
428
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -Source MyGallery ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available)
429
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_not_available)
437
430
  allow(provider).to receive(:powershell_out).with("$PSVersionTable.PSVersion.Major").and_return(powershell_installed_version)
438
- allow(provider).to receive(:powershell_out).with("[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12")
439
- expect(provider).to receive(:powershell_out).with("( Install-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 -Source MyGallery ).Version", { timeout: new_resource.timeout })
440
- expect(provider).to receive(:powershell_out).with("( Install-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.12.0.0 -Source MyGallery ).Version", { timeout: new_resource.timeout })
431
+ expect(provider).to receive(:powershell_out).with("#{tls_set_command} ( Install-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 -Source MyGallery ).Version", { timeout: new_resource.timeout })
432
+ expect(provider).to receive(:powershell_out).with("#{tls_set_command} ( Install-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.12.0.0 -Source MyGallery ).Version", { timeout: new_resource.timeout })
441
433
  provider.load_current_resource
442
434
  provider.run_action(:install)
443
435
  expect(new_resource).to be_updated_by_last_action
@@ -449,8 +441,8 @@ describe Chef::Provider::Package::Powershell, :windows_only, :windows_gte_10 do
449
441
  provider.load_current_resource
450
442
  new_resource.package_name(["xCertificate"])
451
443
  new_resource.version(["2.1.0.0"])
452
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
453
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
444
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
445
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
454
446
  allow(provider).to receive(:powershell_out).with("$PSVersionTable.PSVersion.Major").and_return(powershell_installed_version)
455
447
  expect(provider).not_to receive(:remove_package)
456
448
  provider.run_action(:remove)
@@ -461,11 +453,11 @@ describe Chef::Provider::Package::Powershell, :windows_only, :windows_gte_10 do
461
453
  new_resource.package_name(["xCertificate"])
462
454
  new_resource.version(["2.1.0.0"])
463
455
  new_resource.source("MyGallery")
464
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 -Source MyGallery).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
465
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
456
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 -Source MyGallery).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
457
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
466
458
  allow(provider).to receive(:powershell_out).with("$PSVersionTable.PSVersion.Major").and_return(powershell_installed_version)
467
459
  provider.load_current_resource
468
- expect(provider).to receive(:powershell_out).with("( Uninstall-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout })
460
+ expect(provider).to receive(:powershell_out).with("#{tls_set_command} ( Uninstall-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout })
469
461
  provider.run_action(:remove)
470
462
  expect(new_resource).to be_updated_by_last_action
471
463
  end
@@ -473,10 +465,10 @@ describe Chef::Provider::Package::Powershell, :windows_only, :windows_gte_10 do
473
465
  it "does nothing when all the packages are already removed" do
474
466
  new_resource.package_name(%w{xCertificate xNetworking})
475
467
  new_resource.version(nil)
476
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
477
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
478
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available)
479
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_not_available)
468
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
469
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
470
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_available)
471
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xNetworking' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xnetworking_not_available)
480
472
  allow(provider).to receive(:powershell_out).with("$PSVersionTable.PSVersion.Major").and_return(powershell_installed_version)
481
473
  provider.load_current_resource
482
474
  expect(provider).not_to receive(:remove_package)
@@ -487,11 +479,11 @@ describe Chef::Provider::Package::Powershell, :windows_only, :windows_gte_10 do
487
479
  it "removes a package when version is specified" do
488
480
  new_resource.package_name(["xCertificate"])
489
481
  new_resource.version(["2.1.0.0"])
490
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
491
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
482
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
483
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
492
484
  allow(provider).to receive(:powershell_out).with("$PSVersionTable.PSVersion.Major").and_return(powershell_installed_version)
493
485
  provider.load_current_resource
494
- expect(provider).to receive(:powershell_out).with("( Uninstall-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout })
486
+ expect(provider).to receive(:powershell_out).with("#{tls_set_command} ( Uninstall-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue -RequiredVersion 2.1.0.0 ).Version", { timeout: new_resource.timeout })
495
487
  provider.run_action(:remove)
496
488
  expect(new_resource).to be_updated_by_last_action
497
489
  end
@@ -499,11 +491,11 @@ describe Chef::Provider::Package::Powershell, :windows_only, :windows_gte_10 do
499
491
  it "removes a package when version is not specified" do
500
492
  new_resource.package_name(["xCertificate"])
501
493
  new_resource.version(nil)
502
- allow(provider).to receive(:powershell_out).with("( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
503
- allow(provider).to receive(:powershell_out).with("( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
494
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Find-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
495
+ allow(provider).to receive(:powershell_out).with("#{tls_set_command} ( Get-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_available)
504
496
  allow(provider).to receive(:powershell_out).with("$PSVersionTable.PSVersion.Major").and_return(powershell_installed_version)
505
497
  provider.load_current_resource
506
- expect(provider).to receive(:powershell_out).with("( Uninstall-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
498
+ expect(provider).to receive(:powershell_out).with("#{tls_set_command} ( Uninstall-Package 'xCertificate' -Force -ForceBootstrap -WarningAction SilentlyContinue ).Version", { timeout: new_resource.timeout }).and_return(package_xcertificate_not_available)
507
499
  provider.run_action(:remove)
508
500
  expect(new_resource).to be_updated_by_last_action
509
501
  end