github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/internal/acceptance/openstack/messaging/v2/queue_test.go (about) 1 //go:build acceptance || messaging || queues 2 3 package v2 4 5 import ( 6 "context" 7 "testing" 8 9 "github.com/vnpaycloud-console/gophercloud/v2/internal/acceptance/clients" 10 "github.com/vnpaycloud-console/gophercloud/v2/internal/acceptance/tools" 11 "github.com/vnpaycloud-console/gophercloud/v2/openstack/messaging/v2/queues" 12 "github.com/vnpaycloud-console/gophercloud/v2/pagination" 13 th "github.com/vnpaycloud-console/gophercloud/v2/testhelper" 14 ) 15 16 func TestCRUDQueues(t *testing.T) { 17 clientID := "3381af92-2b9e-11e3-b191-71861300734d" 18 19 client, err := clients.NewMessagingV2Client(clientID) 20 if err != nil { 21 t.Fatalf("Unable to create a messaging service client: %v", err) 22 } 23 24 createdQueueName, err := CreateQueue(t, client) 25 th.AssertNoErr(t, err) 26 defer DeleteQueue(t, client, createdQueueName) 27 28 createdQueue, err := queues.Get(context.TODO(), client, createdQueueName).Extract() 29 th.AssertNoErr(t, err) 30 31 tools.PrintResource(t, createdQueue) 32 tools.PrintResource(t, createdQueue.Extra) 33 34 updateOpts := queues.BatchUpdateOpts{ 35 queues.UpdateOpts{ 36 Op: "replace", 37 Path: "/metadata/_max_claim_count", 38 Value: 15, 39 }, 40 queues.UpdateOpts{ 41 Op: "replace", 42 Path: "/metadata/description", 43 Value: "Updated description for queues acceptance test.", 44 }, 45 } 46 47 t.Logf("Attempting to update Queue: %s", createdQueueName) 48 updateResult, updateErr := queues.Update(context.TODO(), client, createdQueueName, updateOpts).Extract() 49 if updateErr != nil { 50 t.Fatalf("Unable to update Queue %s: %v", createdQueueName, updateErr) 51 } 52 53 updatedQueue, err := GetQueue(t, client, createdQueueName) 54 th.AssertNoErr(t, err) 55 56 tools.PrintResource(t, updateResult) 57 tools.PrintResource(t, updatedQueue) 58 tools.PrintResource(t, updatedQueue.Extra) 59 } 60 61 func TestListQueues(t *testing.T) { 62 clientID := "3381af92-2b9e-11e3-b191-71861300734d" 63 64 client, err := clients.NewMessagingV2Client(clientID) 65 if err != nil { 66 t.Fatalf("Unable to create a messaging service client: %v", err) 67 } 68 69 firstQueueName, err := CreateQueue(t, client) 70 th.AssertNoErr(t, err) 71 defer DeleteQueue(t, client, firstQueueName) 72 73 secondQueueName, err := CreateQueue(t, client) 74 th.AssertNoErr(t, err) 75 defer DeleteQueue(t, client, secondQueueName) 76 77 listOpts := queues.ListOpts{ 78 Limit: 10, 79 Detailed: true, 80 } 81 82 pager := queues.List(client, listOpts) 83 err = pager.EachPage(context.TODO(), func(_ context.Context, page pagination.Page) (bool, error) { 84 allQueues, err := queues.ExtractQueues(page) 85 if err != nil { 86 t.Fatalf("Unable to extract Queues: %v", err) 87 } 88 89 for _, queue := range allQueues { 90 tools.PrintResource(t, queue) 91 } 92 93 return true, nil 94 }) 95 th.AssertNoErr(t, err) 96 } 97 98 func TestStatQueue(t *testing.T) { 99 clientID := "3381af92-2b9e-11e3-b191-71861300734c" 100 101 client, err := clients.NewMessagingV2Client(clientID) 102 if err != nil { 103 t.Fatalf("Unable to create a messaging service client: %v", err) 104 } 105 106 createdQueueName, err := CreateQueue(t, client) 107 th.AssertNoErr(t, err) 108 defer DeleteQueue(t, client, createdQueueName) 109 110 queueStats, err := queues.GetStats(context.TODO(), client, createdQueueName).Extract() 111 if err != nil { 112 t.Fatalf("Unable to stat queue: %v", err) 113 } 114 115 tools.PrintResource(t, queueStats) 116 } 117 118 func TestShare(t *testing.T) { 119 clientID := "3381af92-2b9e-11e3-b191-71861300734c" 120 121 client, err := clients.NewMessagingV2Client(clientID) 122 if err != nil { 123 t.Fatalf("Unable to create a messaging service client: %v", err) 124 } 125 126 queueName, err := CreateQueue(t, client) 127 if err != nil { 128 t.Logf("Unable to create queue for share.") 129 } 130 defer DeleteQueue(t, client, queueName) 131 132 t.Logf("Attempting to create share for queue: %s", queueName) 133 share, shareErr := CreateShare(t, client, queueName) 134 if shareErr != nil { 135 t.Fatalf("Unable to create share: %v", shareErr) 136 } 137 138 tools.PrintResource(t, share) 139 } 140 141 func TestPurge(t *testing.T) { 142 clientID := "3381af92-2b9e-11e3-b191-71861300734c" 143 144 client, err := clients.NewMessagingV2Client(clientID) 145 if err != nil { 146 t.Fatalf("Unable to create a messaging service client: %v", err) 147 } 148 149 queueName, err := CreateQueue(t, client) 150 th.AssertNoErr(t, err) 151 defer DeleteQueue(t, client, queueName) 152 153 purgeOpts := queues.PurgeOpts{ 154 ResourceTypes: []queues.PurgeResource{ 155 queues.ResourceMessages, 156 }, 157 } 158 159 t.Logf("Attempting to purge queue: %s", queueName) 160 purgeErr := queues.Purge(context.TODO(), client, queueName, purgeOpts).ExtractErr() 161 if purgeErr != nil { 162 t.Fatalf("Unable to purge queue %s: %v", queueName, purgeErr) 163 } 164 }