# encoding: utf-8
# author: Christoph Hartmann
# author: Dominik Richter

require 'helper'
require 'inspec/resource'

describe 'Inspec::Resources::OneGet' do

  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',
      type: 'oneget',
      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_be_nil
    _(resource.info).must_equal pkg
  end
end