Message class, responsible to return a hash.
This commit is contained in:
parent
ca40c4a229
commit
726923c18f
27
lib/nsca/client/message.rb
Normal file
27
lib/nsca/client/message.rb
Normal file
|
@ -0,0 +1,27 @@
|
|||
module NSCA
|
||||
module Client
|
||||
class Message
|
||||
CODE = { :ok => 0, :warn => 1, :critical => 2 }
|
||||
|
||||
attr_reader :return_code
|
||||
|
||||
def initialize(alert, status, service, remote_server)
|
||||
@return_code = CODE[alert]
|
||||
@status = status
|
||||
@service = service
|
||||
@remote_server = remote_server
|
||||
end
|
||||
|
||||
def to_h
|
||||
{
|
||||
:nscahost => @remote_server.host,
|
||||
:port => @remote_server.port,
|
||||
:hostname => @service.host.hostname,
|
||||
:service => @service.name,
|
||||
:return_code => @return_code,
|
||||
:status => @status
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
31
spec/nsca/client/message_spec.rb
Normal file
31
spec/nsca/client/message_spec.rb
Normal file
|
@ -0,0 +1,31 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe NSCA::Client::Message do
|
||||
let(:server) { NSCA::Client::RemoteServer.new(:host => '172.0.0.1') }
|
||||
let(:host) { NSCA::Client::Host.new(:hostname => 'dummy') }
|
||||
let(:service) { NSCA::Client::Service.new(:name => 'TestMessage', :host => host) }
|
||||
|
||||
subject { described_class.new(:ok, 'OK', service, server).to_h }
|
||||
|
||||
its([:nscahost]) { should eq '172.0.0.1' }
|
||||
its([:port]) { should eq 5667 }
|
||||
its([:hostname]) { should eq 'dummy' }
|
||||
its([:service]) { should eq 'TestMessage' }
|
||||
its([:return_code]) { should eq 0 }
|
||||
its([:status]) { should eq 'OK' }
|
||||
|
||||
context "ok message" do
|
||||
subject { described_class.new(:ok, 'OK', service, server) }
|
||||
its(:return_code) { should eq 0 }
|
||||
end
|
||||
|
||||
context "warn message" do
|
||||
subject { described_class.new(:warn, 'WARN', service, server) }
|
||||
its(:return_code) { should eq 1 }
|
||||
end
|
||||
|
||||
context "critical message" do
|
||||
subject { described_class.new(:critical, 'CRITICAL', service, server) }
|
||||
its(:return_code) { should eq 2 }
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue