Project

General

Profile

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

class InterfaceMergeTest < ActiveSupport::TestCase
def setup
@merge = InterfaceMerge.new
@attributes = compute_attributes(:with_interfaces)
@profile_name = @attributes.compute_profile.name
end

EMPTY_ATTRS = {}

def expected_attrs(num)
{
'attr' => num,
'from_profile' => @profile_name
}
end

test "it doesn't change interfaces when the attributes are nil" do
interfaces = [
FactoryGirl.build(:nic_managed, :identifier => 'eth0')
]
@merge.run(interfaces, nil)

assert_equal 1, interfaces.length
assert_equal EMPTY_ATTRS, interfaces[0].compute_attributes
assert_equal 'eth0', interfaces[0].identifier
end

test "it merges compute attributes with existing NICs" do
interfaces = [
FactoryGirl.build(:nic_managed, :identifier => 'eth0'),
FactoryGirl.build(:nic_managed, :identifier => 'eth1'),
FactoryGirl.build(:nic_managed, :identifier => 'eth2')
]
@merge.run(interfaces, @attributes)

assert_equal 3, interfaces.length
assert_equal expected_attrs(1), interfaces[0].compute_attributes
assert_equal 'eth0', interfaces[0].identifier

assert_equal expected_attrs(2), interfaces[1].compute_attributes
assert_equal 'eth1', interfaces[1].identifier

assert_equal EMPTY_ATTRS, interfaces[2].compute_attributes
assert_equal 'eth2', interfaces[2].identifier
end

test "it creates NICs when there aren't any" do
interfaces = []
@merge.run(interfaces, @attributes)

assert_equal 2, interfaces.length
assert_equal expected_attrs(1), interfaces[0].compute_attributes
assert_equal expected_attrs(2), interfaces[1].compute_attributes
end

test "it creates additional NICs" do
interfaces = [
FactoryGirl.build(:nic_managed, :identifier => 'eth0')
]
@merge.run(interfaces, @attributes)

assert_equal 2, interfaces.length
assert_equal expected_attrs(1), interfaces[0].compute_attributes
assert_equal 'eth0', interfaces[0].identifier

assert_equal expected_attrs(2), interfaces[1].compute_attributes
assert_equal nil, interfaces[1].identifier
end
end
(49-49/107)