1
2
3
4
5
6 package github
7
8 import (
9 "context"
10 "fmt"
11 "net/http"
12 "testing"
13
14 "github.com/google/go-cmp/cmp"
15 )
16
17 func TestUsersService_ListBlockedUsers(t *testing.T) {
18 client, mux, _, teardown := setup()
19 defer teardown()
20
21 mux.HandleFunc("/user/blocks", func(w http.ResponseWriter, r *http.Request) {
22 testMethod(t, r, "GET")
23 testHeader(t, r, "Accept", mediaTypeBlockUsersPreview)
24 testFormValues(t, r, values{"page": "2"})
25 fmt.Fprint(w, `[{
26 "login": "octocat"
27 }]`)
28 })
29
30 opt := &ListOptions{Page: 2}
31 ctx := context.Background()
32 blockedUsers, _, err := client.Users.ListBlockedUsers(ctx, opt)
33 if err != nil {
34 t.Errorf("Users.ListBlockedUsers returned error: %v", err)
35 }
36
37 want := []*User{{Login: String("octocat")}}
38 if !cmp.Equal(blockedUsers, want) {
39 t.Errorf("Users.ListBlockedUsers returned %+v, want %+v", blockedUsers, want)
40 }
41
42 const methodName = "ListBlockedUsers"
43 testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
44 got, resp, err := client.Users.ListBlockedUsers(ctx, opt)
45 if got != nil {
46 t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got)
47 }
48 return resp, err
49 })
50 }
51
52 func TestUsersService_IsBlocked(t *testing.T) {
53 client, mux, _, teardown := setup()
54 defer teardown()
55
56 mux.HandleFunc("/user/blocks/u", func(w http.ResponseWriter, r *http.Request) {
57 testMethod(t, r, "GET")
58 testHeader(t, r, "Accept", mediaTypeBlockUsersPreview)
59 w.WriteHeader(http.StatusNoContent)
60 })
61
62 ctx := context.Background()
63 isBlocked, _, err := client.Users.IsBlocked(ctx, "u")
64 if err != nil {
65 t.Errorf("Users.IsBlocked returned error: %v", err)
66 }
67 if want := true; isBlocked != want {
68 t.Errorf("Users.IsBlocked returned %+v, want %+v", isBlocked, want)
69 }
70
71 const methodName = "IsBlocked"
72 testBadOptions(t, methodName, func() (err error) {
73 _, _, err = client.Users.IsBlocked(ctx, "\n")
74 return err
75 })
76
77 testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
78 got, resp, err := client.Users.IsBlocked(ctx, "u")
79 if got {
80 t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got)
81 }
82 return resp, err
83 })
84 }
85
86 func TestUsersService_BlockUser(t *testing.T) {
87 client, mux, _, teardown := setup()
88 defer teardown()
89
90 mux.HandleFunc("/user/blocks/u", func(w http.ResponseWriter, r *http.Request) {
91 testMethod(t, r, "PUT")
92 testHeader(t, r, "Accept", mediaTypeBlockUsersPreview)
93 w.WriteHeader(http.StatusNoContent)
94 })
95
96 ctx := context.Background()
97 _, err := client.Users.BlockUser(ctx, "u")
98 if err != nil {
99 t.Errorf("Users.BlockUser returned error: %v", err)
100 }
101
102 const methodName = "BlockUser"
103 testBadOptions(t, methodName, func() (err error) {
104 _, err = client.Users.BlockUser(ctx, "\n")
105 return err
106 })
107
108 testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
109 return client.Users.BlockUser(ctx, "u")
110 })
111 }
112
113 func TestUsersService_UnblockUser(t *testing.T) {
114 client, mux, _, teardown := setup()
115 defer teardown()
116
117 mux.HandleFunc("/user/blocks/u", func(w http.ResponseWriter, r *http.Request) {
118 testMethod(t, r, "DELETE")
119 testHeader(t, r, "Accept", mediaTypeBlockUsersPreview)
120 w.WriteHeader(http.StatusNoContent)
121 })
122
123 ctx := context.Background()
124 _, err := client.Users.UnblockUser(ctx, "u")
125 if err != nil {
126 t.Errorf("Users.UnblockUser returned error: %v", err)
127 }
128
129 const methodName = "UnblockUser"
130 testBadOptions(t, methodName, func() (err error) {
131 _, err = client.Users.UnblockUser(ctx, "\n")
132 return err
133 })
134
135 testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
136 return client.Users.UnblockUser(ctx, "u")
137 })
138 }
139
View as plain text