summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Magnus Rakvåg <tm@intility.no>2018-02-19 11:20:13 +0100
committerTor Magnus Rakvåg <tm@intility.no>2018-02-19 11:20:13 +0100
commitf53e1d124a37286e586cf71232e53fcc3dbb60d3 (patch)
tree68d003cbb2687e8ec6696d6102d908c67f90436a
parent79a720927132a695ba8f63f351a2fa6e72df15c0 (diff)
downloadchef-f53e1d124a37286e586cf71232e53fcc3dbb60d3.tar.gz
add tests for build_powershell_command
Signed-off-by: Tor Magnus Rakvåg <tm@intility.no>
-rw-r--r--spec/unit/provider/package/powershell_spec.rb100
1 files changed, 100 insertions, 0 deletions
diff --git a/spec/unit/provider/package/powershell_spec.rb b/spec/unit/provider/package/powershell_spec.rb
index 991de2b26e..9bebfa9194 100644
--- a/spec/unit/provider/package/powershell_spec.rb
+++ b/spec/unit/provider/package/powershell_spec.rb
@@ -93,6 +93,20 @@ describe Chef::Provider::Package::Powershell do
double("powershell_out", :stdout => "5")
end
+ let(:generated_command) { "( Get-Package posh-git -Force -ForceBootstrap ).Version" }
+ let(:generated_get_cmdlet) { "( Get-Package xNetworking -Force -ForceBootstrap ).Version" }
+ let(:generated_get_cmdlet_with_version) { "( Get-Package xNetworking -Force -ForceBootstrap -RequiredVersion 1.0.0.0 ).Version" }
+ let(:generated_find_cmdlet) { "( Find-Package xNetworking -Force -ForceBootstrap ).Version" }
+ let(:generated_find_cmdlet_with_version) { "( Find-Package xNetworking -Force -ForceBootstrap -RequiredVersion 1.0.0.0 ).Version" }
+ let(:generated_find_cmdlet_with_source) { "( Find-Package xNetworking -Force -ForceBootstrap -Source MyGallery ).Version" }
+ let(:generated_find_cmdlet_with_source_and_version) { "( Find-Package xNetworking -Force -ForceBootstrap -RequiredVersion 1.0.0.0 -Source MyGallery ).Version" }
+ let(:generated_install_cmdlet) { "( Install-Package xNetworking -Force -ForceBootstrap ).Version" }
+ let(:generated_install_cmdlet_with_version) { "( Install-Package xNetworking -Force -ForceBootstrap -RequiredVersion 1.0.0.0 ).Version" }
+ let(:generated_install_cmdlet_with_source) { "( Install-Package xNetworking -Force -ForceBootstrap -Source MyGallery ).Version" }
+ let(:generated_install_cmdlet_with_source_and_version) { "( Install-Package xNetworking -Force -ForceBootstrap -RequiredVersion 1.0.0.0 -Source MyGallery ).Version" }
+ let(:generated_uninstall_cmdlet) { "( Uninstall-Package xNetworking -Force -ForceBootstrap ).Version" }
+ let(:generated_uninstall_cmdlet_with_version) { "( Uninstall-Package xNetworking -Force -ForceBootstrap -RequiredVersion 1.0.0.0 ).Version" }
+
describe "#initialize" do
it "should return the correct class" do
expect(provider).to be_kind_of(Chef::Provider::Package::Powershell)
@@ -178,6 +192,92 @@ describe Chef::Provider::Package::Powershell do
end
+ describe "#build_powershell_command" do
+ it "can build a valid command from a single string" do
+ expect(provider.build_powershell_command("Get-Package posh-git")).to eql(generated_command)
+ end
+
+ it "can build a valid command from an array" do
+ expect(provider.build_powershell_command(["Get-Package", "posh-git"])).to eql(generated_command)
+ end
+
+ context "when source is nil" do
+ it "build get commands correctly" do
+ expect(provider.build_powershell_command("Get-Package xNetworking")).to eql(generated_get_cmdlet)
+ end
+
+ it "build get commands correctly when a version is passed" do
+ expect(provider.build_powershell_command("Get-Package xNetworking", "1.0.0.0")).to eql(generated_get_cmdlet_with_version)
+ end
+
+ it "builds find commands correctly" do
+ expect(provider.build_powershell_command("Find-Package xNetworking")).to eql(generated_find_cmdlet)
+ end
+
+ it "builds find commands correctly when a version is passed" do
+ expect(provider.build_powershell_command("Find-Package xNetworking", "1.0.0.0")).to eql(generated_find_cmdlet_with_version)
+ end
+
+ it "build install commands correctly" do
+ expect(provider.build_powershell_command("Install-Package xNetworking")).to eql(generated_install_cmdlet)
+ end
+
+ it "build install commands correctly when a version is passed" do
+ expect(provider.build_powershell_command("Install-Package xNetworking", "1.0.0.0")).to eql(generated_install_cmdlet_with_version)
+ end
+
+ it "build install commands correctly" do
+ expect(provider.build_powershell_command("Uninstall-Package xNetworking")).to eql(generated_uninstall_cmdlet)
+ end
+
+ it "build install commands correctly when a version is passed" do
+ expect(provider.build_powershell_command("Uninstall-Package xNetworking", "1.0.0.0")).to eql(generated_uninstall_cmdlet_with_version)
+ end
+ end
+
+ context "when source is set" do
+ it "build get commands correctly" do
+ new_resource.source("MyGallery")
+ expect(provider.build_powershell_command("Get-Package xNetworking")).to eql(generated_get_cmdlet)
+ end
+
+ it "build get commands correctly when a version is passed" do
+ new_resource.source("MyGallery")
+ expect(provider.build_powershell_command("Get-Package xNetworking", "1.0.0.0")).to eql(generated_get_cmdlet_with_version)
+ end
+
+ it "builds find commands correctly" do
+ new_resource.source("MyGallery")
+ expect(provider.build_powershell_command("Find-Package xNetworking")).to eql(generated_find_cmdlet_with_source)
+ end
+
+ it "builds find commands correctly when a version is passed" do
+ new_resource.source("MyGallery")
+ expect(provider.build_powershell_command("Find-Package xNetworking", "1.0.0.0")).to eql(generated_find_cmdlet_with_source_and_version)
+ end
+
+ it "build install commands correctly" do
+ new_resource.source("MyGallery")
+ expect(provider.build_powershell_command("Install-Package xNetworking")).to eql(generated_install_cmdlet_with_source)
+ end
+
+ it "build install commands correctly when a version is passed" do
+ new_resource.source("MyGallery")
+ expect(provider.build_powershell_command("Install-Package xNetworking", "1.0.0.0")).to eql(generated_install_cmdlet_with_source_and_version)
+ end
+
+ it "build install commands correctly" do
+ new_resource.source("MyGallery")
+ expect(provider.build_powershell_command("Uninstall-Package xNetworking")).to eql(generated_uninstall_cmdlet)
+ end
+
+ it "build install commands correctly when a version is passed" do
+ new_resource.source("MyGallery")
+ expect(provider.build_powershell_command("Uninstall-Package xNetworking", "1.0.0.0")).to eql(generated_uninstall_cmdlet_with_version)
+ end
+ end
+ end
+
describe "#action_install" do
it "should install a single package" do
provider.load_current_resource