Skip to content

Commit

Permalink
Merge pull request #4 from RoboticCheese/jdh-update-provider-resolver…
Browse files Browse the repository at this point in the history
…-style

Update provider resolver style
  • Loading branch information
hartmantis committed Jul 16, 2015
2 parents e337b15 + 2a7b2dd commit 454c458
Show file tree
Hide file tree
Showing 21 changed files with 144 additions and 145 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ Gimp Cookbook CHANGELOG

v?.?.? (????-??-??)
-------------------
- Update provider resolution to adhere to the most recent standards set by e.g.
the [httpd cookbook](https://github.com/chef-cookbooks/httpd).

v0.1.0 (2015-06-28)
-------------------
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,9 @@ Provider for FreeBSD platforms.

Provider for Red Hat/CentOS/Scientific/Amazon/Fedora platforms.

***Chef::Provider::GimpApp::Opensuse***
***Chef::Provider::GimpApp::Suse***

Provider for OpenSUSE platforms.
Provider for SUSE platforms.

***Chef::Provider::GimpApp::Package***

Expand Down
2 changes: 1 addition & 1 deletion libraries/provider_gimp_app.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
require_relative 'provider_gimp_app_debian'
require_relative 'provider_gimp_app_freebsd'
require_relative 'provider_gimp_app_mac_os_x'
require_relative 'provider_gimp_app_opensuse'
require_relative 'provider_gimp_app_suse'
require_relative 'provider_gimp_app_rhel'
require_relative 'provider_gimp_app_windows'

Expand Down
2 changes: 2 additions & 0 deletions libraries/provider_gimp_app_debian.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ class GimpApp < Provider::LWRPBase
class Debian < GimpApp::Package
include Chef::DSL::IncludeRecipe

provides :gimp_app, platform_family: 'debian'

private

#
Expand Down
2 changes: 2 additions & 0 deletions libraries/provider_gimp_app_freebsd.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ class GimpApp < Provider::LWRPBase
class Freebsd < GimpApp::Package
include Chef::DSL::IncludeRecipe

provides :gimp_app, platform: 'freebsd'

private

#
Expand Down
2 changes: 2 additions & 0 deletions libraries/provider_gimp_app_mac_os_x.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ class GimpApp < Provider::LWRPBase
class MacOsX < GimpApp
PATH ||= '/Applications/GIMP.app'

provides :gimp_app, platform_family: 'mac_os_x'

private

#
Expand Down
1 change: 1 addition & 0 deletions libraries/provider_gimp_app_rhel.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ class GimpApp < Provider::LWRPBase
#
# @author Jonathan Hartman <j@p4nt5.com>
class Rhel < GimpApp::Package
provides :gimp_app, platform_family: %w(rhel fedora)
end
end
end
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Encoding: UTF-8
#
# Cookbook Name:: gimp
# Library:: provider_gimp_app_opensuse
# Library:: provider_gimp_app_suse
#
# Copyright 2015 Jonathan Hartman
#
Expand All @@ -26,12 +26,14 @@
class Chef
class Provider
class GimpApp < Provider::LWRPBase
# A GIMP provider for OpenSUSE.
# A GIMP provider for SUSE.
#
# @author Jonathan Hartman <j@p4nt5.com>
class Opensuse < GimpApp::Package
class Suse < GimpApp::Package
include Chef::DSL::IncludeRecipe

provides :gimp_app, platform_family: 'suse'

#
# Update Zypper before trying to install the GIMP package.
#
Expand Down
2 changes: 2 additions & 0 deletions libraries/provider_gimp_app_windows.rb
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ class Windows < GimpApp

include ::Windows::Helper

provides :gimp_app, platform_family: 'windows'

private

#
Expand Down
47 changes: 0 additions & 47 deletions libraries/provider_mapping.rb

This file was deleted.

1 change: 1 addition & 0 deletions metadata.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,5 @@
supports 'amazon'
supports 'fedora'
supports 'opensuse'
supports 'suse'
# rubocop:enable SingleSpaceBeforeFirstArg
19 changes: 19 additions & 0 deletions spec/libraries/provider_gimp_app_debian_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,25 @@
let(:new_resource) { Chef::Resource::GimpApp.new(name, nil) }
let(:provider) { described_class.new(new_resource, nil) }

describe '.provides?' do
let(:platform) { nil }
let(:node) { ChefSpec::Macros.stub_node('node.example', platform) }
let(:res) { described_class.provides?(node, new_resource) }

{
'Debian' => { platform: 'debian', version: '7.6' },
'Ubuntu' => { platform: 'ubuntu', version: '14.04' }
}.each do |k, v|
context k do
let(:platform) { v }

it 'returns true' do
expect(res).to eq(true)
end
end
end
end

describe '#install!' do
it 'uses an package to install GIMP' do
p = provider
Expand Down
14 changes: 14 additions & 0 deletions spec/libraries/provider_gimp_app_freebsd_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,20 @@
let(:new_resource) { Chef::Resource::GimpApp.new(name, nil) }
let(:provider) { described_class.new(new_resource, nil) }

describe '.provides?' do
let(:platform) { nil }
let(:node) { ChefSpec::Macros.stub_node('node.example', platform) }
let(:res) { described_class.provides?(node, new_resource) }

context 'FreeBSD' do
let(:platform) { { platform: 'freebsd', version: '10.0' } }

it 'returns true' do
expect(res).to eq(true)
end
end
end

describe '#install!' do
it 'uses an package to install GIMP' do
p = provider
Expand Down
14 changes: 14 additions & 0 deletions spec/libraries/provider_gimp_app_mac_os_x_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,20 @@
end
end

describe '.provides?' do
let(:platform) { nil }
let(:node) { ChefSpec::Macros.stub_node('node.example', platform) }
let(:res) { described_class.provides?(node, new_resource) }

context 'Mac OS X' do
let(:platform) { { platform: 'mac_os_x', version: '10.10' } }

it 'returns true' do
expect(res).to eq(true)
end
end
end

describe '#install!' do
before(:each) do
allow_any_instance_of(described_class).to receive(:remote_path)
Expand Down
21 changes: 0 additions & 21 deletions spec/libraries/provider_gimp_app_opensuse_spec.rb

This file was deleted.

21 changes: 21 additions & 0 deletions spec/libraries/provider_gimp_app_rhel_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,27 @@
let(:new_resource) { Chef::Resource::GimpApp.new(name, nil) }
let(:provider) { described_class.new(new_resource, nil) }

describe '.provides?' do
let(:platform) { nil }
let(:node) { ChefSpec::Macros.stub_node('node.example', platform) }
let(:res) { described_class.provides?(node, new_resource) }

{
'Amazon' => { platform: 'amazon', version: '2014.09' },
'CentOS' => { platform: 'centos', version: '7.0' },
'Fedora' => { platform: 'fedora', version: '21' },
'Red Hat' => { platform: 'redhat', version: '7.0' }
}.each do |k, v|
context k do
let(:platform) { v }

it 'returns true' do
expect(res).to eq(true)
end
end
end
end

describe '#install!' do
it 'uses a package to install GIMP' do
p = provider
Expand Down
40 changes: 40 additions & 0 deletions spec/libraries/provider_gimp_app_suse_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Encoding: UTF-8

require_relative '../spec_helper'
require_relative '../../libraries/provider_gimp_app_suse'

describe Chef::Provider::GimpApp::Suse do
let(:name) { 'default' }
let(:new_resource) { Chef::Resource::GimpApp.new(name, nil) }
let(:provider) { described_class.new(new_resource, nil) }

describe '.provides?' do
let(:platform) { nil }
let(:node) { ChefSpec::Macros.stub_node('node.example', platform) }
let(:res) { described_class.provides?(node, new_resource) }

{
'OpenSUSE' => { platform: 'opensuse', version: '13.1' },
'SUSE' => { platform: 'suse', version: '12.0' }
}.each do |k, v|
context k do
let(:platform) { v }

it 'returns true' do
expect(res).to eq(true)
end
end
end
end

describe '#install!' do
it 'uses a package to install GIMP' do
p = provider
expect(p).to receive(:include_recipe).with('zypper')
expect(p).to receive(:package).with('gimp').and_yield
expect(p).to receive(:version).with(nil)
expect(p).to receive(:action).with(:install)
p.send(:install!)
end
end
end
14 changes: 14 additions & 0 deletions spec/libraries/provider_gimp_app_windows_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,20 @@
end
end

describe '.provides?' do
let(:platform) { nil }
let(:node) { ChefSpec::Macros.stub_node('node.example', platform) }
let(:res) { described_class.provides?(node, new_resource) }

context 'Windows' do
let(:platform) { { platform: 'windows', version: '2012R2' } }

it 'returns true' do
expect(res).to eq(true)
end
end
end

describe '#install!' do
before(:each) do
[:download_package, :install_package].each do |m|
Expand Down

0 comments on commit 454c458

Please sign in to comment.