1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- require 'spec_helper'
- describe Agents::PostAgent do
- before do
- @valid_params = {
- :name => "somename",
- :options => {
- :post_url => "http://www.example.com",
- :expected_receive_period_in_days => 1
- }
- }
- @checker = Agents::PostAgent.new(@valid_params)
- @checker.user = users(:jane)
- @checker.save!
- @event = Event.new
- @event.agent = agents(:jane_weather_agent)
- @event.payload = {
- :somekey => "somevalue",
- :someotherkey => {
- :somekey => "value"
- }
- }
- @sent_messages = []
- stub.any_instance_of(Agents::PostAgent).post_event { |uri,event| @sent_messages << event}
- end
- describe "#receive" do
- it "checks if it can handle multiple events" do
- event1 = Event.new
- event1.agent = agents(:bob_weather_agent)
- event1.payload = {
- :xyz => "value1",
- :message => "value2"
- }
- lambda {
- @checker.receive([@event,event1])
- }.should change { @sent_messages.length }.by(2)
- end
- end
- describe "#working?" do
- it "checks if events have been received within expected receive period" do
- @checker.should_not be_working
- Agents::PostAgent.async_receive @checker.id, [@event.id]
- @checker.reload.should be_working
- two_days_from_now = 2.days.from_now
- stub(Time).now { two_days_from_now }
- @checker.reload.should_not be_working
- end
- end
- describe "validation" do
- before do
- @checker.should be_valid
- end
- it "should validate presence of post_url" do
- @checker.options[:post_url] = ""
- @checker.should_not be_valid
- end
- it "should validate presence of expected_receive_period_in_days" do
- @checker.options[:expected_receive_period_in_days] = ""
- @checker.should_not be_valid
- end
- end
- end
|