@@ -388,6 +388,57 @@ func TestPurgeQueueOptionallyPerformsHardReset(t *testing.T) {
388388 )
389389}
390390
391+ func TestListTasks (t * testing.T ) {
392+ serv , client := setUp (t , ServerOptions {})
393+ defer tearDown (t , serv )
394+
395+ srv , _ := startTestServer ()
396+ defer srv .Shutdown (context .Background ())
397+
398+ createdQueue := createTestQueue (t , client )
399+
400+ createTaskRequest := taskspb.CreateTaskRequest {
401+ Parent : createdQueue .GetName (),
402+ Task : & taskspb.Task {
403+ Name : createdQueue .GetName () + "/tasks/my-test-task" ,
404+ MessageType : & taskspb.Task_HttpRequest {
405+ HttpRequest : & taskspb.HttpRequest {
406+ Url : "http://localhost:5000/success" ,
407+ },
408+ },
409+ },
410+ }
411+
412+ createdTask , err := client .CreateTask (context .Background (), & createTaskRequest )
413+ require .NoError (t , err )
414+
415+ listTasksRequest := taskspb.ListTasksRequest {
416+ Parent : createdQueue .GetName (),
417+ }
418+
419+ tasksIterator := client .ListTasks (context .Background (), & listTasksRequest )
420+ assert .NoError (t , err )
421+
422+ listedTask , err := tasksIterator .Next ()
423+ assert .NoError (t , err )
424+ assert .Equal (t , listedTask .GetName (), createdTask .GetName ())
425+ _ , err = tasksIterator .Next ()
426+ assert .EqualError (t , err , "no more items in iterator" )
427+
428+ deleteQueueRequest := taskspb.DeleteQueueRequest {
429+ Name : createdQueue .GetName (),
430+ }
431+ err = client .DeleteQueue (context .Background (), & deleteQueueRequest )
432+ require .NoError (t , err )
433+
434+ tasksIterator = client .ListTasks (context .Background (), & listTasksRequest )
435+ assert .NoError (t , err )
436+
437+ listedTask , err = tasksIterator .Next ()
438+ assertIsGrpcError (t , "^Queue does not exist" , grpcCodes .NotFound , err )
439+ assert .Nil (t , listedTask )
440+ }
441+
391442func TestSuccessTaskExecution (t * testing.T ) {
392443 serv , client := setUp (t , ServerOptions {})
393444 defer tearDown (t , serv )
0 commit comments