diff options
author | Tor Magnus Rakvåg <tm@intility.no> | 2018-02-19 11:20:13 +0100 |
---|---|---|
committer | Tor Magnus Rakvåg <tm@intility.no> | 2018-02-19 11:20:13 +0100 |
commit | f53e1d124a37286e586cf71232e53fcc3dbb60d3 (patch) | |
tree | 68d003cbb2687e8ec6696d6102d908c67f90436a /spec | |
parent | 79a720927132a695ba8f63f351a2fa6e72df15c0 (diff) | |
download | chef-f53e1d124a37286e586cf71232e53fcc3dbb60d3.tar.gz |
add tests for build_powershell_command
Signed-off-by: Tor Magnus Rakvåg <tm@intility.no>
Diffstat (limited to 'spec')
-rw-r--r-- | spec/unit/provider/package/powershell_spec.rb | 100 |
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 |