Project

General

Profile

Download (1.93 KB) Statistics
| Branch: | Tag: | Revision:
require 'test_helper'

class PuppetClassImporterTest < ActiveSupport::TestCase

def setup
ProxyAPI::Puppet.any_instance.stubs(:environments).returns(["foreman-testing"])
ProxyAPI::Puppet.any_instance.stubs(:classes).returns(mocked_classes)
end

test "should support providing proxy" do
proxy = smart_proxies(:puppetmaster)
klass = PuppetClassImporter.new(:proxy => ProxyAPI::Puppet.new(:url => proxy.url))
assert_kind_of ProxyAPI::Puppet, klass.send(:proxy)
end

test "should support providing url" do
proxy = smart_proxies(:puppetmaster)
klass = PuppetClassImporter.new(:url => proxy.url)
assert_kind_of ProxyAPI::Puppet, klass.send(:proxy)
end

test "should return list of envs" do
assert_kind_of Array, get_an_instance.db_environments
end

test "should return list of actual puppet envs" do
assert_kind_of Array, get_an_instance.actual_environments
end

test "should return list of classes" do
importer = get_an_instance
assert_kind_of ActiveRecord::Relation, importer.db_classes(importer.db_environments.first)
end

test "should return list of actual puppet classes" do
importer = get_an_instance
assert_kind_of Hash, importer.actual_classes(importer.actual_environments.first)
end

test "should obey config/ignored_environments.yml" do
as_admin do
Environment.delete_all
end

importer = get_an_instance
importer.stubs(:ignored_environments).returns(["foreman-testing"])
assert !importer.actual_environments.include?("foreman-testing")
end

private

def get_an_instance
PuppetClassImporter.new :url => smart_proxies(:puppetmaster).url
end

def mocked_classes
pcs = [{
"apache::service" => {
"name" => "service",
"params" => { "port" => "80", "version" => "2.0" },
"module" => "apache"
}
}]
Hash[pcs.map { |k| [k.keys.first, Foreman::ImporterPuppetclass.new(k.values.first)] }]
end

end
(38-38/52)