github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/openstack/container/v1/capsules/testing/requests_test.go (about)

     1  package testing
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  	"time"
     7  
     8  	"github.com/vnpaycloud-console/gophercloud/v2"
     9  	"github.com/vnpaycloud-console/gophercloud/v2/openstack/container/v1/capsules"
    10  	"github.com/vnpaycloud-console/gophercloud/v2/pagination"
    11  	th "github.com/vnpaycloud-console/gophercloud/v2/testhelper"
    12  	fakeclient "github.com/vnpaycloud-console/gophercloud/v2/testhelper/client"
    13  )
    14  
    15  func TestGetCapsule_OldTime(t *testing.T) {
    16  	th.SetupHTTP()
    17  	defer th.TeardownHTTP()
    18  
    19  	HandleCapsuleGetOldTimeSuccessfully(t)
    20  
    21  	createdAt, _ := time.Parse(gophercloud.RFC3339ZNoT, "2018-01-12 09:37:25+00:00")
    22  	updatedAt, _ := time.Parse(gophercloud.RFC3339ZNoT, "2018-01-12 09:37:26+00:00")
    23  	startedAt, _ := time.Parse(gophercloud.RFC3339ZNoT, "2018-01-12 09:37:26+00:00")
    24  
    25  	ExpectedCapsule.CreatedAt = createdAt
    26  	ExpectedCapsule.UpdatedAt = updatedAt
    27  	ExpectedCapsule.Containers[0].CreatedAt = createdAt
    28  	ExpectedCapsule.Containers[0].UpdatedAt = updatedAt
    29  	ExpectedCapsule.Containers[0].StartedAt = startedAt
    30  
    31  	actualCapsule, err := capsules.Get(context.TODO(), fakeclient.ServiceClient(), ExpectedCapsule.UUID).Extract()
    32  	th.AssertNoErr(t, err)
    33  
    34  	th.AssertDeepEquals(t, &ExpectedCapsule, actualCapsule)
    35  }
    36  
    37  func TestGetCapsule_NewTime(t *testing.T) {
    38  	th.SetupHTTP()
    39  	defer th.TeardownHTTP()
    40  
    41  	HandleCapsuleGetNewTimeSuccessfully(t)
    42  
    43  	createdAt, _ := time.Parse(gophercloud.RFC3339ZNoTNoZ, "2018-01-12 09:37:25")
    44  	updatedAt, _ := time.Parse(gophercloud.RFC3339ZNoTNoZ, "2018-01-12 09:37:26")
    45  	startedAt, _ := time.Parse(gophercloud.RFC3339ZNoTNoZ, "2018-01-12 09:37:26")
    46  
    47  	ExpectedCapsule.CreatedAt = createdAt
    48  	ExpectedCapsule.UpdatedAt = updatedAt
    49  	ExpectedCapsule.Containers[0].CreatedAt = createdAt
    50  	ExpectedCapsule.Containers[0].UpdatedAt = updatedAt
    51  	ExpectedCapsule.Containers[0].StartedAt = startedAt
    52  
    53  	actualCapsule, err := capsules.Get(context.TODO(), fakeclient.ServiceClient(), ExpectedCapsule.UUID).Extract()
    54  	th.AssertNoErr(t, err)
    55  
    56  	th.AssertDeepEquals(t, &ExpectedCapsule, actualCapsule)
    57  }
    58  
    59  func TestCreateCapsule(t *testing.T) {
    60  	th.SetupHTTP()
    61  	defer th.TeardownHTTP()
    62  	HandleCapsuleCreateSuccessfully(t)
    63  
    64  	template := new(capsules.Template)
    65  	template.Bin = []byte(ValidJSONTemplate)
    66  
    67  	createOpts := capsules.CreateOpts{
    68  		TemplateOpts: template,
    69  	}
    70  	actualCapsule, err := capsules.Create(context.TODO(), fakeclient.ServiceClient(), createOpts).Extract()
    71  	th.AssertNoErr(t, err)
    72  
    73  	th.AssertDeepEquals(t, &ExpectedCapsule, actualCapsule)
    74  }
    75  
    76  func TestListCapsule(t *testing.T) {
    77  	th.SetupHTTP()
    78  	defer th.TeardownHTTP()
    79  
    80  	HandleCapsuleListSuccessfully(t)
    81  
    82  	createdAt, _ := time.Parse(gophercloud.RFC3339ZNoT, "2018-01-12 09:37:25+00:00")
    83  	updatedAt, _ := time.Parse(gophercloud.RFC3339ZNoT, "2018-01-12 09:37:25+01:00")
    84  
    85  	ec := ExpectedCapsule
    86  
    87  	ec.CreatedAt = createdAt
    88  	ec.UpdatedAt = updatedAt
    89  	ec.Containers = nil
    90  
    91  	expected := []capsules.Capsule{ec}
    92  
    93  	count := 0
    94  	results := capsules.List(fakeclient.ServiceClient(), nil)
    95  	err := results.EachPage(context.TODO(), func(_ context.Context, page pagination.Page) (bool, error) {
    96  		count++
    97  		actual, err := capsules.ExtractCapsules(page)
    98  		if err != nil {
    99  			t.Errorf("Failed to extract capsules: %v", err)
   100  			return false, err
   101  		}
   102  
   103  		th.CheckDeepEquals(t, expected, actual)
   104  
   105  		return true, nil
   106  	})
   107  	th.AssertNoErr(t, err)
   108  
   109  	if count != 1 {
   110  		t.Errorf("Expected 1 page, got %d", count)
   111  	}
   112  }
   113  
   114  func TestListCapsuleV132(t *testing.T) {
   115  	th.SetupHTTP()
   116  	defer th.TeardownHTTP()
   117  
   118  	HandleCapsuleV132ListSuccessfully(t)
   119  
   120  	createdAt, _ := time.Parse(gophercloud.RFC3339ZNoTNoZ, "2018-01-12 09:37:25")
   121  	updatedAt, _ := time.Parse(gophercloud.RFC3339ZNoTNoZ, "2018-01-12 09:37:25")
   122  
   123  	ec := ExpectedCapsuleV132
   124  
   125  	ec.CreatedAt = createdAt
   126  	ec.UpdatedAt = updatedAt
   127  	ec.Containers = nil
   128  
   129  	expected := []capsules.CapsuleV132{ec}
   130  
   131  	count := 0
   132  	results := capsules.List(fakeclient.ServiceClient(), nil)
   133  	err := results.EachPage(context.TODO(), func(_ context.Context, page pagination.Page) (bool, error) {
   134  		count++
   135  		actual, err := capsules.ExtractCapsules(page)
   136  		if err != nil {
   137  			t.Errorf("Failed to extract capsules: %v", err)
   138  			return false, err
   139  		}
   140  
   141  		th.CheckDeepEquals(t, expected, actual)
   142  
   143  		return true, nil
   144  	})
   145  	th.AssertNoErr(t, err)
   146  
   147  	if count != 1 {
   148  		t.Errorf("Expected 1 page, got %d", count)
   149  	}
   150  }
   151  
   152  func TestDelete(t *testing.T) {
   153  	th.SetupHTTP()
   154  	defer th.TeardownHTTP()
   155  
   156  	HandleCapsuleDeleteSuccessfully(t)
   157  
   158  	res := capsules.Delete(context.TODO(), fakeclient.ServiceClient(), "963a239d-3946-452b-be5a-055eab65a421")
   159  	th.AssertNoErr(t, res.Err)
   160  }