@@ -26,6 +26,8 @@ import (
2626 "testing"
2727 "time"
2828
29+ "go.uber.org/zap/zaptest/observer"
30+
2931 "go.uber.org/cadence/internal/common/testlogger"
3032
3133 "github.com/golang/mock/gomock"
@@ -111,21 +113,22 @@ func TestWorkflowTaskPoller(t *testing.T) {
111113}
112114
113115func TestActivityTaskPoller (t * testing.T ) {
116+ task := & s.PollForActivityTaskResponse {
117+ TaskToken : []byte ("some value" ),
118+ AutoConfigHint : & s.AutoConfigHint {
119+ common .PtrOf (true ),
120+ common .PtrOf (int64 (1000 )),
121+ },
122+ }
123+ emptyTask := & s.PollForActivityTaskResponse {
124+ TaskToken : nil ,
125+ AutoConfigHint : & s.AutoConfigHint {
126+ common .PtrOf (true ),
127+ common .PtrOf (int64 (1000 )),
128+ },
129+ }
114130 t .Run ("PollTask" , func (t * testing.T ) {
115- task := & s.PollForActivityTaskResponse {
116- TaskToken : []byte ("some value" ),
117- AutoConfigHint : & s.AutoConfigHint {
118- common .PtrOf (true ),
119- common .PtrOf (int64 (1000 )),
120- },
121- }
122- emptyTask := & s.PollForActivityTaskResponse {
123- TaskToken : nil ,
124- AutoConfigHint : & s.AutoConfigHint {
125- common .PtrOf (true ),
126- common .PtrOf (int64 (1000 )),
127- },
128- }
131+
129132 for _ , tt := range []struct {
130133 name string
131134 response * s.PollForActivityTaskResponse
@@ -147,7 +150,7 @@ func TestActivityTaskPoller(t *testing.T) {
147150 },
148151 } {
149152 t .Run (tt .name , func (t * testing.T ) {
150- poller , client := buildActivityTaskPoller (t )
153+ poller , client , _ := buildActivityTaskPoller (t )
151154 client .EXPECT ().PollForActivityTask (gomock .Any (), gomock .Any (), gomock .Any ()).Return (tt .response , nil )
152155 result , err := poller .PollTask ()
153156 assert .NoError (t , err )
@@ -157,6 +160,12 @@ func TestActivityTaskPoller(t *testing.T) {
157160 })
158161 }
159162 })
163+ t .Run ("ProcessTask Empty Task" , func (t * testing.T ) {
164+ poller , _ , obs := buildActivityTaskPoller (t )
165+ err := poller .ProcessTask (& activityTask {task : emptyTask })
166+ assert .NoError (t , err )
167+ assert .Len (t , obs .FilterMessage ("Activity task unavailable" ).All (), 1 )
168+ })
160169}
161170
162171func TestLocalActivityPanic (t * testing.T ) {
@@ -312,9 +321,10 @@ func buildWorkflowTaskPoller(t *testing.T) (*workflowTaskPoller, *workflowservic
312321 }, mockService , taskHandler , lda
313322}
314323
315- func buildActivityTaskPoller (t * testing.T ) (* activityTaskPoller , * workflowservicetest.MockClient ) {
324+ func buildActivityTaskPoller (t * testing.T ) (* activityTaskPoller , * workflowservicetest.MockClient , * observer. ObservedLogs ) {
316325 ctrl := gomock .NewController (t )
317326 mockService := workflowservicetest .NewMockClient (ctrl )
327+ logger , obs := testlogger .NewObserved (t )
318328 return & activityTaskPoller {
319329 basePoller : basePoller {
320330 shutdownC : make (<- chan struct {}),
@@ -324,7 +334,7 @@ func buildActivityTaskPoller(t *testing.T) (*activityTaskPoller, *workflowservic
324334 identity : _testIdentity ,
325335 service : mockService ,
326336 metricsScope : & metrics.TaggedScope {Scope : tally .NewTestScope ("test" , nil )},
327- logger : testlogger . NewZap ( t ) ,
337+ logger : logger ,
328338 featureFlags : FeatureFlags {},
329- }, mockService
339+ }, mockService , obs
330340}
0 commit comments