module Ag::Spec::Adapter

Public Instance Methods

test_connect() click to toggle source
# File lib/ag/spec/adapter.rb, line 4
def test_connect
  consumer = Ag::Object.new("User", "1")
  producer = Ag::Object.new("User", "2")

  adapter.connect(consumer, producer)

  connection = connections.first
  assert_equal consumer.id, connection.consumer.id
  assert_equal consumer.type, connection.consumer.type
  assert_equal producer.id, connection.producer.id
  assert_equal producer.type, connection.producer.type
  assert_in_delta Time.now.utc, connection.created_at, 1
end
test_connected() click to toggle source
# File lib/ag/spec/adapter.rb, line 38
def test_connected
  consumer = Ag::Object.new("User", "1")
  producer = Ag::Object.new("User", "2")
  connect(consumer, producer)

  assert_equal true, adapter.connected?(consumer, producer)
  assert_equal false, adapter.connected?(producer, consumer)
end
test_consumers() click to toggle source
# File lib/ag/spec/adapter.rb, line 47
def test_consumers
  consumer1 = Ag::Object.new("User", "1")
  consumer2 = Ag::Object.new("User", "2")
  consumer3 = Ag::Object.new("User", "3")
  producer = Ag::Object.new("User", "4")
  connect(consumer1, producer)
  connect(consumer2, producer)

  consumers = adapter.consumers(producer)
  assert_equal 2, consumers.size
  assert_equal "2", consumers[0].consumer.id
  assert_equal "1", consumers[1].consumer.id
end
test_consumers_limit() click to toggle source
# File lib/ag/spec/adapter.rb, line 61
def test_consumers_limit
  producer = Ag::Object.new("User", "99")
  consumers = (1..10).to_a.map { |n|
    Ag::Object.new("User", n.to_s).tap { |consumer|
      connect consumer, producer
    }
  }
  assert_equal 5, adapter.consumers(producer, limit: 5).size
  assert_equal consumers[5..9].reverse,
    adapter.consumers(producer, limit: 5).map(&:consumer)
end
test_consumers_offset() click to toggle source
# File lib/ag/spec/adapter.rb, line 73
def test_consumers_offset
  producer = Ag::Object.new("User", "99")
  consumers = (1..10).to_a.map { |n|
    Ag::Object.new("User", n.to_s).tap { |consumer|
      connect consumer, producer
    }
  }
  assert_equal consumers[0..4].reverse,
    adapter.consumers(producer, offset: 5).map(&:consumer)
end
test_produce() click to toggle source
# File lib/ag/spec/adapter.rb, line 18
def test_produce
  producer = Ag::Object.new("User", "1")
  object = Ag::Object.new("User", "2")
  event = Ag::Event.new({
    producer: producer,
    object: object,
    verb: "follow",
  })

  result = adapter.produce(event)

  event = events.first
  assert_equal event.id, result.id
  assert_equal producer.id, event.producer.id
  assert_equal producer.type, event.producer.type
  assert_equal object.id, event.object.id
  assert_equal object.type, event.object.type
  assert_in_delta Time.now.utc, event.created_at, 1
end
test_producers() click to toggle source
# File lib/ag/spec/adapter.rb, line 84
def test_producers
  consumer1 = Ag::Object.new("User", "1")
  consumer2 = Ag::Object.new("User", "2")
  producer1 = Ag::Object.new("User", "3")
  producer2 = Ag::Object.new("User", "4")
  producer3 = Ag::Object.new("User", "5")
  connect(consumer1, producer1)
  connect(consumer1, producer2)
  connect(consumer2, producer3)

  producers = adapter.producers(consumer1)
  assert_equal 2, producers.size
  assert_equal "4", producers[0].producer.id
  assert_equal "3", producers[1].producer.id
end
test_producers_limit() click to toggle source
# File lib/ag/spec/adapter.rb, line 100
def test_producers_limit
  consumer = Ag::Object.new("User", "99")
  producers = (1..10).to_a.map { |n|
    Ag::Object.new("User", n.to_s).tap { |producer|
      connect consumer, producer
    }
  }
  assert_equal 5, adapter.producers(consumer, limit: 5).size
  assert_equal producers[5..9].reverse,
    adapter.producers(consumer, limit: 5).map(&:producer)
end
test_producers_offset() click to toggle source
# File lib/ag/spec/adapter.rb, line 112
def test_producers_offset
  consumer = Ag::Object.new("User", "99")
  producers = (1..10).to_a.map { |n|
    Ag::Object.new("User", n.to_s).tap { |producer|
      connect consumer, producer
    }
  }
  assert_equal producers[0..4].reverse,
    adapter.producers(consumer, offset: 5).map(&:producer)
end
test_timeline() click to toggle source
# File lib/ag/spec/adapter.rb, line 123
def test_timeline
  john = Ag::Object.new("User", "1")
  steve = Ag::Object.new("User", "2")
  presentation = Ag::Object.new("Presentation", "1")
  connect john, steve
  produce Ag::Event.new(producer: steve, object: presentation, verb: "publish")

  events = adapter.timeline(john)
  assert_equal 1, events.size
end
test_timeline_limit() click to toggle source
# File lib/ag/spec/adapter.rb, line 134
def test_timeline_limit
  john = Ag::Object.new("User", "1")
  steve = Ag::Object.new("User", "2")
  connect john, steve

  presentations = (1..10).to_a.map { |n|
    Ag::Object.new("Presentation", n.to_s)
  }

  presentations.each do |presentation|
    produce Ag::Event.new({
      producer: steve,
      object: presentation,
      verb: "publish",
    })
  end

  events = adapter.timeline(john, limit: 5)
  assert_equal 5, events.size
  assert_equal presentations[5..9].reverse, events.map(&:object)
end
test_timeline_offset() click to toggle source
# File lib/ag/spec/adapter.rb, line 156
def test_timeline_offset
  john = Ag::Object.new("User", "1")
  steve = Ag::Object.new("User", "2")
  connect john, steve

  presentations = (1..10).to_a.map { |n|
    Ag::Object.new("Presentation", n.to_s)
  }

  presentations.each do |presentation|
    produce Ag::Event.new({
      producer: steve,
      object: presentation,
      verb: "publish",
    })
  end

  events = adapter.timeline(john, offset: 5)
  assert_equal 5, events.size
  assert_equal presentations[0..4].reverse, events.map(&:object)
end