-
Notifications
You must be signed in to change notification settings - Fork 899
/
miq_event_definition_spec.rb
102 lines (86 loc) · 3.56 KB
/
miq_event_definition_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
describe MiqEventDefinition do
describe '.seed_default_events' do
context 'there are 2 event definition sets' do
let!(:set1) { create_set!('host_operations') }
let!(:set2) { create_set!('evm_operations') }
context 'and CSV file with an event definition linked to one of the sets' do
let(:csv) do
<<-CSV.strip_heredoc
name,description,event_type,set_type
#
evm_server_start,EVM Server Start,Default,host_operations
CSV
end
context 'seeding default event definitions from that csv' do
before do
allow(File).to receive(:open).and_return(StringIO.new(csv))
MiqEventDefinition.seed_default_events
end
it 'should create an event definition and make it a member of the set' do
expect(MiqEventDefinition.count).to eq 1
event_def = MiqEventDefinition.first!
expect(event_def.memberof).to eq [set1]
end
context 'when the CSV was changed and the event is linked to another set now' do
let(:csv) do
<<-CSV.strip_heredoc
name,description,event_type,set_type
#
evm_server_start,EVM Server Start,Default,evm_operations
CSV
end
context 'seeding again' do
before do
allow(File).to receive(:open).and_return(StringIO.new(csv))
MiqEventDefinition.seed_default_events
end
it 'should update the membership' do
expect(MiqEventDefinition.count).to eq 1
event_def = MiqEventDefinition.first!
expect(event_def.memberof).to eq [set2]
end
end
end
end
end
def create_set!(name)
MiqEventDefinitionSet.create!(:name => name, :description => name.humanize)
end
end
end
describe '#etype' do
it "returns event set type" do
set_type = 'set_testing'
set = MiqEventDefinitionSet.create(:name => set_type, :description => "Set testing")
event = FactoryGirl.create(:miq_event_definition, :name => "vm_start")
set.add_member(event)
expect(event.etype.name).to eq(set_type)
end
it "returns nil when not belong to any event set" do
event = FactoryGirl.create(:miq_event_definition, :name => "test_event")
expect(event.etype).to be_nil
end
end
describe '.all_control_events' do
subject { MiqEventDefinition.all_control_events }
before do
com_set = MiqEventDefinitionSet.create(:name => "compliance", :description => "Compliance Events")
FactoryGirl.create(:miq_event_definition,
:name => "host_compliance_check",
:event_type => "Default").tap { |e| com_set.add_member(e) }
end
it 'has all default control policy events with set type' do
event = FactoryGirl.create(:miq_event_definition, :name => "some_event", :event_type => "Default")
set = MiqEventDefinitionSet.create(:name => "evm_operations", :description => "EVM Events")
set.add_member(event)
expect(subject.include?(event)).to be true
end
it 'has not the events for compliance policy' do
expect(subject.any? { |e| e.name.ends_with?("compliance_check") }).to be false
end
it 'has not the events without a set type' do
event = FactoryGirl.create(:miq_event_definition, :name => "test_event", :event_type => "Default")
expect(subject.include?(event)).to be false
end
end
end