Skip to content

Commit f095daf

Browse files
committed
Moved http request building logic from request handlers and into client
1 parent 198679d commit f095daf

File tree

445 files changed

+1748
-1732
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

445 files changed

+1748
-1732
lines changed

src/ds3/ds3Client_test.go

Lines changed: 56 additions & 59 deletions
Large diffs are not rendered by default.

src/ds3/ds3Deletes.go

Lines changed: 67 additions & 67 deletions
Large diffs are not rendered by default.

src/ds3/ds3Gets.go

Lines changed: 295 additions & 295 deletions
Large diffs are not rendered by default.

src/ds3/ds3Heads.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ func (client *Client) HeadBucket(request *models.HeadBucketRequest) (*models.Hea
2929
return nil, err
3030
}
3131

32-
networkRetryDecorator := networking.NewNetworkRetryDecorator(&(client.sendNetwork), client.clientPolicy.maxRetries)
32+
networkRetryDecorator := networking.NewNetworkRetryDecorator(client.sendNetwork, client.clientPolicy.maxRetries)
3333

3434
// Invoke the HTTP request.
3535
response, requestErr := networkRetryDecorator.Invoke(httpRequest)
@@ -52,7 +52,7 @@ func (client *Client) HeadObject(request *models.HeadObjectRequest) (*models.Hea
5252
return nil, err
5353
}
5454

55-
networkRetryDecorator := networking.NewNetworkRetryDecorator(&(client.sendNetwork), client.clientPolicy.maxRetries)
55+
networkRetryDecorator := networking.NewNetworkRetryDecorator(client.sendNetwork, client.clientPolicy.maxRetries)
5656

5757
// Invoke the HTTP request.
5858
response, requestErr := networkRetryDecorator.Invoke(httpRequest)

src/ds3/ds3Mocks_test.go

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,17 @@ import (
66
"testing"
77
"net/url"
88
"net/http"
9-
"ds3/networking"
109
"reflect"
10+
"ds3/models"
11+
"ds3/networking"
1112
)
1213

1314
func mockedClient(t *testing.T) mockedClientWithTest {
1415
return &mockedNet{t: t}
1516
}
1617

1718
type mockedClientWithTest interface {
18-
Expecting(verb networking.HttpVerb, path string, queryParams *url.Values, requestHeaders *http.Header, request *string) mockedClientWithExpectation
19+
Expecting(verb string, path string, queryParams *url.Values, requestHeaders *http.Header, request *string) mockedClientWithExpectation
1920
}
2021

2122
type mockedClientWithExpectation interface {
@@ -27,7 +28,7 @@ type mockedNet struct {
2728
t *testing.T
2829

2930
// Expected data to validate.
30-
verb networking.HttpVerb
31+
verb string
3132
path string
3233
queryParams *url.Values
3334
requestHeaders *http.Header
@@ -39,7 +40,7 @@ type mockedNet struct {
3940
headers *http.Header
4041
}
4142

42-
func (mockedNet *mockedNet) Expecting(verb networking.HttpVerb, path string, queryParams *url.Values, requestHeaders *http.Header, request *string) mockedClientWithExpectation {
43+
func (mockedNet *mockedNet) Expecting(verb string, path string, queryParams *url.Values, requestHeaders *http.Header, request *string) mockedClientWithExpectation {
4344
mockedNet.verb = verb
4445
mockedNet.path = path
4546
mockedNet.queryParams = queryParams
@@ -52,30 +53,31 @@ func (mockedNet *mockedNet) Returning(statusCode int, response string, headers *
5253
mockedNet.statusCode = statusCode
5354
mockedNet.response = response
5455
mockedNet.headers = headers
55-
return &Client{mockedNet, &ClientPolicy{5, 5}}
56+
var url url.URL
57+
var endpointUrl, _ = url.Parse("/")
58+
return &Client{
59+
sendNetwork: mockedNet,
60+
clientPolicy: &ClientPolicy{5, 5},
61+
connectionInfo: &networking.ConnectionInfo{
62+
Endpoint: endpointUrl,
63+
Credentials: &networking.Credentials{AccessId: "AccessId", Key: "Key"},
64+
},
65+
}
5666
}
5767

58-
func (mockedNet *mockedNet) Invoke(ds3Request networking.Ds3Request) (networking.WebResponse, error) {
68+
func (mockedNet *mockedNet) Invoke(httpRequest *http.Request) (models.WebResponse, error) {
5969
// Verify the verb.
60-
verb := ds3Request.Verb()
61-
if verb != mockedNet.verb {
62-
actualVerb, err := verb.String()
63-
if err != nil {
64-
mockedNet.t.Error(err)
65-
} else {
66-
mockedVerb, _ := mockedNet.verb.String()
67-
mockedNet.t.Errorf("Expected verb '%s' but got '%s'.", mockedVerb, actualVerb)
68-
}
70+
if httpRequest.Method != mockedNet.verb {
71+
mockedNet.t.Errorf("Expected verb '%s' but got '%s'.", mockedNet.verb, httpRequest.Method)
6972
}
7073

7174
// Verify the path.
72-
path := ds3Request.Path()
73-
if path != mockedNet.path {
74-
mockedNet.t.Errorf("Expected path '%s' but got '%s'.", mockedNet.path, path)
75+
if httpRequest.URL.Path != mockedNet.path {
76+
mockedNet.t.Errorf("Expected path '%s' but got '%s'.", mockedNet.path, httpRequest.URL.Path)
7577
}
7678

7779
// Verify the query parameters.
78-
actualQueryParams := ds3Request.QueryParams().Encode()
80+
actualQueryParams := httpRequest.URL.RawQuery
7981
expectedQueryParams := mockedNet.queryParams.Encode()
8082
if actualQueryParams != expectedQueryParams {
8183
mockedNet.t.Errorf(
@@ -86,7 +88,9 @@ func (mockedNet *mockedNet) Invoke(ds3Request networking.Ds3Request) (networking
8688
}
8789

8890
// Verify request headers
89-
actualRequestHeaders := *ds3Request.Header()
91+
actualRequestHeaders := httpRequest.Header
92+
actualRequestHeaders.Del("Date") //remove date
93+
actualRequestHeaders.Del("Authorization") //remove authorization
9094
expectedRequestHeaders := *mockedNet.requestHeaders
9195
if len(actualRequestHeaders) != len(expectedRequestHeaders) {
9296
mockedNet.t.Errorf(
@@ -110,7 +114,7 @@ func (mockedNet *mockedNet) Invoke(ds3Request networking.Ds3Request) (networking
110114

111115
// Verify the request contents.
112116
if mockedNet.request != nil {
113-
contentStream := ds3Request.GetContentStream()
117+
contentStream := httpRequest.Body
114118
if contentStream == nil {
115119
mockedNet.t.Error("Expected a non-nil content stream, but got nil.")
116120
} else {
@@ -133,7 +137,7 @@ func (mockedNet *mockedNet) StatusCode() int {
133137
}
134138

135139
func (mockedNet *mockedNet) Body() io.ReadCloser {
136-
return networking.BuildByteReaderWithSizeDecorator([]byte(mockedNet.response))
140+
return BuildByteReaderWithSizeDecorator([]byte(mockedNet.response))
137141
}
138142

139143
func (mockedNet *mockedNet) Header() *http.Header {

0 commit comments

Comments
 (0)