Project

General

Profile

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

class EnsureNotUsedByTest < ActiveSupport::TestCase
def setup
@org1 = FactoryGirl.create(:organization)
@org2 = FactoryGirl.create(:organization)
@user = FactoryGirl.build(:user, :with_mail, :organizations => [@org1])
@user.save(:validate => false)
role = FactoryGirl.create(:role, :name => 'can_view_host')
role.add_permissions!(['view_hosts'])
@user.update_attribute :roles, [role]
end

test "hostgroup should not be deleted if used by host in user org" do
hostgroup = FactoryGirl.create(:hostgroup, :organizations => [@org1, @org2])
host = FactoryGirl.create(:host, :managed, :hostgroup => hostgroup, :organization => @org1)

as_user @user do
in_taxonomy @org1 do
refute hostgroup.destroy
assert_equal "#{hostgroup.name} is used by #{host.name}", hostgroup.errors.full_messages.first
end
end
end

test "hostgroup should not be deleted if used by host in different org" do
hostgroup = FactoryGirl.create(:hostgroup, :organizations => [@org1, @org2])
FactoryGirl.create(:host, :hostgroup => hostgroup, :organization => @org2)

as_user @user do
in_taxonomy @org1 do
refute hostgroup.destroy
assert_equal "#{hostgroup.name} is being used by a hidden Host::Managed resource", hostgroup.errors.full_messages.first
end
end
end

test "hostgroup should not be deleted if used by host" do
hostgroup = FactoryGirl.create(:hostgroup, :organizations => [@org1, @org2])
FactoryGirl.create(:host, :hostgroup => hostgroup, :organization => @org2)

as_user FactoryGirl.create(:user, :with_mail) do
in_taxonomy @org1 do
refute hostgroup.destroy
assert_equal "#{hostgroup.name} is being used by a hidden Host::Managed resource", hostgroup.errors.full_messages.first
end
end
end

test "hostgroup should be deleted if not used by host" do
hostgroup = FactoryGirl.create(:hostgroup, :organizations => [@org1, @org2])
FactoryGirl.create(:host, :organization => @org2)

as_user @user do
assert hostgroup.destroy
end
end

test "host using hostgroup should not be shown to user without permissions" do
hostgroup = FactoryGirl.create(:hostgroup)
FactoryGirl.create(:host, :managed, :hostgroup => hostgroup)

as_user FactoryGirl.create(:user, :with_mail) do
refute hostgroup.destroy
assert_equal "#{hostgroup.name} is being used by a hidden Host::Managed resource", hostgroup.errors.full_messages.first
end
end
end
(21-21/109)