github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/internal/acceptance/openstack/messaging/v2/claims_test.go (about)

     1  //go:build acceptance || messaging || claims
     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/claims"
    12  	th "github.com/vnpaycloud-console/gophercloud/v2/testhelper"
    13  )
    14  
    15  func TestCRUDClaim(t *testing.T) {
    16  	clientID := "3381af92-2b9e-11e3-b191-71861300734c"
    17  
    18  	client, err := clients.NewMessagingV2Client(clientID)
    19  	if err != nil {
    20  		t.Fatalf("Unable to create a messaging service client: %v", err)
    21  	}
    22  
    23  	createdQueueName, err := CreateQueue(t, client)
    24  	th.AssertNoErr(t, err)
    25  	defer DeleteQueue(t, client, createdQueueName)
    26  
    27  	clientID = "3381af92-2b9e-11e3-b191-71861300734d"
    28  
    29  	client, err = clients.NewMessagingV2Client(clientID)
    30  	if err != nil {
    31  		t.Fatalf("Unable to create a messaging service client: %v", err)
    32  	}
    33  	for i := 0; i < 3; i++ {
    34  		_, err := CreateMessage(t, client, createdQueueName)
    35  		th.AssertNoErr(t, err)
    36  	}
    37  
    38  	claimedMessages, err := CreateClaim(t, client, createdQueueName)
    39  	th.AssertNoErr(t, err)
    40  	claimIDs, _ := ExtractIDs(claimedMessages)
    41  
    42  	tools.PrintResource(t, claimedMessages)
    43  
    44  	updateOpts := claims.UpdateOpts{
    45  		TTL:   600,
    46  		Grace: 500,
    47  	}
    48  
    49  	for _, claimID := range claimIDs {
    50  		t.Logf("Attempting to update claim: %s", claimID)
    51  		err := claims.Update(context.TODO(), client, createdQueueName, claimID, updateOpts).ExtractErr()
    52  		if err != nil {
    53  			t.Fatalf("Unable to update claim %s: %v", claimID, err)
    54  		} else {
    55  			t.Logf("Successfully updated claim: %s", claimID)
    56  		}
    57  
    58  		updatedClaim, err := GetClaim(t, client, createdQueueName, claimID)
    59  		if err != nil {
    60  			t.Fatalf("Unable to retrieve claim %s: %v", claimID, err)
    61  		}
    62  
    63  		tools.PrintResource(t, updatedClaim)
    64  		err = DeleteClaim(t, client, createdQueueName, claimID)
    65  		th.AssertNoErr(t, err)
    66  	}
    67  }