increase test coverage for oneget

This commit is contained in:
Christoph Hartmann 2015-10-02 11:09:47 +02:00
parent f387dbbb9e
commit e139070923
4 changed files with 45 additions and 2 deletions

View file

@ -94,7 +94,8 @@ class MockLoader
'gem list --local -a -q ^rubocop$' => cmd.call('gem-list-local-a-q-rubocop'),
'npm ls -g --json bower' => cmd.call('npm-ls-g--json-bower'),
'pip show jinja2' => cmd.call('pip-show-jinja2'),
"Get-Package -Name 'Mozilla Firefox' | ConvertTo-Json" => cmd.call('get-package'),
"Get-Package -Name 'Mozilla Firefox' | ConvertTo-Json" => cmd.call('get-package-firefox'),
"Get-Package -Name 'Ruby 2.1.6-p336-x64' | ConvertTo-Json" => cmd.call('get-package-ruby'),
"New-Object -Type PSObject | Add-Member -MemberType NoteProperty -Name Service -Value (Get-Service -Name dhcp| Select-Object -Property Name, DisplayName, Status) -PassThru | Add-Member -MemberType NoteProperty -Name WMI -Value (Get-WmiObject -Class Win32_Service | Where-Object {$_.Name -eq 'dhcp' -or $_.DisplayName -eq 'dhcp'} | Select-Object -Property StartMode) -PassThru | ConvertTo-Json" => cmd.call('get-service-dhcp'),
"Get-WindowsFeature | Where-Object {$_.Name -eq 'dhcp' -or $_.DisplayName -eq 'dhcp'} | Select-Object -Property Name,DisplayName,Description,Installed,InstallState | ConvertTo-Json" => cmd.call('get-windows-feature'),
'lsmod' => cmd.call('lsmod'),

View file

@ -0,0 +1,18 @@
[
{
"ProviderName": "Programs",
"Status": "Installed",
"SearchKey": "Ruby 2.1.6-p336-x64",
"CanonicalId": "programs:Ruby 2.1.6-p336-x64/2.1.6-p336",
"Name": "Ruby 2.1.6-p336-x64",
"Version": "2.1.6-p336"
},
{
"ProviderName": "Programs",
"Status": "Installed",
"SearchKey": "Ruby 2.1.6-p336-x64",
"CanonicalId": "programs:Ruby 2.1.6-p336-x64/2.1.6-p336",
"Name": "Ruby 2.1.6-p336-x64",
"Version": "2.1.6-p336"
}
]

View file

@ -4,9 +4,9 @@ require 'helper'
require 'vulcano/resource'
describe 'Vulcano::Resources::Passwd' do
let(:resource) { load_resource('oneget', 'Mozilla Firefox') }
it 'verify oneget package detail parsing' do
resource = MockLoader.new(:windows).load_resource('oneget', 'Mozilla Firefox')
pkg = {
name: 'Mozilla Firefox 40.0.3 (x86 en-US)',
version: '40.0.3',
@ -14,6 +14,30 @@ describe 'Vulcano::Resources::Passwd' do
installed: true,
}
_(resource.installed?).must_equal true
_(resource.version).must_equal '40.0.3'
_(resource.info).must_equal pkg
end
# catch cases where we recieve multiple return values
# eg. happens if you do 'choco install ruby'
it 'filter dups of Get-Package' do
resource = MockLoader.new(:windows).load_resource('oneget', 'Ruby 2.1.6-p336-x64')
pkg = {
name: 'Ruby 2.1.6-p336-x64',
version: '2.1.6-p336',
type: 'oneget',
installed: true,
}
_(resource.installed?).must_equal true
_(resource.version).must_equal '2.1.6-p336'
_(resource.info).must_equal pkg
end
it 'should skip on linux' do
resource = MockLoader.new(:centos7).load_resource('oneget', 'Not available')
pkg = { type: 'oneget', installed: false }
_(resource.installed?).must_equal false
_(resource.version).must_equal nil
_(resource.info).must_equal pkg
end
end