Sha256: 630d25dad1d7b8637258a858abd1640c81f32b6cb20be0839e929e6058d67f3c
Contents?: true
Size: 1.7 KB
Versions: 1
Compression:
Stored size: 1.7 KB
Contents
require 'spec_helper' describe "Publishing an event in the future" do before(:each) do Timecop.freeze(now) QueueBus.stub(:generate_uuid).and_return("idfhlkj") end after(:each) do Timecop.return end let(:delayed_attrs) { {"bus_delayed_until" => future.to_i, "bus_id" => "#{now.to_i}-idfhlkj", "bus_app_hostname" => `hostname 2>&1`.strip.sub(/.local/,'')} } let(:bus_attrs) { delayed_attrs.merge({"bus_published_at" => worktime.to_i})} let(:now) { Time.parse("01/01/2013 5:00")} let(:future) { Time.at(now.to_i + 60) } let(:worktime) {Time.at(future.to_i + 1)} it "should add it to Redis then to the real queue" do hash = {:one => 1, "two" => "here", "id" => 12 } event_name = "event_name" QueueBus.publish_at(future, event_name, hash) schedule = QueueBus.redis { |redis| redis.zrange("delayed_queue_schedule", 0, 1) } schedule.should == [future.to_i.to_s] val = QueueBus.redis { |redis| redis.lpop("delayed:#{future.to_i}") } hash = JSON.parse(val) hash["class"].should == "QueueBus::Publisher" hash["args"].should == [ {"bus_event_type"=>"event_name", "two"=>"here", "one"=>1, "id" => 12}.merge(delayed_attrs) ] hash["queue"].should == "bus_incoming" val = QueueBus.redis { |redis| redis.lpop("queue:bus_incoming") } val.should == nil # nothing really added Timecop.freeze(worktime) QueueBus::Publisher.perform(*hash["args"]) val = QueueBus.redis { |redis| redis.lpop("queue:bus_incoming") } hash = JSON.parse(val) hash["class"].should == "QueueBus::Driver" hash["args"].should == [ {"bus_event_type"=>"event_name", "two"=>"here", "one"=>1, "id" => 12}.merge(bus_attrs) ] end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
queue-bus-0.5.0 | spec/adapter/publish_at_spec.rb |