392
func testListQueues(ctx context.Context, t *testing.T, queue persistence.QueueV2) {
393
t.Run("HappyPath", func(t *testing.T) {
395
>
queueType := persistence.QueueTypeHistoryDLQ
396
>
response, err := queue.ListQueues(ctx, &persistence.InternalListQueuesRequest{
397
>
QueueType: queueType,
398
>
PageSize: 10,
399
>
NextPageToken: nil,
400
>
})
401
>
require.NoError(t, err)
402
>
require.Equal(t, 0, len(response.Queues))
403
>
404
>
// List of all created queues
405
>
var queueNames []string
406
>
407
>
// List one queue.
408
>
queueName := "test-queue-" + t.Name() + "first"
409
>
queueNames = append(queueNames, queueName)
410
>
_, err = queue.CreateQueue(ctx, &persistence.InternalCreateQueueRequest{
411
>
QueueType: queueType,
412
>
QueueName: queueName,
413
>
})
414
>
require.NoError(t, err)
415
>
response, err = queue.ListQueues(ctx, &persistence.InternalListQueuesRequest{
416
>
QueueType: queueType,
417
>
PageSize: 10,
418
>
NextPageToken: nil,
419
>
})
420
>
require.NoError(t, err)
421
>
require.Equal(t, 1, len(response.Queues))
422
>
require.Equal(t, queueName, response.Queues[0].QueueName)
423
>
require.Equal(t, int64(0), response.Queues[0].MessageCount)
424
>
require.Equal(t, int64(-1), response.Queues[0].LastMessageID)
425
>
426
>
// List multiple queues.
427
>
queueName = "test-queue-" + t.Name() + "second"
428
>
queueNames = append(queueNames, queueName)
429
>
_, err = queue.CreateQueue(ctx, &persistence.InternalCreateQueueRequest{
430
>
QueueType: queueType,
431
>
QueueName: queueName,
432
>
})
433
>
require.NoError(t, err)
434
>
response, err = queue.ListQueues(ctx, &persistence.InternalListQueuesRequest{
435
>
QueueType: queueType,
436
>
PageSize: 10,
437
>
NextPageToken: nil,
438
>
})
439
>
require.NoError(t, err)
440
>
require.Equal(t, 2, len(response.Queues))
441
>
require.Contains(t, []string{response.Queues[0].QueueName, response.Queues[1].QueueName}, queueName)
442
>
require.Equal(t, int64(0), response.Queues[0].MessageCount)
443
>
require.Equal(t, int64(-1), response.Queues[0].LastMessageID)
444
>
require.Equal(t, int64(0), response.Queues[1].MessageCount)
445
>
446
>
// List multiple queues in pages.
447
>
for i := range 3 {
448
>
queueNames = append(queueNames, "test-queue-"+t.Name()+strconv.Itoa(i))
449
>
}
450
>
for _, queueName := range queueNames[2:] {
451
>
_, err := queue.CreateQueue(ctx, &persistence.InternalCreateQueueRequest{
452
>
QueueType: queueType,
453
>
QueueName: queueName,
454
>
})
455
>
require.NoError(t, err)
456
>
}
457
>
var listedQueueNames []string
458
>
response, err = queue.ListQueues(ctx, &persistence.InternalListQueuesRequest{
459
>
QueueType: queueType,
460
>
PageSize: 1,
461
>
NextPageToken: nil,
462
>
})
463
>
require.NoError(t, err)
464
>
require.Equal(t, 1, len(response.Queues))
465
>
listedQueueNames = append(listedQueueNames, response.Queues[0].QueueName)
466
>
require.Equal(t, int64(0), response.Queues[0].MessageCount)
467
>
require.Equal(t, int64(-1), response.Queues[0].LastMessageID)
468
>
response, err = queue.ListQueues(ctx, &persistence.InternalListQueuesRequest{
469
>
QueueType: queueType,
470
>
PageSize: 1,
471
>
NextPageToken: response.NextPageToken,
472
>
})
473
>
require.NoError(t, err)
474
>
require.Equal(t, 1, len(response.Queues))
475
>
listedQueueNames = append(listedQueueNames, response.Queues[0].QueueName)
476
>
require.Equal(t, int64(0), response.Queues[0].MessageCount)
477
>
require.Equal(t, int64(-1), response.Queues[0].LastMessageID)
478
>
response, err = queue.ListQueues(ctx, &persistence.InternalListQueuesRequest{
479
>
QueueType: queueType,
480
>
PageSize: 3,
481
>
NextPageToken: response.NextPageToken,
482
>
})
483
>
require.NoError(t, err)
484
>
require.Equal(t, 3, len(response.Queues))
485
>
for _, queue := range response.Queues {
486
>
listedQueueNames = append(listedQueueNames, queue.QueueName)
487
>
require.Equal(t, int64(0), queue.MessageCount)
488
>
require.Equal(t, int64(-1), queue.LastMessageID)
489
>
}
490
>
response, err = queue.ListQueues(ctx, &persistence.InternalListQueuesRequest{
491
>
QueueType: queueType,
492
>
PageSize: 1,
493
>
NextPageToken: response.NextPageToken,
494
>
})
495
>
require.NoError(t, err)
496
>
require.Equal(t, 0, len(response.Queues))
497
>
require.Empty(t, response.NextPageToken)
498
>
for _, queueName := range queueNames {
499
>
require.Contains(t, listedQueueNames, queueName)
500
>
}
501
})
502
t.Run("QueueSize", func(t *testing.T) {