spec/ragios-client_spec.rb in ragios-client-0.0.5 vs spec/ragios-client_spec.rb in ragios-client-0.0.6
- old
+ new
@@ -14,63 +14,93 @@
describe "Ragios Client" do
before(:each) do
#@ragios = Ragios::Client.new(username: admin, password: password)
@ragios = Ragios::Client.new
end
- describe "#add" do
- it "adds a monitor" do
+ describe "queries" do
+ before(:each) do
monitor = {
monitor: "Google",
url: "http://google.com",
every: "5m",
contact: "admin@mail.com",
via: ["gmail_notifier","twitter_notifier"],
plugin: plugin
}
+ @query_monitor_id = @ragios.create(monitor)[:_id]
+ end
+ describe "#events" do
+ it "returns all events by monitor" do
+ @ragios.events(@query_monitor_id, "1980","2015").should_not == 0
+ first_id = @ragios.events(@query_monitor_id, "1980","2015").first[:monitor][:_id]
+ @query_monitor_id.should == first_id
+ @ragios.events(@query_monitor_id, "1980","2015", 1).count.should == 1
+ end
+ end
+ describe "#events_by_state" do
+ it "returns a monitor's events by specified state" do
+ sleep 1
+ @ragios.events_by_state(@query_monitor_id, "passed", "1980","2015",1).count.should == 1
+ end
+ end
+ after(:each) do
+ @ragios.delete(@query_monitor_id)
+ end
+ end
+ describe "#create" do
+ it "creates a monitor" do
+ monitor = {
+ monitor: "Google",
+ url: "http://google.com",
+ every: "5m",
+ contact: "admin@mail.com",
+ via: ["gmail_notifier","twitter_notifier"],
+ plugin: plugin
+ }
- returned_monitor = @ragios.add(monitor)
+ returned_monitor = @ragios.create(monitor)
returned_monitor.should include(monitor)
monitor_id = returned_monitor[:_id]
#teardown
@ragios.delete(monitor_id)
end
- it "cannot add a monitor with no plugin" do
+ it "cannot create a monitor with no plugin" do
monitor = {
monitor: "Google",
url: "http://google.com",
every: "5m",
contact: "admin@mail.com",
via: "gmail_notifier"
}
begin
- @ragios.add monitor
+ @ragios.create monitor
rescue => e
e.should be_an_instance_of Ragios::ClientException
e.message.should include("No Plugin Found")
end
end
- it "cannot add a monitor with no notifier" do
+ it "cannot create a monitor with no notifier" do
monitor = {
monitor: "Google",
url: "http://google.com",
every: "5m",
contact: "admin@mail.com",
plugin: plugin
}
begin
- @ragios.add monitor
+ @ragios.create monitor
rescue Exception => e
e.should be_an_instance_of Ragios::ClientException
e.message.should include("No Notifier Found")
end
end
- it "cannot add a badly formed monitor" do
- expect{@ragios.add("bad data")}.to raise_error(JSON::GeneratorError)
+ it "cannot create a badly formed monitor" do
+ expect{@ragios.create("bad data")}.to raise_error(JSON::GeneratorError)
end
end
describe "More API calls" do
before(:each) do
@unique_name = "Google #{Time.now.to_i}"
@@ -82,11 +112,11 @@
via: ["gmail_notifier"],
plugin: plugin,
tag: "test"
}
- returned_monitor = @ragios.add(@monitor)
+ returned_monitor = @ragios.create(@monitor)
@monitor_id = returned_monitor[:_id]
end
describe "#find" do
it "should retrieve a monitor by id" do
received_monitor = @ragios.find(@monitor_id)
@@ -128,11 +158,11 @@
expect { @ragios.test("dont_exist") }.to raise_error(Ragios::ClientException, generate_json(error: "No monitor found with id = dont_exist"))
end
end
describe "#delete" do
it "deletes a monitor" do
- new_monitor_id = @ragios.add(@monitor)[:_id]
+ new_monitor_id = @ragios.create(@monitor)[:_id]
@ragios.delete(new_monitor_id).should == {ok: true}
end
it "cannot delete a monitor that doesnt exist" do
this_monitor_id = "dont_exist"
expect{ @ragios.find(this_monitor_id) }.to raise_error(Ragios::ClientException, generate_json(error: "No monitor found with id = #{this_monitor_id}"))
@@ -154,33 +184,36 @@
it "cannot stop a monitor that dont exist" do
this_monitor_id = "dont_exist"
expect { @ragios.stop(this_monitor_id) }.to raise_error(Ragios::ClientException, generate_json(error: "No monitor found with id = #{this_monitor_id}"))
end
end
- describe "#restart" do
- it "restarts a stopped monitor" do
+ describe "#start" do
+ it "starts a stopped monitor" do
@ragios.stop(@monitor_id)
stopped_monitor = @ragios.find(@monitor_id)
stopped_monitor[:status_].should == "stopped"
- @ragios.restart(@monitor_id).should == {ok: true}
+ @ragios.start(@monitor_id).should == {ok: true}
active_monitor = @ragios.find(@monitor_id)
active_monitor[:status_].should == "active"
- #restart monitor is idempotent
- @ragios.restart(@monitor_id).should == {ok: true}
+ #start monitor is idempotent
+ @ragios.start(@monitor_id).should == {ok: true}
end
- it "cannot restart a monitor that dont exist" do
+ it "cannot start a monitor that dont exist" do
this_monitor_id = "dont_exist"
- expect { @ragios.restart(this_monitor_id) }.to raise_error(Ragios::ClientException, generate_json(error: "No monitor found with id = #{this_monitor_id}"))
+ expect { @ragios.start(this_monitor_id) }.to raise_error(Ragios::ClientException, generate_json(error: "No monitor found with id = #{this_monitor_id}"))
end
end
describe "#all" do
it "retrieves all monitors" do
retrieved_monitors = @ragios.all
retrieved_monitors.should_not be_empty
retrieved_monitors.should be_an_instance_of Array
+ end
+ it "can limit the number of monitors retrieved" do
+ @ragios.all(limit = 1).count.should == 1
end
end
after(:each) do
@ragios.delete(@monitor_id)
end