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 }