-
Notifications
You must be signed in to change notification settings - Fork 61
/
user_params_test.go
65 lines (63 loc) · 1.72 KB
/
user_params_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
package twitter
import (
"net/http"
"net/http/httptest"
"net/url"
"reflect"
"strings"
"testing"
)
func TestUserFieldOptions_addQuery(t *testing.T) {
type fields struct {
Expansions []Expansion
TweetFields []TweetField
UserFields []UserField
}
type args struct {
req *http.Request
}
tests := []struct {
name string
fields fields
args args
want url.Values
}{
{
name: "no queries",
fields: fields{},
args: args{
req: httptest.NewRequest(http.MethodGet, "https://www.go-twitter.com", nil),
},
want: url.Values{},
},
{
name: "queries",
fields: fields{
Expansions: []Expansion{ExpansionAuthorID},
TweetFields: []TweetField{TweetFieldPossiblySensitve, TweetFieldNonPublicMetrics},
UserFields: []UserField{UserFieldProfileImageURL, UserFieldUserName},
},
args: args{
req: httptest.NewRequest(http.MethodGet, "https://www.go-twitter.com", nil),
},
want: url.Values{
"expansions": []string{strings.Join(expansionStringArray([]Expansion{ExpansionAuthorID}), ",")},
"tweet.fields": []string{strings.Join(tweetFieldStringArray([]TweetField{TweetFieldPossiblySensitve, TweetFieldNonPublicMetrics}), ",")},
"user.fields": []string{strings.Join(userFieldStringArray([]UserField{UserFieldProfileImageURL, UserFieldUserName}), ",")},
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
u := UserFieldOptions{
Expansions: tt.fields.Expansions,
TweetFields: tt.fields.TweetFields,
UserFields: tt.fields.UserFields,
}
u.addQuery(tt.args.req)
if reflect.DeepEqual(tt.args.req.URL.Query(), tt.want) == false {
t.Errorf("UserFieldOptions.addQuery() got %v want %v", tt.args.req.URL.Query(), tt.want)
}
})
}
}