|
1 | 1 | describe ::ActivePublisher::Async::RedisAdapter::RedisMultiPopQueue do |
2 | 2 | let(:list_key) { ::ActivePublisher::Async::RedisAdapter::REDIS_LIST_KEY } |
3 | 3 | let(:redis_pool) { ::ConnectionPool.new(:size => 5) { ::Redis.new } } |
| 4 | + let(:message) { ::ActivePublisher::Message.new('rtg.key', 'payload', 'some.exchange', {})} |
| 5 | + let(:ten_messages) { 10.times.map { message } } |
4 | 6 | subject { described_class.new(redis_pool, list_key) } |
5 | 7 |
|
6 | 8 | describe "initialize with a redis_pool and list_key" do |
|
13 | 15 |
|
14 | 16 | describe "#<<" do |
15 | 17 | it "pushes 1 item on the list" do |
16 | | - subject << "derp" |
| 18 | + subject << message |
17 | 19 | expect(subject.size).to be 1 |
18 | | - expect(subject.pop_up_to(100)).to eq(["derp"]) |
| 20 | + expect(subject.pop_up_to(100)).to eq([message]) |
19 | 21 | end |
20 | 22 |
|
21 | 23 | it "pushes 10 items on the list" do |
22 | 24 | 10.times do |
23 | | - subject << "derp" |
| 25 | + subject << message |
24 | 26 | end |
25 | 27 |
|
26 | 28 | expect(subject.size).to be 10 |
27 | | - expect(subject.pop_up_to(100)).to eq([ |
28 | | - "derp", |
29 | | - "derp", |
30 | | - "derp", |
31 | | - "derp", |
32 | | - "derp", |
33 | | - "derp", |
34 | | - "derp", |
35 | | - "derp", |
36 | | - "derp", |
37 | | - "derp", |
38 | | - ]) |
| 29 | + expect(subject.pop_up_to(100)).to eq(ten_messages) |
39 | 30 | end |
40 | 31 | end |
41 | 32 |
|
|
45 | 36 | end |
46 | 37 |
|
47 | 38 | it "pushes 1 item on the list" do |
48 | | - subject.concat("derp") |
| 39 | + subject.concat(message) |
49 | 40 | expect(subject.size).to be 1 |
50 | | - expect(subject.pop_up_to(100)).to eq(["derp"]) |
| 41 | + expect(subject.pop_up_to(100)).to eq([message]) |
51 | 42 | end |
52 | 43 |
|
53 | 44 | it "pushes 10 items on the list" do |
54 | 45 | 10.times do |
55 | | - subject.concat("derp") |
| 46 | + subject.concat(message) |
56 | 47 | end |
57 | 48 |
|
58 | 49 | expect(subject.size).to be 10 |
59 | | - expect(subject.pop_up_to(100)).to eq([ |
60 | | - "derp", |
61 | | - "derp", |
62 | | - "derp", |
63 | | - "derp", |
64 | | - "derp", |
65 | | - "derp", |
66 | | - "derp", |
67 | | - "derp", |
68 | | - "derp", |
69 | | - "derp", |
70 | | - ]) |
| 50 | + expect(subject.pop_up_to(100)).to eq(ten_messages) |
71 | 51 | end |
72 | 52 |
|
73 | 53 | it "pushes 10 items on the list in single concat" do |
74 | | - subject.concat("derp", |
75 | | - "derp", |
76 | | - "derp", |
77 | | - "derp", |
78 | | - "derp", |
79 | | - "derp", |
80 | | - "derp", |
81 | | - "derp", |
82 | | - "derp", |
83 | | - "derp") |
| 54 | + subject.concat(message, |
| 55 | + message, |
| 56 | + message, |
| 57 | + message, |
| 58 | + message, |
| 59 | + message, |
| 60 | + message, |
| 61 | + message, |
| 62 | + message, |
| 63 | + message) |
84 | 64 |
|
85 | 65 | expect(subject.size).to be 10 |
86 | | - expect(subject.pop_up_to(100)).to eq([ |
87 | | - "derp", |
88 | | - "derp", |
89 | | - "derp", |
90 | | - "derp", |
91 | | - "derp", |
92 | | - "derp", |
93 | | - "derp", |
94 | | - "derp", |
95 | | - "derp", |
96 | | - "derp", |
97 | | - ]) |
| 66 | + expect(subject.pop_up_to(100)).to eq(ten_messages) |
98 | 67 | end |
99 | 68 |
|
100 | 69 | it "pushes 10 items on the list in single concat (with array)" do |
101 | | - array = [ |
102 | | - "derp", |
103 | | - "derp", |
104 | | - "derp", |
105 | | - "derp", |
106 | | - "derp", |
107 | | - "derp", |
108 | | - "derp", |
109 | | - "derp", |
110 | | - "derp", |
111 | | - "derp" |
112 | | - ] |
113 | | - |
114 | | - subject.concat(array) |
| 70 | + subject.concat(ten_messages) |
115 | 71 | expect(subject.size).to be 10 |
116 | | - expect(subject.pop_up_to(100)).to eq([ |
117 | | - "derp", |
118 | | - "derp", |
119 | | - "derp", |
120 | | - "derp", |
121 | | - "derp", |
122 | | - "derp", |
123 | | - "derp", |
124 | | - "derp", |
125 | | - "derp", |
126 | | - "derp", |
127 | | - ]) |
| 72 | + expect(subject.pop_up_to(100)).to eq(ten_messages) |
128 | 73 | end |
129 | 74 | end |
130 | 75 |
|
|
135 | 80 |
|
136 | 81 | it "is false when a single item is inserted to the list_key List" do |
137 | 82 | redis_pool.with do |redis| |
138 | | - redis.rpush(list_key, "derp") |
| 83 | + redis.rpush(list_key, message.to_json) |
139 | 84 | end |
140 | 85 |
|
141 | 86 | expect(subject.empty?).to be false |
|
144 | 89 | it "is false when ten items are inserted to the list_key List" do |
145 | 90 | redis_pool.with do |redis| |
146 | 91 | 10.times do |
147 | | - redis.rpush(list_key, "derp") |
| 92 | + redis.rpush(list_key, message.to_json) |
148 | 93 | end |
149 | 94 | end |
150 | 95 |
|
|
159 | 104 |
|
160 | 105 | it "returns 1 item when a single item is inserted to the list_key List" do |
161 | 106 | redis_pool.with do |redis| |
162 | | - redis.rpush(list_key, ::Marshal.dump("derp")) |
| 107 | + redis.rpush(list_key, message.to_json) |
163 | 108 | end |
164 | 109 |
|
165 | | - expect(subject.pop_up_to(100)).to eq(["derp"]) |
| 110 | + expect(subject.pop_up_to(100)).to eq([message]) |
166 | 111 | end |
167 | 112 |
|
168 | 113 | it "is 10 when ten items are inserted to the list_key List" do |
169 | 114 | redis_pool.with do |redis| |
170 | 115 | 10.times do |
171 | | - redis.rpush(list_key, ::Marshal.dump("derp")) |
| 116 | + redis.rpush(list_key, message.to_json) |
172 | 117 | end |
173 | 118 | end |
174 | 119 |
|
175 | | - expect(subject.pop_up_to(100)).to eq([ |
176 | | - "derp", |
177 | | - "derp", |
178 | | - "derp", |
179 | | - "derp", |
180 | | - "derp", |
181 | | - "derp", |
182 | | - "derp", |
183 | | - "derp", |
184 | | - "derp", |
185 | | - "derp", |
186 | | - ]) |
| 120 | + expect(subject.pop_up_to(100)).to eq(ten_messages) |
187 | 121 | end |
188 | 122 | end |
189 | 123 |
|
|
194 | 128 |
|
195 | 129 | it "returns 1 item when a single item is inserted to the list_key List" do |
196 | 130 | redis_pool.with do |redis| |
197 | | - redis.rpush(list_key, ::Marshal.dump("derp")) |
| 131 | + redis.rpush(list_key, message.to_json) |
198 | 132 | end |
199 | 133 |
|
200 | | - expect(subject.shift(100)).to eq(["derp"]) |
| 134 | + expect(subject.shift(100)).to eq([message]) |
201 | 135 | end |
202 | 136 |
|
203 | 137 | it "is 10 when ten items are inserted to the list_key List" do |
204 | 138 | redis_pool.with do |redis| |
205 | 139 | 10.times do |
206 | | - redis.rpush(list_key, ::Marshal.dump("derp")) |
| 140 | + redis.rpush(list_key, message.to_json) |
207 | 141 | end |
208 | 142 | end |
209 | 143 |
|
210 | | - expect(subject.shift(100)).to eq([ |
211 | | - "derp", |
212 | | - "derp", |
213 | | - "derp", |
214 | | - "derp", |
215 | | - "derp", |
216 | | - "derp", |
217 | | - "derp", |
218 | | - "derp", |
219 | | - "derp", |
220 | | - "derp", |
221 | | - ]) |
| 144 | + expect(subject.shift(100)).to eq(ten_messages) |
222 | 145 | end |
223 | 146 | end |
224 | 147 |
|
|
229 | 152 |
|
230 | 153 | it "is 1 when a single item is inserted to the list_key List" do |
231 | 154 | redis_pool.with do |redis| |
232 | | - redis.rpush(list_key, "derp") |
| 155 | + redis.rpush(list_key, message.to_json) |
233 | 156 | end |
234 | 157 |
|
235 | 158 | expect(subject.size).to be 1 |
|
0 commit comments