github.com/huaweicloud/golangsdk@v0.0.0-20210831081626-d823fe11ceba/openstack/compute/v2/extensions/quotasets/testing/fixtures.go (about) 1 package testing 2 3 import ( 4 "fmt" 5 "net/http" 6 "testing" 7 8 "github.com/huaweicloud/golangsdk" 9 "github.com/huaweicloud/golangsdk/openstack/compute/v2/extensions/quotasets" 10 th "github.com/huaweicloud/golangsdk/testhelper" 11 "github.com/huaweicloud/golangsdk/testhelper/client" 12 ) 13 14 // GetOutput is a sample response to a Get call. 15 const GetOutput = ` 16 { 17 "quota_set" : { 18 "instances" : 25, 19 "security_groups" : 10, 20 "security_group_rules" : 20, 21 "cores" : 200, 22 "injected_file_content_bytes" : 10240, 23 "injected_files" : 5, 24 "metadata_items" : 128, 25 "ram" : 200000, 26 "key_pairs" : 10, 27 "injected_file_path_bytes" : 255, 28 "server_groups" : 2, 29 "server_group_members" : 3 30 } 31 } 32 ` 33 34 // GetDetailsOutput is a sample response to a Get call with the detailed option. 35 const GetDetailsOutput = ` 36 { 37 "quota_set" : { 38 "id": "555544443333222211110000ffffeeee", 39 "instances" : { 40 "in_use": 0, 41 "limit": 25, 42 "reserved": 0 43 }, 44 "security_groups" : { 45 "in_use": 0, 46 "limit": 10, 47 "reserved": 0 48 }, 49 "security_group_rules" : { 50 "in_use": 0, 51 "limit": 20, 52 "reserved": 0 53 }, 54 "cores" : { 55 "in_use": 0, 56 "limit": 200, 57 "reserved": 0 58 }, 59 "injected_file_content_bytes" : { 60 "in_use": 0, 61 "limit": 10240, 62 "reserved": 0 63 }, 64 "injected_files" : { 65 "in_use": 0, 66 "limit": 5, 67 "reserved": 0 68 }, 69 "metadata_items" : { 70 "in_use": 0, 71 "limit": 128, 72 "reserved": 0 73 }, 74 "ram" : { 75 "in_use": 0, 76 "limit": 200000, 77 "reserved": 0 78 }, 79 "key_pairs" : { 80 "in_use": 0, 81 "limit": 10, 82 "reserved": 0 83 }, 84 "injected_file_path_bytes" : { 85 "in_use": 0, 86 "limit": 255, 87 "reserved": 0 88 }, 89 "server_groups" : { 90 "in_use": 0, 91 "limit": 2, 92 "reserved": 0 93 }, 94 "server_group_members" : { 95 "in_use": 0, 96 "limit": 3, 97 "reserved": 0 98 } 99 } 100 } 101 ` 102 const FirstTenantID = "555544443333222211110000ffffeeee" 103 104 // FirstQuotaSet is the first result in ListOutput. 105 var FirstQuotaSet = quotasets.QuotaSet{ 106 FixedIPs: 0, 107 FloatingIPs: 0, 108 InjectedFileContentBytes: 10240, 109 InjectedFilePathBytes: 255, 110 InjectedFiles: 5, 111 KeyPairs: 10, 112 MetadataItems: 128, 113 RAM: 200000, 114 SecurityGroupRules: 20, 115 SecurityGroups: 10, 116 Cores: 200, 117 Instances: 25, 118 ServerGroups: 2, 119 ServerGroupMembers: 3, 120 } 121 122 // FirstQuotaDetailsSet is the first result in ListOutput. 123 var FirstQuotaDetailsSet = quotasets.QuotaDetailSet{ 124 ID: FirstTenantID, 125 InjectedFileContentBytes: quotasets.QuotaDetail{InUse: 0, Reserved: 0, Limit: 10240}, 126 InjectedFilePathBytes: quotasets.QuotaDetail{InUse: 0, Reserved: 0, Limit: 255}, 127 InjectedFiles: quotasets.QuotaDetail{InUse: 0, Reserved: 0, Limit: 5}, 128 KeyPairs: quotasets.QuotaDetail{InUse: 0, Reserved: 0, Limit: 10}, 129 MetadataItems: quotasets.QuotaDetail{InUse: 0, Reserved: 0, Limit: 128}, 130 RAM: quotasets.QuotaDetail{InUse: 0, Reserved: 0, Limit: 200000}, 131 SecurityGroupRules: quotasets.QuotaDetail{InUse: 0, Reserved: 0, Limit: 20}, 132 SecurityGroups: quotasets.QuotaDetail{InUse: 0, Reserved: 0, Limit: 10}, 133 Cores: quotasets.QuotaDetail{InUse: 0, Reserved: 0, Limit: 200}, 134 Instances: quotasets.QuotaDetail{InUse: 0, Reserved: 0, Limit: 25}, 135 ServerGroups: quotasets.QuotaDetail{InUse: 0, Reserved: 0, Limit: 2}, 136 ServerGroupMembers: quotasets.QuotaDetail{InUse: 0, Reserved: 0, Limit: 3}, 137 } 138 139 //The expected update Body. Is also returned by PUT request 140 const UpdateOutput = `{"quota_set":{"cores":200,"fixed_ips":0,"floating_ips":0,"injected_file_content_bytes":10240,"injected_file_path_bytes":255,"injected_files":5,"instances":25,"key_pairs":10,"metadata_items":128,"ram":200000,"security_group_rules":20,"security_groups":10,"server_groups":2,"server_group_members":3}}` 141 142 //The expected partialupdate Body. Is also returned by PUT request 143 const PartialUpdateBody = `{"quota_set":{"cores":200, "force":true}}` 144 145 //Result of Quota-update 146 var UpdatedQuotaSet = quotasets.UpdateOpts{ 147 FixedIPs: golangsdk.IntToPointer(0), 148 FloatingIPs: golangsdk.IntToPointer(0), 149 InjectedFileContentBytes: golangsdk.IntToPointer(10240), 150 InjectedFilePathBytes: golangsdk.IntToPointer(255), 151 InjectedFiles: golangsdk.IntToPointer(5), 152 KeyPairs: golangsdk.IntToPointer(10), 153 MetadataItems: golangsdk.IntToPointer(128), 154 RAM: golangsdk.IntToPointer(200000), 155 SecurityGroupRules: golangsdk.IntToPointer(20), 156 SecurityGroups: golangsdk.IntToPointer(10), 157 Cores: golangsdk.IntToPointer(200), 158 Instances: golangsdk.IntToPointer(25), 159 ServerGroups: golangsdk.IntToPointer(2), 160 ServerGroupMembers: golangsdk.IntToPointer(3), 161 } 162 163 // HandleGetSuccessfully configures the test server to respond to a Get request for sample tenant 164 func HandleGetSuccessfully(t *testing.T) { 165 th.Mux.HandleFunc("/os-quota-sets/"+FirstTenantID, func(w http.ResponseWriter, r *http.Request) { 166 th.TestMethod(t, r, "GET") 167 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 168 169 w.Header().Add("Content-Type", "application/json") 170 fmt.Fprintf(w, GetOutput) 171 }) 172 } 173 174 // HandleGetDetailSuccessfully configures the test server to respond to a Get Details request for sample tenant 175 func HandleGetDetailSuccessfully(t *testing.T) { 176 th.Mux.HandleFunc("/os-quota-sets/"+FirstTenantID+"/detail", func(w http.ResponseWriter, r *http.Request) { 177 th.TestMethod(t, r, "GET") 178 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 179 w.Header().Add("Content-Type", "application/json") 180 fmt.Fprintf(w, GetDetailsOutput) 181 }) 182 } 183 184 // HandlePutSuccessfully configures the test server to respond to a Put request for sample tenant 185 func HandlePutSuccessfully(t *testing.T) { 186 th.Mux.HandleFunc("/os-quota-sets/"+FirstTenantID, func(w http.ResponseWriter, r *http.Request) { 187 th.TestMethod(t, r, "PUT") 188 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 189 th.TestJSONRequest(t, r, UpdateOutput) 190 w.Header().Add("Content-Type", "application/json") 191 fmt.Fprintf(w, UpdateOutput) 192 }) 193 } 194 195 // HandlePartialPutSuccessfully configures the test server to respond to a Put request for sample tenant that only containes specific values 196 func HandlePartialPutSuccessfully(t *testing.T) { 197 th.Mux.HandleFunc("/os-quota-sets/"+FirstTenantID, func(w http.ResponseWriter, r *http.Request) { 198 th.TestMethod(t, r, "PUT") 199 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 200 th.TestJSONRequest(t, r, PartialUpdateBody) 201 w.Header().Add("Content-Type", "application/json") 202 fmt.Fprintf(w, UpdateOutput) 203 }) 204 } 205 206 // HandleDeleteSuccessfully configures the test server to respond to a Delete request for sample tenant 207 func HandleDeleteSuccessfully(t *testing.T) { 208 th.Mux.HandleFunc("/os-quota-sets/"+FirstTenantID, func(w http.ResponseWriter, r *http.Request) { 209 th.TestMethod(t, r, "DELETE") 210 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 211 th.TestBody(t, r, "") 212 w.Header().Add("Content-Type", "application/json") 213 w.WriteHeader(202) 214 }) 215 }