components/ruby/puppet-modules/oracle-solaris_providers/files/etc/puppet/modules/solaris_providers/spec/unit/provider/pkg/pkg_mediator_spec.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/ruby/puppet-modules/oracle-solaris_providers/files/etc/puppet/modules/solaris_providers/spec/unit/provider/pkg/pkg_mediator_spec.rb Thu Apr 21 12:46:25 2016 -0400
@@ -0,0 +1,71 @@
+#!/usr/bin/env ruby
+
+require 'spec_helper'
+provider_class = Puppet::Type.type(:pkg_mediator).provider(:pkg_mediator)
+
+describe provider_class do
+
+ before(:each) do
+ # Create a mock resource
+ @resource = Puppet::Type.type(:pkg_mediator).new(
+ :name => "foo",
+ :ensure => :present,
+ :version => "1.1.1",
+ :implementation => "[email protected]")
+ @provider = provider_class.new(@resource)
+
+ FileTest.stubs(:file?).with('/usr/bin/pkg').returns true
+ FileTest.stubs(:executable?).with('/usr/bin/pkg').returns true
+ end
+
+ [ "version", "exists?", "implementation", "build_flags",
+ "create", "destroy" ].each do |method|
+ it "should have a #{method} method" do
+ expect(@provider.class.method_defined?(method)).to be true
+ end
+ end
+
+ describe ".instances" do
+ it "should have an instances method" do
+ expect(provider_class).to respond_to :instances
+ end
+
+ describe "should get a list of mediators" do
+ provider_class.expects(:pkg).with(:mediator, "-H", "-F", "tsv").returns
+ File.read(my_fixture('pkg_mediator.txt'))
+ instances = provider_class.instances.map { |p| {
+ :name => p.get(:name),
+ :ensure => p.get(:ensure),
+ :version => p.get(:version),
+ :implementation => p.get(:implementation) } }
+
+ it "with the expected number of instances" do
+ expect(instances.size).to eq(5)
+ end
+
+ it "with version and implementation" do
+ expect(instances[0]).to eq({
+ :name => 'foo',
+ :ensure => :present,
+ :version => '1.1.1',
+ :implementation => '[email protected]'})
+ end
+
+ it "with version only" do
+ expect(instances[1]).to eq({
+ :name => 'fooVer',
+ :ensure => :present,
+ :version => '1.1.1',
+ :implementation => :None})
+ end
+
+ it "with implementation only" do
+ expect(instances[2]).to eq({
+ :name => 'fooImp',
+ :ensure => :present,
+ :version => :None,
+ :implementation => '[email protected]'})
+ end
+ end
+ end
+end