github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/openstack/compute/v2/services/testing/requests_test.go (about)

     1  package testing
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/vnpaycloud-console/gophercloud/v2/openstack/compute/v2/services"
     8  	"github.com/vnpaycloud-console/gophercloud/v2/pagination"
     9  	th "github.com/vnpaycloud-console/gophercloud/v2/testhelper"
    10  	"github.com/vnpaycloud-console/gophercloud/v2/testhelper/client"
    11  )
    12  
    13  func TestListServicesPre253(t *testing.T) {
    14  	th.SetupHTTP()
    15  	defer th.TeardownHTTP()
    16  	HandleListPre253Successfully(t)
    17  
    18  	pages := 0
    19  	err := services.List(client.ServiceClient(), nil).EachPage(context.TODO(), func(_ context.Context, page pagination.Page) (bool, error) {
    20  		pages++
    21  
    22  		actual, err := services.ExtractServices(page)
    23  		if err != nil {
    24  			return false, err
    25  		}
    26  
    27  		if len(actual) != 4 {
    28  			t.Fatalf("Expected 4 services, got %d", len(actual))
    29  		}
    30  		th.CheckDeepEquals(t, FirstFakeServicePre253, actual[0])
    31  		th.CheckDeepEquals(t, SecondFakeServicePre253, actual[1])
    32  		th.CheckDeepEquals(t, ThirdFakeServicePre253, actual[2])
    33  		th.CheckDeepEquals(t, FourthFakeServicePre253, actual[3])
    34  
    35  		return true, nil
    36  	})
    37  
    38  	th.AssertNoErr(t, err)
    39  
    40  	if pages != 1 {
    41  		t.Errorf("Expected 1 page, saw %d", pages)
    42  	}
    43  }
    44  
    45  func TestListServices(t *testing.T) {
    46  	th.SetupHTTP()
    47  	defer th.TeardownHTTP()
    48  	HandleListSuccessfully(t)
    49  
    50  	pages := 0
    51  	opts := services.ListOpts{
    52  		Binary: "fake-binary",
    53  		Host:   "host123",
    54  	}
    55  	err := services.List(client.ServiceClient(), opts).EachPage(context.TODO(), func(_ context.Context, page pagination.Page) (bool, error) {
    56  		pages++
    57  
    58  		actual, err := services.ExtractServices(page)
    59  		if err != nil {
    60  			return false, err
    61  		}
    62  
    63  		if len(actual) != 4 {
    64  			t.Fatalf("Expected 4 services, got %d", len(actual))
    65  		}
    66  		th.CheckDeepEquals(t, FirstFakeService, actual[0])
    67  		th.CheckDeepEquals(t, SecondFakeService, actual[1])
    68  		th.CheckDeepEquals(t, ThirdFakeService, actual[2])
    69  		th.CheckDeepEquals(t, FourthFakeService, actual[3])
    70  
    71  		return true, nil
    72  	})
    73  
    74  	th.AssertNoErr(t, err)
    75  
    76  	if pages != 1 {
    77  		t.Errorf("Expected 1 page, saw %d", pages)
    78  	}
    79  }
    80  
    81  func TestUpdateService(t *testing.T) {
    82  	th.SetupHTTP()
    83  	defer th.TeardownHTTP()
    84  	HandleUpdateSuccessfully(t)
    85  
    86  	client := client.ServiceClient()
    87  	actual, err := services.Update(context.TODO(), client, "fake-service-id", services.UpdateOpts{Status: services.ServiceDisabled}).Extract()
    88  	if err != nil {
    89  		t.Fatalf("Unexpected Update error: %v", err)
    90  	}
    91  
    92  	th.CheckDeepEquals(t, FakeServiceUpdateBody, *actual)
    93  }
    94  
    95  func TestDeleteService(t *testing.T) {
    96  	th.SetupHTTP()
    97  	defer th.TeardownHTTP()
    98  	HandleDeleteSuccessfully(t)
    99  
   100  	client := client.ServiceClient()
   101  	res := services.Delete(context.TODO(), client, "fake-service-id")
   102  
   103  	th.AssertNoErr(t, res.Err)
   104  }