--- /dev/null
+#!/usr/bin/env rspec
+
+require 'spec_helper'
+
+MCollective::PluginManager.clear
+require File.dirname(__FILE__) + '/../../../../../plugins/mcollective/pluginpackager/ospackage_packager.rb'
+
+module MCollective
+ module PluginPackager
+ describe "#initialize" do
+
+ before :all do
+ @packager = mock()
+ @packager.stubs(:new)
+ end
+
+ it "should correctly set members and create the correct packager on redhat" do
+ File.expects(:exists?).with("/etc/redhat-release").returns(true)
+ PluginPackager.expects(:[]).with("RpmpackagePackager").returns(@packager)
+ ospackager = OspackagePackager.new("package")
+ ospackager.package_type.should == "RPM"
+ end
+
+ it "should correctly set members and create the correct packager on debian" do
+ File.expects(:exists?).with("/etc/redhat-release").returns(false)
+ File.expects(:exists?).with("/etc/debian_version").returns(true)
+ PluginPackager.expects(:[]).with("DebpackagePackager").returns(@packager)
+ ospackager = OspackagePackager.new("package")
+ ospackager.package_type.should == "Deb"
+ end
+
+ it "should raise an exception if the os can't be identified" do
+ File.expects(:exists?).with("/etc/redhat-release").returns(false)
+ File.expects(:exists?).with("/etc/debian_version").returns(false)
+ expect{
+ OspackagePackager.new("package")
+ }.to raise_error(RuntimeError)
+ end
+ end
+
+ describe "#create_packages" do
+ before :all do
+ @packager = mock
+ @packager.stubs(:new).returns(@packager)
+ end
+
+ it "should call a packagers create_packages class" do
+ File.expects(:exists?).with("/etc/redhat-release").returns(true)
+ PluginPackager.expects(:[]).with("RpmpackagePackager").returns(@packager)
+ @packager.expects(:create_packages)
+ ospackager = OspackagePackager.new("package")
+ ospackager.class.should == OspackagePackager
+ ospackager.create_packages
+ end
+ end
+ end
+end