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  }