88 "encoding/json"
99 "io/ioutil"
1010 "net/http"
11+ "net/url"
1112 "testing"
1213
1314 "github.com/Azure/azure-sdk-for-go/sdk/azcore"
@@ -224,8 +225,8 @@ func TestSendDelete(t *testing.T) {
224225 t .Fatal (err )
225226 }
226227
227- if verifier .method != http .MethodDelete {
228- t .Errorf ("Expected %v, but got %v" , http .MethodDelete , verifier .method )
228+ if verifier .requests [ 0 ]. method != http .MethodDelete {
229+ t .Errorf ("Expected %v, but got %v" , http .MethodDelete , verifier .requests [ 0 ]. method )
229230 }
230231}
231232
@@ -247,8 +248,8 @@ func TestSendGet(t *testing.T) {
247248 t .Fatal (err )
248249 }
249250
250- if verifier .method != http .MethodGet {
251- t .Errorf ("Expected %v, but got %v" , http .MethodGet , verifier .method )
251+ if verifier .requests [ 0 ]. method != http .MethodGet {
252+ t .Errorf ("Expected %v, but got %v" , http .MethodGet , verifier .requests [ 0 ]. method )
252253 }
253254}
254255
@@ -276,12 +277,12 @@ func TestSendPut(t *testing.T) {
276277 t .Fatal (err )
277278 }
278279
279- if verifier .method != http .MethodPut {
280- t .Errorf ("Expected %v, but got %v" , http .MethodPut , verifier .method )
280+ if verifier .requests [ 0 ]. method != http .MethodPut {
281+ t .Errorf ("Expected %v, but got %v" , http .MethodPut , verifier .requests [ 0 ]. method )
281282 }
282283
283- if verifier .body != string (marshalled ) {
284- t .Errorf ("Expected %v, but got %v" , string (marshalled ), verifier .body )
284+ if verifier .requests [ 0 ]. body != string (marshalled ) {
285+ t .Errorf ("Expected %v, but got %v" , string (marshalled ), verifier .requests [ 0 ]. body )
285286 }
286287}
287288
@@ -309,12 +310,12 @@ func TestSendPost(t *testing.T) {
309310 t .Fatal (err )
310311 }
311312
312- if verifier .method != http .MethodPost {
313- t .Errorf ("Expected %v, but got %v" , http .MethodPost , verifier .method )
313+ if verifier .requests [ 0 ]. method != http .MethodPost {
314+ t .Errorf ("Expected %v, but got %v" , http .MethodPost , verifier .requests [ 0 ]. method )
314315 }
315316
316- if verifier .body != string (marshalled ) {
317- t .Errorf ("Expected %v, but got %v" , string (marshalled ), verifier .body )
317+ if verifier .requests [ 0 ]. body != string (marshalled ) {
318+ t .Errorf ("Expected %v, but got %v" , string (marshalled ), verifier .requests [ 0 ]. body )
318319 }
319320}
320321
@@ -336,37 +337,47 @@ func TestSendQuery(t *testing.T) {
336337 t .Fatal (err )
337338 }
338339
339- if verifier .method != http .MethodPost {
340- t .Errorf ("Expected %v, but got %v" , http .MethodPost , verifier .method )
340+ if verifier .requests [ 0 ]. method != http .MethodPost {
341+ t .Errorf ("Expected %v, but got %v" , http .MethodPost , verifier .requests [ 0 ]. method )
341342 }
342343
343- if verifier .isQuery != true {
344- t .Errorf ("Expected %v, but got %v" , true , verifier .isQuery )
344+ if verifier .requests [ 0 ]. isQuery != true {
345+ t .Errorf ("Expected %v, but got %v" , true , verifier .requests [ 0 ]. isQuery )
345346 }
346347
347- if verifier .contentType != cosmosHeaderValuesQuery {
348- t .Errorf ("Expected %v, but got %v" , cosmosHeaderValuesQuery , verifier .contentType )
348+ if verifier .requests [ 0 ]. contentType != cosmosHeaderValuesQuery {
349+ t .Errorf ("Expected %v, but got %v" , cosmosHeaderValuesQuery , verifier .requests [ 0 ]. contentType )
349350 }
350351
351- if verifier .body != "{\" query\" :\" SELECT * FROM c\" }" {
352- t .Errorf ("Expected %v, but got %v" , "{\" query\" :\" SELECT * FROM c\" }" , verifier .body )
352+ if verifier .requests [ 0 ]. body != "{\" query\" :\" SELECT * FROM c\" }" {
353+ t .Errorf ("Expected %v, but got %v" , "{\" query\" :\" SELECT * FROM c\" }" , verifier .requests [ 0 ]. body )
353354 }
354355}
355356
356357type pipelineVerifier struct {
358+ requests []pipelineVerifierRequest
359+ }
360+
361+ type pipelineVerifierRequest struct {
357362 method string
358363 body string
359364 contentType string
360365 isQuery bool
366+ url * url.URL
367+ headers http.Header
361368}
362369
363370func (p * pipelineVerifier ) Do (req * policy.Request ) (* http.Response , error ) {
364- p .method = req .Raw ().Method
371+ pr := pipelineVerifierRequest {}
372+ pr .method = req .Raw ().Method
373+ pr .url = req .Raw ().URL
365374 if req .Body () != nil {
366375 readBody , _ := ioutil .ReadAll (req .Body ())
367- p .body = string (readBody )
376+ pr .body = string (readBody )
368377 }
369- p .contentType = req .Raw ().Header .Get (headerContentType )
370- p .isQuery = req .Raw ().Method == http .MethodPost && req .Raw ().Header .Get (cosmosHeaderQuery ) == "True"
378+ pr .contentType = req .Raw ().Header .Get (headerContentType )
379+ pr .headers = req .Raw ().Header
380+ pr .isQuery = req .Raw ().Method == http .MethodPost && req .Raw ().Header .Get (cosmosHeaderQuery ) == "True"
381+ p .requests = append (p .requests , pr )
371382 return req .Next ()
372383}
0 commit comments