@@ -75,75 +75,6 @@ func TestNewQueueWithDefaultWorker(t *testing.T) {
75
75
assert .Equal (t , 0 , q .BusyWorkers ())
76
76
}
77
77
78
- func TestShtdonwOnce (t * testing.T ) {
79
- w := & messageWorker {
80
- messages : make (chan core.QueuedMessage , 100 ),
81
- }
82
- q , err := NewQueue (
83
- WithWorker (w ),
84
- WithWorkerCount (2 ),
85
- )
86
- assert .NoError (t , err )
87
- assert .NotNil (t , q )
88
-
89
- q .Start ()
90
- assert .Equal (t , 0 , q .BusyWorkers ())
91
- q .Shutdown ()
92
- // don't panic here
93
- q .Shutdown ()
94
- q .Wait ()
95
- assert .Equal (t , 0 , q .BusyWorkers ())
96
- }
97
-
98
- func TestCapacityReached (t * testing.T ) {
99
- w := & messageWorker {
100
- messages : make (chan core.QueuedMessage , 1 ),
101
- }
102
- q , err := NewQueue (
103
- WithWorker (w ),
104
- WithWorkerCount (5 ),
105
- WithLogger (NewEmptyLogger ()),
106
- )
107
- assert .NoError (t , err )
108
- assert .NotNil (t , q )
109
-
110
- assert .NoError (t , q .Queue (mockMessage {
111
- message : "foobar" ,
112
- }))
113
- // max capacity reached
114
- assert .Error (t , q .Queue (mockMessage {
115
- message : "foobar" ,
116
- }))
117
- }
118
-
119
- func TestCloseQueueAfterShutdown (t * testing.T ) {
120
- w := & messageWorker {
121
- messages : make (chan core.QueuedMessage , 10 ),
122
- }
123
- q , err := NewQueue (
124
- WithWorker (w ),
125
- WithWorkerCount (5 ),
126
- WithLogger (NewEmptyLogger ()),
127
- )
128
- assert .NoError (t , err )
129
- assert .NotNil (t , q )
130
-
131
- assert .NoError (t , q .Queue (mockMessage {
132
- message : "foobar" ,
133
- }))
134
- q .Shutdown ()
135
- err = q .Queue (mockMessage {
136
- message : "foobar" ,
137
- })
138
- assert .Error (t , err )
139
- assert .Equal (t , ErrQueueShutdown , err )
140
- err = q .Queue (mockMessage {
141
- message : "foobar" ,
142
- }, job .WithTimeout (10 * time .Millisecond ))
143
- assert .Error (t , err )
144
- assert .Equal (t , ErrQueueShutdown , err )
145
- }
146
-
147
78
func TestHandleTimeout (t * testing.T ) {
148
79
m := & job.Message {
149
80
Timeout : 100 * time .Millisecond ,
@@ -258,3 +189,26 @@ func TestTaskJobComplete(t *testing.T) {
258
189
}
259
190
assert .Equal (t , context .DeadlineExceeded , q .handle (m ))
260
191
}
192
+
193
+ func TestMockWorkerAndMessage (t * testing.T ) {
194
+ controller := gomock .NewController (t )
195
+ defer controller .Finish ()
196
+
197
+ m := mocks .NewMockQueuedMessage (controller )
198
+
199
+ w := mocks .NewMockWorker (controller )
200
+ w .EXPECT ().Shutdown ().Return (nil )
201
+ w .EXPECT ().Request ().DoAndReturn (func () (core.QueuedMessage , error ) {
202
+ return m , errors .New ("nil" )
203
+ })
204
+
205
+ q , err := NewQueue (
206
+ WithWorker (w ),
207
+ WithWorkerCount (1 ),
208
+ )
209
+ assert .NoError (t , err )
210
+ assert .NotNil (t , q )
211
+ q .Start ()
212
+ time .Sleep (50 * time .Millisecond )
213
+ q .Release ()
214
+ }
0 commit comments