Revision aa1796f3
Added by Paul Kelly almost 14 years ago
- ID aa1796f3efcd11e491ee2e55a91e6ae86529e8ea
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
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