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 }