Project

General

Profile

Download (1.72 KB) Statistics
| Branch: | Tag: | Revision:
require "test_helper"

class FactsImporterTest < ActiveSupport::TestCase
attr_reader :importer

def setup
@importer = Facts::Importer.new facts
User.current = User.admin
end

test "should return list of interfaces" do
assert importer.interfaces.present?
assert_not_nil importer.primary_interface
assert importer.interfaces.keys.include?(importer.primary_interface)
end

test "should return an os" do
assert_kind_of Operatingsystem, importer.operatingsystem
end

test "should raise on an invalid os" do
@importer = Facts::Importer.new({})
assert_raise RuntimeError do
importer.operatingsystem
end
end
test "should return an env" do
assert_kind_of Environment, importer.environment
end

test "should return an arch" do
assert_kind_of Architecture, importer.architecture
end

test "should return a model" do
assert_kind_of Model, importer.model
end

test "should return a domain" do
assert_kind_of Domain, importer.domain
end

test "should make non-numeric os version strings into numeric" do
@importer = Facts::Importer.new({'operatingsystem'=>'AnyOS','operatingsystemrelease'=>'1&2.3y4'})
data = importer.operatingsystem
assert_equal '12', data.major
assert_equal '34', data.minor
end

test "should allow OS version minor component to be nil" do
@importer = Facts::Importer.new({'operatingsystem'=>'AnyOS','operatingsystemrelease'=>'6'})
data = importer.operatingsystem
assert_equal "AnyOS 6", data.to_s
assert_equal '6', data.major
assert_empty data.minor
end

private

def facts
# return Facter.to_hash
@yaml ||= YAML::load(File.read(File.expand_path(File.dirname(__FILE__) + "/facts.yml"))).values
end

end
(15-15/64)