github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/internal/acceptance/openstack/sharedfilesystems/v2/messages_test.go (about) 1 //go:build acceptance || sharedfilesystems || messages 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/sharedfilesystems/v2/messages" 12 ) 13 14 const requestID = "req-6f52cd8b-25a1-42cf-b497-7babf70f55f4" 15 const minimumManilaMessagesMicroVersion = "2.37" 16 17 func TestMessageList(t *testing.T) { 18 client, err := clients.NewSharedFileSystemV2Client() 19 if err != nil { 20 t.Fatalf("Unable to create a shared file system client: %v", err) 21 } 22 client.Microversion = minimumManilaMessagesMicroVersion 23 24 allPages, err := messages.List(client, messages.ListOpts{}).AllPages(context.TODO()) 25 if err != nil { 26 t.Fatalf("Unable to retrieve messages: %v", err) 27 } 28 29 allMessages, err := messages.ExtractMessages(allPages) 30 if err != nil { 31 t.Fatalf("Unable to extract messages: %v", err) 32 } 33 34 for _, message := range allMessages { 35 tools.PrintResource(t, message) 36 } 37 } 38 39 // The test creates 2 messages and verifies that only the one(s) with 40 // a particular name are being listed 41 func TestMessageListFiltering(t *testing.T) { 42 client, err := clients.NewSharedFileSystemV2Client() 43 if err != nil { 44 t.Fatalf("Unable to create a shared file system client: %v", err) 45 } 46 client.Microversion = minimumManilaMessagesMicroVersion 47 48 options := messages.ListOpts{ 49 RequestID: requestID, 50 } 51 52 allPages, err := messages.List(client, options).AllPages(context.TODO()) 53 if err != nil { 54 t.Fatalf("Unable to retrieve messages: %v", err) 55 } 56 57 allMessages, err := messages.ExtractMessages(allPages) 58 if err != nil { 59 t.Fatalf("Unable to extract messages: %v", err) 60 } 61 62 for _, listedMessage := range allMessages { 63 if listedMessage.RequestID != options.RequestID { 64 t.Fatalf("The request id of the message was expected to be %s", options.RequestID) 65 } 66 tools.PrintResource(t, listedMessage) 67 } 68 } 69 70 // Create a message and update the name and description. Get the ity 71 // service and verify that the name and description have been updated 72 func TestMessageDelete(t *testing.T) { 73 client, err := clients.NewSharedFileSystemV2Client() 74 if err != nil { 75 t.Fatalf("Unable to create shared file system client: %v", err) 76 } 77 client.Microversion = minimumManilaMessagesMicroVersion 78 79 options := messages.ListOpts{ 80 RequestID: requestID, 81 } 82 83 allPages, err := messages.List(client, options).AllPages(context.TODO()) 84 if err != nil { 85 t.Fatalf("Unable to retrieve messages: %v", err) 86 } 87 88 allMessages, err := messages.ExtractMessages(allPages) 89 if err != nil { 90 t.Fatalf("Unable to extract messages: %v", err) 91 } 92 93 if len(allMessages) == 0 { 94 t.Skipf("No messages were found") 95 } 96 97 var messageID string 98 for _, listedMessage := range allMessages { 99 if listedMessage.RequestID != options.RequestID { 100 t.Fatalf("The request id of the message was expected to be %s", options.RequestID) 101 } 102 tools.PrintResource(t, listedMessage) 103 messageID = listedMessage.ID 104 } 105 106 message, err := messages.Get(context.TODO(), client, messageID).Extract() 107 if err != nil { 108 t.Fatalf("Unable to retrieve the message: %v", err) 109 } 110 111 DeleteMessage(t, client, message) 112 }