-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrequest_test.go
111 lines (71 loc) · 2.99 KB
/
request_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
package stretchr
import (
"github.com/stretchr/sdk-go/api"
"github.com/stretchr/sdk-go/common"
"github.com/stretchr/testify/assert"
"testing"
)
var testSession *Session
var mockedTransporter *api.MockedTransporter
func getTestSession() *Session {
testSession = NewSession("test", "account", "123")
testSession.underlyingSession = api.NewSession("project", "company", "apiKey")
mockedTransporter = new(api.MockedTransporter)
testSession.SetTransporter(mockedTransporter)
return testSession
}
func TestNewRequest(t *testing.T) {
r := NewRequest(getTestSession(), "people/123")
if assert.NotNil(t, r) {
assert.Equal(t, r.session, testSession)
assert.Equal(t, r.UnderlyingRequest.Session(), testSession.underlyingSession)
assert.Equal(t, r.UnderlyingRequest.Path(), "people/123")
}
}
func TestSession(t *testing.T) {
r := NewRequest(getTestSession(), "people/123")
assert.Equal(t, r.Session(), testSession)
}
func TestRequest_WithParam(t *testing.T) {
r := NewRequest(getTestSession(), "people")
assert.Equal(t, r, r.WithParam("name", "Mat"))
assert.Equal(t, r, r.WithParam("age", "29"))
assert.Equal(t, "Mat", r.UnderlyingRequest.QueryValues()["name"][0])
assert.Equal(t, "29", r.UnderlyingRequest.QueryValues()["age"][0])
}
func TestRequest_Where(t *testing.T) {
r := NewRequest(getTestSession(), "people/123")
returnOfWhere := r.Where("age", "18")
assert.Equal(t, returnOfWhere, r, ".Where should chain")
// add another where
r.Where("age", "<30")
if assert.Equal(t, 2, len(r.UnderlyingRequest.QueryValues()[":age"]), "Should be two values for :age") {
assert.Equal(t, "18", r.UnderlyingRequest.QueryValues()[":age"][0])
assert.Equal(t, "<30", r.UnderlyingRequest.QueryValues()[":age"][1])
}
}
func TestRequest_Limit(t *testing.T) {
r := NewRequest(getTestSession(), "people/123")
returnOfLimit := r.Limit(50)
assert.Equal(t, returnOfLimit, r, ".Limit should chain")
assert.Equal(t, "50", r.UnderlyingRequest.QueryValues()[common.ModifierLimit][0])
}
func TestRequest_Skip(t *testing.T) {
r := NewRequest(getTestSession(), "people")
returnOfSkip := r.Skip(20)
assert.Equal(t, returnOfSkip, r, ".Skip should chain")
assert.Equal(t, "20", r.UnderlyingRequest.QueryValues()[common.ModifierSkip][0])
}
func TestRequest_Page(t *testing.T) {
r := NewRequest(getTestSession(), "people")
returnOfPage := r.Page(1, 50)
assert.Equal(t, r, returnOfPage, "Page should chain")
assert.Equal(t, "0", r.UnderlyingRequest.QueryValues()[common.ModifierSkip][0])
assert.Equal(t, "50", r.UnderlyingRequest.QueryValues()[common.ModifierLimit][0])
r = NewRequest(getTestSession(), "people").Page(2, 50)
assert.Equal(t, "50", r.UnderlyingRequest.QueryValues()[common.ModifierSkip][0])
assert.Equal(t, "50", r.UnderlyingRequest.QueryValues()[common.ModifierLimit][0])
r = NewRequest(getTestSession(), "people").Page(3, 50)
assert.Equal(t, "100", r.UnderlyingRequest.QueryValues()[common.ModifierSkip][0])
assert.Equal(t, "50", r.UnderlyingRequest.QueryValues()[common.ModifierLimit][0])
}