mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
Merge pull request #15 from irdan/irdan/Alarm-Tests
[rackspace|monitoring] RFR Alarm tests branch
This commit is contained in:
commit
c9a3f28ba0
2 changed files with 64 additions and 2 deletions
|
@ -27,16 +27,23 @@ module Fog
|
|||
|
||||
def save
|
||||
requires :notification_plan_id
|
||||
requires :entity_id
|
||||
|
||||
if identity
|
||||
data = service.update_alarm(get_entity_id, identity, params)
|
||||
data = service.update_alarm(entity_id, identity, params)
|
||||
else
|
||||
options = params('check_type' => check_type, 'check_id' => check_id)
|
||||
data = service.create_alarm(get_entity_id, options)
|
||||
data = service.create_alarm(entity_id, options)
|
||||
self.id = data.headers['X-Object-ID']
|
||||
end
|
||||
true
|
||||
end
|
||||
|
||||
def destroy
|
||||
requires :id
|
||||
service.delete_alarm(entity.id,id)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
|
55
tests/rackspace/models/monitoring/alarm_tests.rb
Normal file
55
tests/rackspace/models/monitoring/alarm_tests.rb
Normal file
|
@ -0,0 +1,55 @@
|
|||
Shindo.tests('Fog::Rackspace::Monitoring | alarm', ['rackspace','rackspace_monitoring']) do
|
||||
service = Fog::Rackspace::Monitoring.new
|
||||
|
||||
tests('#alarm=') do
|
||||
tests('should assign alarm id if object is a string') do
|
||||
alarm = Fog::Rackspace::Monitoring::Alarm.new
|
||||
id = "123123"
|
||||
alarm.id = "123123"
|
||||
returns(Fog::Rackspace::Monitoring::Alarm) { alarm.class }
|
||||
returns(id) { alarm.id }
|
||||
end
|
||||
tests('should set check if object is a check') do
|
||||
entity_id = "555"
|
||||
entity = Fog::Rackspace::Monitoring::Entity.new(:id => entity_id)
|
||||
check_id = "54321"
|
||||
check = Fog::Rackspace::Monitoring::Check.new(:id => check_id)
|
||||
check.entity = entity
|
||||
alarm = Fog::Rackspace::Monitoring::Alarm.new
|
||||
alarm.check_id = check.id
|
||||
|
||||
returns(Fog::Rackspace::Monitoring::Alarm) { alarm.class }
|
||||
returns(check_id) { alarm.check_id }
|
||||
end
|
||||
end
|
||||
|
||||
begin
|
||||
@entity = service.entities.create :label => "fog_#{Time.now.to_i.to_s}"
|
||||
@check = service.checks.create(CHECK_CREATE_OPTIONS.merge(
|
||||
:label => "fog_#{Time.now.to_i.to_s}",
|
||||
:entity => @entity) )
|
||||
np = "npTechnicalContactsEmail"
|
||||
options = CHECK_CREATE_OPTIONS.merge(
|
||||
:label => "fog_#{Time.now.to_i.to_s}",
|
||||
:entity => @entity,
|
||||
:entity_id => @entity.id,
|
||||
:check => @check,
|
||||
:check_id => @check.id,
|
||||
:notification_plan_id => np
|
||||
)
|
||||
collection = service.alarms(:entity => @entity)
|
||||
model_tests(collection, options, false) do
|
||||
tests('#update').succeeds do
|
||||
new_label = "new_label_#{Time.now.to_i.to_s}"
|
||||
@instance.label = new_label
|
||||
@instance.save
|
||||
@instance.label = nil # blank out label just to make sure
|
||||
@instance.reload
|
||||
returns(new_label) { @instance.label}
|
||||
end
|
||||
|
||||
end
|
||||
ensure
|
||||
@entity.destroy if @entity
|
||||
end
|
||||
end
|
Loading…
Add table
Reference in a new issue