class FakeServiceBus::Message

Attributes

body[R]
delay_seconds[R]
delivery_count[R]
enqueued_timestamp[R]
location[R]
lock_token[R]
locked_until[RW]
queue_name[R]
sequence_number[R]

Public Class Methods

new(options = {}) click to toggle source
# File lib/fake_servicebus/message.rb, line 11
def initialize(options = {})
  @queue_name = options.fetch("queue_name")
  @body = options.fetch("body")
  @sequence_number = options.fetch("sequence_number") { SecureRandom.random_number(9e5).to_i }
  @lock_token = options.fetch("lock_token") { SecureRandom.uuid }
  @location = "https://fake_servicebus/#{@queue_name}/messages/#{@sequence_number}/#{@lock_token}"
  @delivery_count = 0
  @enqueued_timestamp = Time.now.to_i * 1000
  #@delay_seconds = options.fetch("DelaySeconds", 0).to_i
end

Public Instance Methods

attributes() click to toggle source
# File lib/fake_servicebus/message.rb, line 47
def attributes
  {
    "QueueName"=> queue_name,
    "SequenceNumber"=> sequence_number,
    "LockToken"=> lock_token,
    "Location"=> location,
    "DeliveryCount"=> delivery_count,
    "EnqueuedTimestamp"=> enqueued_timestamp
  }
end
expire!() click to toggle source
# File lib/fake_servicebus/message.rb, line 22
def expire!
  self.locked_until = nil
end
expire_at(seconds) click to toggle source
# File lib/fake_servicebus/message.rb, line 34
def expire_at(seconds)
  self.locked_until = Time.now + seconds
end
expired?( limit = Time.now ) click to toggle source
# File lib/fake_servicebus/message.rb, line 30
def expired?( limit = Time.now )
  self.locked_until.nil? || self.locked_until < limit
end
published?() click to toggle source
# File lib/fake_servicebus/message.rb, line 38
def published?
  if self.delay_seconds && self.delay_seconds > 0
    elapsed_seconds = Time.now.to_i - (self.enqueued_timestamp.to_i / 1000)
    elapsed_seconds >= self.delay_seconds
  else
    true
  end
end
receive!() click to toggle source
# File lib/fake_servicebus/message.rb, line 26
def receive!
  @delivery_count += 1
end