~nskaggs/+junk/xenial-test

« back to all changes in this revision

Viewing changes to src/github.com/Azure/azure-sdk-for-go/Godeps/_workspace/src/github.com/Azure/go-autorest/autorest/azure/azure_test.go

  • Committer: Nicholas Skaggs
  • Date: 2016-10-24 20:56:05 UTC
  • Revision ID: nicholas.skaggs@canonical.com-20161024205605-z8lta0uvuhtxwzwl
Initi with beta15

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package azure
 
2
 
 
3
import (
 
4
        "fmt"
 
5
        "net/http"
 
6
        "strconv"
 
7
        "testing"
 
8
 
 
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"
 
11
)
 
12
 
 
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{},
 
17
                AsGet(),
 
18
                WithBaseURL("https://microsoft.com/a/b/c/"))
 
19
 
 
20
        c := Client{Sender: mocks.NewSender()}
 
21
        c.RequestInspector = WithReturningClientID(uuid)
 
22
 
 
23
        c.Send(req)
 
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))
 
28
        // Output:
 
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
 
31
}
 
32
 
 
33
func TestWithReturningClientIDReturnsError(t *testing.T) {
 
34
        var errIn error
 
35
        uuid := "71FDB9F4-5E49-4C12-B266-DE7B4FD999A6"
 
36
        _, errOut := Prepare(&http.Request{},
 
37
                withErrorPrepareDecorator(&errIn),
 
38
                WithReturningClientID(uuid))
 
39
 
 
40
        if errOut == nil || errIn != errOut {
 
41
                t.Errorf("azure: WithReturningClientID failed to exit early when receiving an error -- expected (%v), received (%v)",
 
42
                        errIn, errOut)
 
43
        }
 
44
}
 
45
 
 
46
func TestWithClientID(t *testing.T) {
 
47
        uuid := "71FDB9F4-5E49-4C12-B266-DE7B4FD999A6"
 
48
        req, _ := Prepare(&http.Request{},
 
49
                WithClientID(uuid))
 
50
 
 
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))
 
54
        }
 
55
}
 
56
 
 
57
func TestWithReturnClientID(t *testing.T) {
 
58
        b := false
 
59
        req, _ := Prepare(&http.Request{},
 
60
                WithReturnClientID(b))
 
61
 
 
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))
 
65
        }
 
66
}
 
67
 
 
68
func TestExtractClientID(t *testing.T) {
 
69
        uuid := "71FDB9F4-5E49-4C12-B266-DE7B4FD999A6"
 
70
        resp := mocks.NewResponse()
 
71
        mocks.SetResponseHeader(resp, HeaderClientID, uuid)
 
72
 
 
73
        if ExtractClientID(resp) != uuid {
 
74
                t.Errorf("azure: ExtractClientID failed to extract the %s -- expected %s, received %s",
 
75
                        HeaderClientID, uuid, ExtractClientID(resp))
 
76
        }
 
77
}
 
78
 
 
79
func TestExtractRequestID(t *testing.T) {
 
80
        uuid := "71FDB9F4-5E49-4C12-B266-DE7B4FD999A6"
 
81
        resp := mocks.NewResponse()
 
82
        mocks.SetResponseHeader(resp, HeaderRequestID, uuid)
 
83
 
 
84
        if ExtractRequestID(resp) != uuid {
 
85
                t.Errorf("azure: ExtractRequestID failed to extract the %s -- expected %s, received %s",
 
86
                        HeaderRequestID, uuid, ExtractRequestID(resp))
 
87
        }
 
88
}
 
89
 
 
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")
 
94
                        return r, *e
 
95
                })
 
96
        }
 
97
}