Module: Ag::Spec::Adapter
- Defined in:
- lib/ag/spec/adapter.rb
Instance Method Summary collapse
- #test_connect ⇒ Object
- #test_connected ⇒ Object
- #test_consumers ⇒ Object
- #test_consumers_limit ⇒ Object
- #test_consumers_offset ⇒ Object
- #test_produce ⇒ Object
- #test_producers ⇒ Object
- #test_producers_limit ⇒ Object
- #test_producers_offset ⇒ Object
- #test_timeline ⇒ Object
- #test_timeline_limit ⇒ Object
- #test_timeline_offset ⇒ Object
Instance Method Details
#test_connect ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 |
# 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 ⇒ Object
38 39 40 41 42 43 44 45 |
# 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 ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 |
# 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 ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 |
# 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 ⇒ Object
73 74 75 76 77 78 79 80 81 82 |
# 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 ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# 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 ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# 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 ⇒ Object
100 101 102 103 104 105 106 107 108 109 110 |
# 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 ⇒ Object
112 113 114 115 116 117 118 119 120 121 |
# 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 ⇒ Object
123 124 125 126 127 128 129 130 131 132 |
# 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 ⇒ Object
134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
# 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 ⇒ Object
156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 |
# 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 |