-
Notifications
You must be signed in to change notification settings - Fork 0
/
stubbedMessage_test.go
304 lines (218 loc) · 6.99 KB
/
stubbedMessage_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
package runamqp
import "testing"
func TestStubMessage_Body(t *testing.T) {
msg := NewStubMessage("some message")
if string(msg.Body()) != "some message" {
t.Error("body dont werk")
}
}
func TestStubMessage_Ack(t *testing.T) {
t.Run("Should ack message not acked previously", func(t *testing.T) {
msg := NewStubMessage("msg")
if msg.AckCalled() {
t.Error("Ack should NOT have been called at this point")
}
err := msg.Ack()
if err != nil {
t.Error("Should have been able to successfully Ack the message", err)
}
if !msg.AckCalled() {
t.Error("Message should have been Acked but it was not")
}
})
t.Run("Should NOT ack message previously acked", func(t *testing.T) {
msg := NewStubMessage("msg")
if msg.AckCalled() {
t.Error("Ack should NOT have been called at this point")
}
err := msg.Ack()
if err != nil {
t.Error("Should have been able to successfully Ack the message", err)
}
if !msg.AckCalled() {
t.Error("Expect ack count to be 1")
}
err = msg.Ack()
if err == nil {
t.Error("Should NOT have been able to Ack a message that has been Acked previously")
}
})
t.Run("Should NOT ack message previously nacked", func(t *testing.T) {
msg := NewStubMessage("msg")
if msg.AckCalled() {
t.Error("Ack should NOT have been called at this point")
}
err := msg.Nack("Nacking reason")
if err != nil {
t.Error("Should have been able to successfully Nack the message", err)
}
if msg.AckCalled() {
t.Error("Ack should NOT have been called at this point")
}
err = msg.Ack()
if err == nil {
t.Error("Should NOT have been able to Ack a message that has been Nacked previously")
}
})
t.Run("Should NOT ack message previously requeued", func(t *testing.T) {
msg := NewStubMessage("msg")
if msg.AckCalled() {
t.Error("Ack should NOT have been called at this point")
}
err := msg.Requeue("Requeuing reason")
if err != nil {
t.Error("Should have been able to successfully Nack the message", err)
}
if msg.AckCalled() {
t.Error("Ack should NOT have been called at this point")
}
err = msg.Ack()
if err == nil {
t.Error("Should NOT have been able to Ack a message that has been Reqeued previously")
}
})
}
func TestStubMessage_Nack(t *testing.T) {
t.Run("Should nack message NOT nacked previosly", func(t *testing.T) {
msg := NewStubMessage("msg")
if msg.NackCalled() {
t.Error("Nack should NOT have been called at this point")
}
err := msg.Nack("successful nack")
if err != nil {
t.Error("Should have been able to successfully Nack the message", err)
}
if !msg.NackCalled() {
t.Error("Nack should have been called at this point")
}
if !msg.NackedWith("successful nack") {
t.Error("Expected nack reason to be recorded")
}
})
t.Run("Should NOT nack message previously nacked", func(t *testing.T) {
msg := NewStubMessage("msg")
if msg.NackCalled() {
t.Error("Nack should NOT have been called at this point")
}
err := msg.Nack("successful nack")
if err != nil {
t.Error("Should have been able to successfully Nack the message", err)
}
if !msg.NackCalled() {
t.Error("Nack should have been called at this point")
}
if !msg.NackedWith("successful nack") {
t.Error("Expected nack reason to be recorded")
}
err = msg.Nack("unsuccessful nack")
if err == nil {
t.Error("Should NOT have been able to call the Nack when it was Nacked previously", err)
}
})
t.Run("Should NOT nack message previously acked", func(t *testing.T) {
msg := NewStubMessage("msg")
if msg.NackCalled() {
t.Error("Nack should NOT have been called at this point")
}
err := msg.Ack()
if err != nil {
t.Error("Should have been able to successfully Ack the message", err)
}
if msg.NackCalled() {
t.Error("Nack should NOT have been called at this point")
}
err = msg.Nack("unsuccessful nack")
if err == nil {
t.Error("Should NOT have been able to call the Nack when it was Acked previously")
}
})
t.Run("Should NOT nack message previously requeued", func(t *testing.T) {
msg := NewStubMessage("msg")
if msg.NackCalled() {
t.Error("Nack should NOT have been called at this point")
}
err := msg.Requeue("successful nack")
if err != nil {
t.Error("Should have been able to successfully Requeue the message", err)
}
if msg.NackCalled() {
t.Error("Nack should NOT have been called at this point")
}
err = msg.Nack("unsuccessful nack")
if err == nil {
t.Error("Should NOT have been able to call the Nack when it was Nacked previously")
}
})
}
func TestStubMessage_Requeue(t *testing.T) {
t.Run("Should requeue message Not requeued previously", func(t *testing.T) {
msg := NewStubMessage("msg")
if msg.RequeueCalled() {
t.Error("Requeue should NOT have been called at this point")
}
err := msg.Requeue("successful requeue")
if err != nil {
t.Error("Should have been able to successfully Requeue the message", err)
}
if !msg.RequeueCalled() {
t.Error("Requeue should have been called at this point")
}
if !msg.RequeuedWith("successful requeue") {
t.Error("Expected requeue to been called with poo but it was not called.")
}
})
t.Run("Should NOT requeue message previously requeued", func(t *testing.T) {
msg := NewStubMessage("msg")
if msg.RequeueCalled() {
t.Error("Requeue should NOT have been called at this point")
}
err := msg.Requeue("successful requeue")
if err != nil {
t.Error("Should have been able to successfully Requeue the message", err)
}
if !msg.RequeueCalled() {
t.Error("Requeue should have been called at this point")
}
if !msg.RequeuedWith("successful requeue") {
t.Error("Expected requeue to been called with poo but it was not called.")
}
err = msg.Requeue("unsuccessful requeue")
if err == nil {
t.Error("Should NOT have been able to Requeue the message when it was Requeued previously")
}
})
t.Run("Should NOT requeue message previously acked", func(t *testing.T) {
msg := NewStubMessage("msg")
if msg.RequeueCalled() {
t.Error("Requeue should NOT have been called at this point")
}
err := msg.Ack()
if err != nil {
t.Error("Should have been able to successfully Ack the message", err)
}
if msg.RequeueCalled() {
t.Error("Requeue should NOT have been called at this point")
}
err = msg.Requeue("unsuccessful requeue")
if err == nil {
t.Error("Should NOT have been able to Requeue the message when it was Acked previously")
}
})
t.Run("Should NOT requeue message previously nacked", func(t *testing.T) {
msg := NewStubMessage("msg")
if msg.RequeueCalled() {
t.Error("Requeue should NOT have been called at this point")
}
err := msg.Nack("successful nack")
if err != nil {
t.Error("Should have been able to successfully Nack the message", err)
}
if msg.RequeueCalled() {
t.Error("Requeue should NOT have been called at this point")
}
err = msg.Requeue("unsuccessful requeue")
if err == nil {
t.Error("Should NOT have been able to Requeue the message when it was Nacked previously")
}
})
}