9
. "github.com/Azure/azure-sdk-for-go/Godeps/_workspace/src/github.com/Azure/go-autorest/autorest"
10
"github.com/Azure/azure-sdk-for-go/Godeps/_workspace/src/github.com/Azure/go-autorest/autorest/mocks"
13
// Use a Client Inspector to set the request identifier.
14
func ExampleWithClientID() {
15
uuid := "71FDB9F4-5E49-4C12-B266-DE7B4FD999A6"
16
req, _ := Prepare(&http.Request{},
18
WithBaseURL("https://microsoft.com/a/b/c/"))
20
c := Client{Sender: mocks.NewSender()}
21
c.RequestInspector = WithReturningClientID(uuid)
24
fmt.Printf("Inspector added the %s header with the value %s\n",
25
HeaderClientID, req.Header.Get(HeaderClientID))
26
fmt.Printf("Inspector added the %s header with the value %s\n",
27
HeaderReturnClientID, req.Header.Get(HeaderReturnClientID))
29
// Inspector added the x-ms-client-request-id header with the value 71FDB9F4-5E49-4C12-B266-DE7B4FD999A6
30
// Inspector added the x-ms-return-client-request-id header with the value true
33
func TestWithReturningClientIDReturnsError(t *testing.T) {
35
uuid := "71FDB9F4-5E49-4C12-B266-DE7B4FD999A6"
36
_, errOut := Prepare(&http.Request{},
37
withErrorPrepareDecorator(&errIn),
38
WithReturningClientID(uuid))
40
if errOut == nil || errIn != errOut {
41
t.Errorf("azure: WithReturningClientID failed to exit early when receiving an error -- expected (%v), received (%v)",
46
func TestWithClientID(t *testing.T) {
47
uuid := "71FDB9F4-5E49-4C12-B266-DE7B4FD999A6"
48
req, _ := Prepare(&http.Request{},
51
if req.Header.Get(HeaderClientID) != uuid {
52
t.Errorf("azure: WithClientID failed to set %s -- expected %s, received %s",
53
HeaderClientID, uuid, req.Header.Get(HeaderClientID))
57
func TestWithReturnClientID(t *testing.T) {
59
req, _ := Prepare(&http.Request{},
60
WithReturnClientID(b))
62
if req.Header.Get(HeaderReturnClientID) != strconv.FormatBool(b) {
63
t.Errorf("azure: WithReturnClientID failed to set %s -- expected %s, received %s",
64
HeaderClientID, strconv.FormatBool(b), req.Header.Get(HeaderClientID))
68
func TestExtractClientID(t *testing.T) {
69
uuid := "71FDB9F4-5E49-4C12-B266-DE7B4FD999A6"
70
resp := mocks.NewResponse()
71
mocks.SetResponseHeader(resp, HeaderClientID, uuid)
73
if ExtractClientID(resp) != uuid {
74
t.Errorf("azure: ExtractClientID failed to extract the %s -- expected %s, received %s",
75
HeaderClientID, uuid, ExtractClientID(resp))
79
func TestExtractRequestID(t *testing.T) {
80
uuid := "71FDB9F4-5E49-4C12-B266-DE7B4FD999A6"
81
resp := mocks.NewResponse()
82
mocks.SetResponseHeader(resp, HeaderRequestID, uuid)
84
if ExtractRequestID(resp) != uuid {
85
t.Errorf("azure: ExtractRequestID failed to extract the %s -- expected %s, received %s",
86
HeaderRequestID, uuid, ExtractRequestID(resp))
90
func withErrorPrepareDecorator(e *error) PrepareDecorator {
91
return func(p Preparer) Preparer {
92
return PreparerFunc(func(r *http.Request) (*http.Request, error) {
93
*e = fmt.Errorf("autorest: Faux Prepare Error")