Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #107 from mizzy/explicit-package-subject-type
Explicit package subject type
- Loading branch information
Showing
10 changed files
with
129 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
module Serverspec | ||
module Type | ||
class Package | ||
def initialize name | ||
@name = name | ||
end | ||
|
||
def installed?(provider, version) | ||
if provider.nil? | ||
backend.check_installed(nil, @name) | ||
else | ||
check_method = "check_installed_by_#{provider}".to_sym | ||
|
||
unless backend.respond_to?(check_method) | ||
raise ArgumentError.new("`be_installed` matcher doesn't support #{provider}") | ||
end | ||
|
||
backend.send(check_method, nil, @name, version) | ||
end | ||
end | ||
|
||
def to_s | ||
%Q!Package "#{@name}"! | ||
end | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -24,7 +24,7 @@ def running? under | |
end | ||
|
||
def to_s | ||
"Service #{@name}" | ||
%Q!Service "#{@name}"! | ||
end | ||
end | ||
end | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
require 'spec_helper' | ||
|
||
include Serverspec::Helper::Darwin | ||
|
||
describe 'Serverspec package matchers of Darwin family' do | ||
it_behaves_like 'support package installed by gem matcher', 'jekyll' | ||
it_behaves_like 'support package installed by gem with version matcher', 'jekyll', '1.1.1' | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
require 'spec_helper' | ||
|
||
include Serverspec::Helper::Debian | ||
|
||
describe 'Serverspec package matchers of Debian family' do | ||
it_behaves_like 'support package installed matcher', 'httpd' | ||
it_behaves_like 'support package installed by gem matcher', 'jekyll' | ||
it_behaves_like 'support package installed by gem with version matcher', 'jekyll', '1.1.1' | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
require 'spec_helper' | ||
|
||
include Serverspec::Helper::Gentoo | ||
|
||
describe 'Serverspec package matchers of Gentoo family' do | ||
it_behaves_like 'support package installed matcher', 'httpd' | ||
it_behaves_like 'support package installed by gem matcher', 'jekyll' | ||
it_behaves_like 'support package installed by gem with version matcher', 'jekyll', '1.1.1' | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
require 'spec_helper' | ||
|
||
include Serverspec::Helper::RedHat | ||
|
||
describe 'Serverspec package matchers of Red Hat family' do | ||
it_behaves_like 'support package installed matcher', 'httpd' | ||
it_behaves_like 'support package installed by gem matcher', 'jekyll' | ||
it_behaves_like 'support package installed by gem with version matcher', 'jekyll', '1.1.1' | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
require 'spec_helper' | ||
|
||
include Serverspec::Helper::Solaris | ||
|
||
describe 'Serverspec package matchers of Solaris family' do | ||
it_behaves_like 'support package installed matcher', 'httpd' | ||
it_behaves_like 'support package installed by gem matcher', 'jekyll' | ||
it_behaves_like 'support package installed by gem with version matcher', 'jekyll', '1.1.1' | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
shared_examples_for 'support package installed matcher' do |name| | ||
describe 'be_installed' do | ||
describe package(name) do | ||
it { should be_installed } | ||
end | ||
|
||
describe 'invalid-package' do | ||
it { should_not be_installed } | ||
end | ||
end | ||
end | ||
|
||
shared_examples_for 'support package installed by gem matcher' do |name| | ||
describe 'installed by gem' do | ||
describe package(name) do | ||
it { should be_installed.by('gem') } | ||
end | ||
|
||
describe 'invalid-gem' do | ||
it { should_not be_installed.by('gem') } | ||
end | ||
end | ||
end | ||
|
||
shared_examples_for 'support package installed by gem with version matcher' do |name, version| | ||
describe 'installed by gem with version' do | ||
before :all do | ||
RSpec.configure do |c| | ||
c.stdout = "#{name} (#{version})" | ||
end | ||
end | ||
|
||
describe package(name) do | ||
it { should be_installed.by('gem').with_version(version) } | ||
end | ||
|
||
describe package(name) do | ||
it { should_not be_installed.by('gem').with_version('invalid-version') } | ||
end | ||
end | ||
end |