github.com/gophercloud/gophercloud@v1.11.0/openstack/container/v1/capsules/testing/requests_test.go (about)

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