github.com/gophercloud/gophercloud@v1.11.0/openstack/dns/v2/transfer/accept/testing/fixtures_test.go (about) 1 package testing 2 3 import ( 4 "fmt" 5 "net/http" 6 s "strings" 7 "testing" 8 "time" 9 10 "github.com/gophercloud/gophercloud" 11 transferAccepts "github.com/gophercloud/gophercloud/openstack/dns/v2/transfer/accept" 12 th "github.com/gophercloud/gophercloud/testhelper" 13 "github.com/gophercloud/gophercloud/testhelper/client" 14 ) 15 16 // ListOutput is a sample response to a List call. 17 const ListOutput = ` 18 { 19 "transfer_accepts": [ 20 { 21 "id": "92236f39-0fad-4f8f-bf25-fbdf027de34d", 22 "status": "COMPLETE", 23 "project_id": "9f3cfb08bf52469abe598e127676cd57", 24 "zone_id": "cd046f4b-f4dc-4e41-b946-1a2d32e1be40", 25 "key": "M2KA0Y20", 26 "zone_transfer_request_id": "fc46bb1f-bdf0-4e67-96e0-f8c04f26261c", 27 "created_at": "2020-10-12T08:38:58.000000", 28 "links": { 29 "self": "https://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/92236f39-0fad-4f8f-bf25-fbdf027de34d", 30 "zone": "https://127.0.0.1:9001/v2/zones/cd046f4b-f4dc-4e41-b946-1a2d32e1be40" 31 } 32 }, 33 { 34 "id": "f785ef12-7ee0-4c30-bd67-a2b9edba0dff", 35 "status": "ACTIVE", 36 "project_id": "9f3cfb08bf52469abe598e127676cd57", 37 "zone_id": "30d67a9a-d6df-4ba7-9b55-fb49e7987f84", 38 "key": "SDF32HJ1", 39 "zone_transfer_request_id": "c5d11193-72ea-4d9f-ba04-7f80e99627fa", 40 "created_at": "2020-10-12T09:38:58.000000", 41 "updated_at": "2020-10-12T09:38:58.000000", 42 "links": { 43 "self": "https://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/f785ef12-7ee0-4c30-bd67-a2b9edba0dff", 44 "zone": "https://127.0.0.1:9001/v2/zones/30d67a9a-d6df-4ba7-9b55-fb49e7987f84" 45 } 46 } 47 ] 48 } 49 ` 50 51 // FilteredListOutput is a sample response to a List call with Opts. 52 const FilteredListOutput = ` 53 { 54 "transfer_accepts": [ 55 { 56 "id": "f785ef12-7ee0-4c30-bd67-a2b9edba0dff", 57 "status": "ACTIVE", 58 "project_id": "9f3cfb08bf52469abe598e127676cd57", 59 "zone_id": "30d67a9a-d6df-4ba7-9b55-fb49e7987f84", 60 "key": "SDF32HJ1", 61 "zone_transfer_request_id": "c5d11193-72ea-4d9f-ba04-7f80e99627fa", 62 "created_at": "2020-10-12T09:38:58.000000", 63 "updated_at": "2020-10-12T09:38:58.000000", 64 "links": { 65 "self": "https://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/f785ef12-7ee0-4c30-bd67-a2b9edba0dff", 66 "zone": "https://127.0.0.1:9001/v2/zones/30d67a9a-d6df-4ba7-9b55-fb49e7987f84" 67 } 68 } 69 ] 70 } 71 ` 72 73 // GetOutput is a sample response to a Get call. 74 const GetOutput = ` 75 { 76 "id": "92236f39-0fad-4f8f-bf25-fbdf027de34d", 77 "status": "COMPLETE", 78 "project_id": "9f3cfb08bf52469abe598e127676cd57", 79 "zone_id": "cd046f4b-f4dc-4e41-b946-1a2d32e1be40", 80 "key": "M2KA0Y20", 81 "zone_transfer_request_id": "fc46bb1f-bdf0-4e67-96e0-f8c04f26261c", 82 "created_at": "2020-10-12T08:38:58.000000", 83 "links": { 84 "self": "https://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/92236f39-0fad-4f8f-bf25-fbdf027de34d", 85 "zone": "https://127.0.0.1:9001/v2/zones/cd046f4b-f4dc-4e41-b946-1a2d32e1be40" 86 } 87 } 88 ` 89 90 // FirstTransferAccept is the first result in ListOutput 91 var FirstTransferAcceptCreatedAt, _ = time.Parse(gophercloud.RFC3339MilliNoZ, "2020-10-12T08:38:58.000000") 92 var FirstTransferAccept = transferAccepts.TransferAccept{ 93 ID: "92236f39-0fad-4f8f-bf25-fbdf027de34d", 94 ZoneID: "cd046f4b-f4dc-4e41-b946-1a2d32e1be40", 95 ProjectID: "9f3cfb08bf52469abe598e127676cd57", 96 ZoneTransferRequestID: "fc46bb1f-bdf0-4e67-96e0-f8c04f26261c", 97 Key: "M2KA0Y20", 98 Status: "COMPLETE", 99 CreatedAt: FirstTransferAcceptCreatedAt, 100 Links: map[string]interface{}{ 101 "self": "https://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/92236f39-0fad-4f8f-bf25-fbdf027de34d", 102 "zone": "https://127.0.0.1:9001/v2/zones/cd046f4b-f4dc-4e41-b946-1a2d32e1be40", 103 }, 104 } 105 106 // SecondTransferRequest is the second result in ListOutput 107 var SecondTransferAcceptCreatedAt, _ = time.Parse(gophercloud.RFC3339MilliNoZ, "2020-10-12T09:38:58.000000") 108 var SecondTransferAcceptUpdatedAt, _ = time.Parse(gophercloud.RFC3339MilliNoZ, "2020-10-12T09:38:58.000000") 109 var SecondTransferAccept = transferAccepts.TransferAccept{ 110 ID: "f785ef12-7ee0-4c30-bd67-a2b9edba0dff", 111 Status: "ACTIVE", 112 ProjectID: "9f3cfb08bf52469abe598e127676cd57", 113 ZoneID: "30d67a9a-d6df-4ba7-9b55-fb49e7987f84", 114 ZoneTransferRequestID: "c5d11193-72ea-4d9f-ba04-7f80e99627fa", 115 Key: "SDF32HJ1", 116 CreatedAt: SecondTransferAcceptCreatedAt, 117 UpdatedAt: SecondTransferAcceptUpdatedAt, 118 Links: map[string]interface{}{ 119 "self": "https://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/f785ef12-7ee0-4c30-bd67-a2b9edba0dff", 120 "zone": "https://127.0.0.1:9001/v2/zones/30d67a9a-d6df-4ba7-9b55-fb49e7987f84", 121 }, 122 } 123 124 // ExpectedTransferAcceptSlice is the slice of results that should be parsed 125 // from ListOutput, in the expected order. 126 var ExpectedTransferAcceptSlice = []transferAccepts.TransferAccept{FirstTransferAccept, SecondTransferAccept} 127 128 // HandleListSuccessfully configures the test server to respond to a List request. 129 func HandleListSuccessfully(t *testing.T) { 130 baseURL := "/zones/tasks/transfer_accepts" 131 th.Mux.HandleFunc(baseURL, 132 func(w http.ResponseWriter, r *http.Request) { 133 th.TestMethod(t, r, "GET") 134 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 135 w.Header().Add("Content-Type", "application/json") 136 fmt.Fprintf(w, ListOutput) 137 }) 138 } 139 140 // HandleFilteredListSuccessfully configures the test server to respond to a List request with Opts. 141 func HandleFilteredListSuccessfully(t *testing.T) { 142 baseURL := "/zones/tasks/transfer_accepts" 143 th.Mux.HandleFunc(baseURL, 144 func(w http.ResponseWriter, r *http.Request) { 145 th.TestMethod(t, r, "GET") 146 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 147 w.Header().Add("Content-Type", "application/json") 148 fmt.Fprintf(w, FilteredListOutput) 149 }) 150 } 151 152 // HandleGetSuccessfully configures the test server to respond to a List request. 153 func HandleGetSuccessfully(t *testing.T) { 154 baseURL := "/zones/tasks/transfer_accepts" 155 th.Mux.HandleFunc(s.Join([]string{baseURL, FirstTransferAccept.ID}, "/"), 156 func(w http.ResponseWriter, r *http.Request) { 157 th.TestMethod(t, r, "GET") 158 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 159 w.Header().Add("Content-Type", "application/json") 160 fmt.Fprintf(w, GetOutput) 161 }) 162 } 163 164 // CreateTransferAccept is a sample request to create a zone. 165 const CreateTransferAccept = ` 166 { 167 "key": "M2KA0Y20", 168 "zone_transfer_request_id": "fc46bb1f-bdf0-4e67-96e0-f8c04f26261c" 169 } 170 ` 171 172 // CreateTransferAcceptResponse is a sample response to a create request. 173 const CreateTransferAcceptResponse = ` 174 { 175 "id": "92236f39-0fad-4f8f-bf25-fbdf027de34d", 176 "zone_transfer_request_id": "fc46bb1f-bdf0-4e67-96e0-f8c04f26261c", 177 "project_id": "9f3cfb08bf52469abe598e127676cd57", 178 "key": "M2KA0Y20", 179 "status": "COMPLETE", 180 "zone_id": "cd046f4b-f4dc-4e41-b946-1a2d32e1be40", 181 "created_at": "2020-10-12T08:38:58.000000", 182 "links": { 183 "self": "https://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/92236f39-0fad-4f8f-bf25-fbdf027de34d", 184 "zone": "https://127.0.0.1:9001/v2/zones/cd046f4b-f4dc-4e41-b946-1a2d32e1be40" 185 } 186 } 187 ` 188 189 // CreatedTransferRequest is the expected created zone transfer request. 190 var CreatedTransferAccept = FirstTransferAccept 191 192 // HandleTransferRequestCreationSuccessfully configures the test server to respond to a Create request. 193 func HandleCreateSuccessfully(t *testing.T) { 194 baseURL := "/zones/tasks/transfer_accepts" 195 th.Mux.HandleFunc(baseURL, 196 func(w http.ResponseWriter, r *http.Request) { 197 th.TestMethod(t, r, "POST") 198 th.TestHeader(t, r, "X-Auth-Token", client.TokenID) 199 th.TestJSONRequest(t, r, CreateTransferAccept) 200 201 w.WriteHeader(http.StatusCreated) 202 w.Header().Add("Content-Type", "application/json") 203 fmt.Fprintf(w, CreateTransferAcceptResponse) 204 }) 205 }