Project

General

Profile

« Previous | Next » 

Revision aa1796f3

Added by Paul Kelly almost 14 years ago

  • ID aa1796f3efcd11e491ee2e55a91e6ae86529e8ea

Fixes #261 - parameters now use a single reference_id

This implementation uses STI but the table looks the same for all
variants. This is a little strange but it seems to work.

Also removed obsolete controllers and tests
Added more tests

View differences:

test/unit/parameter_test.rb
require 'test_helper'
class ParameterTest < ActiveSupport::TestCase
test "name can't be blank" do
parameter = Parameter.new :name => " ", :value => "some_value"
assert parameter.name.strip.empty?
assert !parameter.save
test "names may me reused in different parameter groups" do
p1 = HostParameter.new :name => "param", :value => "value1", :reference_id => Host.first
assert p1.save
p2 = DomainParameter.new :name => "param", :value => "value2", :reference_id => Domain.first
assert p2.save
p3 = CommonParameter.new :name => "param", :value => "value3"
assert p3.save
p4 = GroupParameter.new :name => "param", :value => "value4", :reference_id => Hostgroup.first
assert p4.save
end
test "parameters are hierarchically applied" do
cp = CommonParameter.create :name => "animal", :value => "cat"
test "name can't contain trailing spaces" do
parameter = Parameter.new :name => " a new param ", :value => "some_value"
assert !parameter.name.strip.squeeze(" ").empty?
assert !parameter.save
domain = Domain.find_or_create_by_name("company.com")
hostgroup = Hostgroup.find_or_create_by_name "Common"
host = Host.create :name => "myfullhost", :mac => "aabbecddeeff", :ip => "123.05.02.03",
:domain => domain , :operatingsystem => Operatingsystem.first, :hostgroup => hostgroup,
:architecture => Architecture.first, :environment => Environment.first, :disk => "empty partition"
parameter.name.strip!.squeeze!(" ")
assert parameter.save
end
assert host.params["animal"] == "cat"
test "value can't be blank" do
parameter = Parameter.new :name => "some parameter", :value => " "
assert parameter.value.strip.empty?
assert !parameter.save
end
domain.domain_parameters << DomainParameter.create(:name => "animal", :value => "dog")
test "value can't contain trailing spaces" do
parameter = Parameter.new :name => "some parameter", :value => " some crazy value "
assert !parameter.value.strip.squeeze(" ").empty?
assert !parameter.save
assert host.params["animal"] == "dog"
parameter.value.strip!.squeeze!(" ").empty?
assert parameter.save
end
hostgroup.group_parameters << GroupParameter.create(:name => "animal",:value => "cow")
test "name must not be unique accross different parameter groups" do
p1 = HostParameter.new :name => "param", :value => "value1", :host_id => Host.first
assert p1.save
p2 = DomainParameter.new :name => "param", :value => "value2", :domain_id => Domain.first
assert p2.save
p3 = CommonParameter.new :name => "param", :value => "value3"
assert p3.save
p4 = GroupParameter.new :name => "param", :value => "value4", :hostgroup_id => Hostgroup.first
assert p4.save
assert host.params["animal"] == "cow"
host.host_parameters << HostParameter.create(:name => "animal", :value => "pig")
assert host.params["animal"] == "pig"
end
end
end

Also available in: Unified diff