github.com/huaweicloud/golangsdk@v0.0.0-20210831081626-d823fe11ceba/openstack/imageservice/v2/members/testing/requests_test.go (about) 1 package testing 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/huaweicloud/golangsdk/openstack/imageservice/v2/members" 8 "github.com/huaweicloud/golangsdk/pagination" 9 th "github.com/huaweicloud/golangsdk/testhelper" 10 fakeclient "github.com/huaweicloud/golangsdk/testhelper/client" 11 ) 12 13 const createdAtString = "2013-09-20T19:22:19Z" 14 const updatedAtString = "2013-09-20T19:25:31Z" 15 16 func TestCreateMemberSuccessfully(t *testing.T) { 17 th.SetupHTTP() 18 defer th.TeardownHTTP() 19 20 HandleCreateImageMemberSuccessfully(t) 21 im, err := members.Create(fakeclient.ServiceClient(), "da3b75d9-3f4a-40e7-8a2c-bfab23927dea", 22 "8989447062e04a818baf9e073fd04fa7").Extract() 23 th.AssertNoErr(t, err) 24 25 createdAt, err := time.Parse(time.RFC3339, createdAtString) 26 th.AssertNoErr(t, err) 27 28 updatedAt, err := time.Parse(time.RFC3339, updatedAtString) 29 th.AssertNoErr(t, err) 30 31 th.AssertDeepEquals(t, members.Member{ 32 CreatedAt: createdAt, 33 ImageID: "da3b75d9-3f4a-40e7-8a2c-bfab23927dea", 34 MemberID: "8989447062e04a818baf9e073fd04fa7", 35 Schema: "/v2/schemas/member", 36 Status: "pending", 37 UpdatedAt: updatedAt, 38 }, *im) 39 40 } 41 42 func TestMemberListSuccessfully(t *testing.T) { 43 th.SetupHTTP() 44 defer th.TeardownHTTP() 45 46 HandleImageMemberList(t) 47 48 pager := members.List(fakeclient.ServiceClient(), "da3b75d9-3f4a-40e7-8a2c-bfab23927dea") 49 t.Logf("Pager state %v", pager) 50 count, pages := 0, 0 51 err := pager.EachPage(func(page pagination.Page) (bool, error) { 52 pages++ 53 t.Logf("Page %v", page) 54 members, err := members.ExtractMembers(page) 55 if err != nil { 56 return false, err 57 } 58 59 for _, i := range members { 60 t.Logf("%s\t%s\t%s\t%s\t\n", i.ImageID, i.MemberID, i.Status, i.Schema) 61 count++ 62 } 63 64 return true, nil 65 }) 66 67 th.AssertNoErr(t, err) 68 th.AssertEquals(t, 1, pages) 69 th.AssertEquals(t, 2, count) 70 } 71 72 func TestMemberListEmpty(t *testing.T) { 73 th.SetupHTTP() 74 defer th.TeardownHTTP() 75 76 HandleImageMemberEmptyList(t) 77 78 pager := members.List(fakeclient.ServiceClient(), "da3b75d9-3f4a-40e7-8a2c-bfab23927dea") 79 t.Logf("Pager state %v", pager) 80 count, pages := 0, 0 81 err := pager.EachPage(func(page pagination.Page) (bool, error) { 82 pages++ 83 t.Logf("Page %v", page) 84 members, err := members.ExtractMembers(page) 85 if err != nil { 86 return false, err 87 } 88 89 for _, i := range members { 90 t.Logf("%s\t%s\t%s\t%s\t\n", i.ImageID, i.MemberID, i.Status, i.Schema) 91 count++ 92 } 93 94 return true, nil 95 }) 96 97 th.AssertNoErr(t, err) 98 th.AssertEquals(t, 0, pages) 99 th.AssertEquals(t, 0, count) 100 } 101 102 func TestShowMemberDetails(t *testing.T) { 103 th.SetupHTTP() 104 defer th.TeardownHTTP() 105 106 HandleImageMemberDetails(t) 107 md, err := members.Get(fakeclient.ServiceClient(), 108 "da3b75d9-3f4a-40e7-8a2c-bfab23927dea", 109 "8989447062e04a818baf9e073fd04fa7").Extract() 110 111 th.AssertNoErr(t, err) 112 if md == nil { 113 t.Errorf("Expected non-nil value for md") 114 } 115 116 createdAt, err := time.Parse(time.RFC3339, "2013-11-26T07:21:21Z") 117 th.AssertNoErr(t, err) 118 119 updatedAt, err := time.Parse(time.RFC3339, "2013-11-26T07:21:21Z") 120 th.AssertNoErr(t, err) 121 122 th.AssertDeepEquals(t, members.Member{ 123 CreatedAt: createdAt, 124 ImageID: "da3b75d9-3f4a-40e7-8a2c-bfab23927dea", 125 MemberID: "8989447062e04a818baf9e073fd04fa7", 126 Schema: "/v2/schemas/member", 127 Status: "pending", 128 UpdatedAt: updatedAt, 129 }, *md) 130 } 131 132 func TestDeleteMember(t *testing.T) { 133 th.SetupHTTP() 134 defer th.TeardownHTTP() 135 136 counter := HandleImageMemberDeleteSuccessfully(t) 137 138 result := members.Delete(fakeclient.ServiceClient(), "da3b75d9-3f4a-40e7-8a2c-bfab23927dea", 139 "8989447062e04a818baf9e073fd04fa7") 140 th.AssertEquals(t, 1, counter.Counter) 141 th.AssertNoErr(t, result.Err) 142 } 143 144 func TestMemberUpdateSuccessfully(t *testing.T) { 145 th.SetupHTTP() 146 defer th.TeardownHTTP() 147 148 counter := HandleImageMemberUpdate(t) 149 im, err := members.Update(fakeclient.ServiceClient(), "da3b75d9-3f4a-40e7-8a2c-bfab23927dea", 150 "8989447062e04a818baf9e073fd04fa7", 151 members.UpdateOpts{ 152 Status: "accepted", 153 }).Extract() 154 th.AssertEquals(t, 1, counter.Counter) 155 th.AssertNoErr(t, err) 156 157 createdAt, err := time.Parse(time.RFC3339, "2013-11-26T07:21:21Z") 158 th.AssertNoErr(t, err) 159 160 updatedAt, err := time.Parse(time.RFC3339, "2013-11-26T07:21:21Z") 161 th.AssertNoErr(t, err) 162 163 th.AssertDeepEquals(t, members.Member{ 164 CreatedAt: createdAt, 165 ImageID: "da3b75d9-3f4a-40e7-8a2c-bfab23927dea", 166 MemberID: "8989447062e04a818baf9e073fd04fa7", 167 Schema: "/v2/schemas/member", 168 Status: "accepted", 169 UpdatedAt: updatedAt, 170 }, *im) 171 172 }