Browse Source

add test helper methods

add methods for testing request method, request form values, and URL
parse error
Will Norris 13 years ago
parent
commit
5afbb4a7c9
4 changed files with 129 additions and 380 deletions
  1. +27
    -7
      github/github_test.go
  2. +64
    -236
      github/orgs_test.go
  3. +32
    -114
      github/repos_test.go
  4. +6
    -23
      github/users_test.go

+ 27
- 7
github/github_test.go View File

@ -47,6 +47,31 @@ func teardown() {
server.Close()
}
func testMethod(t *testing.T, r *http.Request, want string) {
if want != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, want)
}
}
type values map[string]string
func testFormValues(t *testing.T, r *http.Request, values values) {
for key, want := range values {
if v := r.FormValue(key); v != want {
t.Errorf("Request parameter %v = %v, want %v", key, v, want)
}
}
}
func testURLParseError(t *testing.T, err error) {
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok || err.Op != "parse" {
t.Errorf("Expected URL parse error, got %+v", err)
}
}
func TestNewClient(t *testing.T) {
c := NewClient(nil)
@ -102,12 +127,7 @@ func TestNewRequest_invalidJSON(t *testing.T) {
func TestNewRequest_badURL(t *testing.T) {
c := NewClient(nil)
_, err := c.NewRequest("GET", ":", nil)
if err == nil {
t.Error("Expected error to be returned.")
}
if err, ok := err.(*url.Error); !ok || err.Op != "parse" {
t.Errorf("Expected a URL parsing error; got %+v.", err)
}
testURLParseError(t, err)
}
func TestDo(t *testing.T) {
@ -352,7 +372,7 @@ func TestUnauthenticatedRateLimitedTransport_transport(t *testing.T) {
tp = &UnauthenticatedRateLimitedTransport{
ClientID: "id",
ClientSecret: "secret",
Transport: &http.Transport{},
Transport: &http.Transport{},
}
if tp.transport() == http.DefaultTransport {
t.Errorf("Expected custom transport to be used.")


+ 64
- 236
github/orgs_test.go View File

@ -10,7 +10,6 @@ import (
"encoding/json"
"fmt"
"net/http"
"net/url"
"reflect"
"testing"
)
@ -20,9 +19,7 @@ func TestOrganizationsService_List_authenticatedUser(t *testing.T) {
defer teardown()
mux.HandleFunc("/user/orgs", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
fmt.Fprint(w, `[{"id":1},{"id":2}]`)
})
@ -42,14 +39,9 @@ func TestOrganizationsService_List_specifiedUser(t *testing.T) {
defer teardown()
mux.HandleFunc("/users/u/orgs", func(w http.ResponseWriter, r *http.Request) {
var v, want string
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
testFormValues(t, r, values{"page": "2"})
fmt.Fprint(w, `[{"id":1},{"id":2}]`)
if v, want = r.FormValue("page"), "2"; v != want {
t.Errorf("Request page parameter = %v, want %v", v, want)
}
})
opt := &ListOptions{2}
@ -66,12 +58,7 @@ func TestOrganizationsService_List_specifiedUser(t *testing.T) {
func TestOrganizationsService_List_invalidUser(t *testing.T) {
_, err := client.Organizations.List("%", nil)
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestOrganizationsService_Get(t *testing.T) {
@ -79,9 +66,7 @@ func TestOrganizationsService_Get(t *testing.T) {
defer teardown()
mux.HandleFunc("/orgs/o", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
fmt.Fprint(w, `{"id":1, "login":"l", "url":"u", "avatar_url": "a", "location":"l"}`)
})
@ -98,12 +83,7 @@ func TestOrganizationsService_Get(t *testing.T) {
func TestOrganizationsService_Get_invalidOrg(t *testing.T) {
_, err := client.Organizations.Get("%")
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestOrganizationsService_Edit(t *testing.T) {
@ -116,9 +96,7 @@ func TestOrganizationsService_Edit(t *testing.T) {
v := new(Organization)
json.NewDecoder(r.Body).Decode(v)
if m := "PATCH"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "PATCH")
if !reflect.DeepEqual(v, input) {
t.Errorf("Request body = %+v, want %+v", v, input)
}
@ -139,12 +117,7 @@ func TestOrganizationsService_Edit(t *testing.T) {
func TestOrganizationsService_Edit_invalidOrg(t *testing.T) {
_, err := client.Organizations.Edit("%", nil)
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestOrganizationsService_ListMembers(t *testing.T) {
@ -152,9 +125,7 @@ func TestOrganizationsService_ListMembers(t *testing.T) {
defer teardown()
mux.HandleFunc("/orgs/o/members", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
fmt.Fprint(w, `[{"id":1}]`)
})
@ -171,12 +142,7 @@ func TestOrganizationsService_ListMembers(t *testing.T) {
func TestOrganizationsService_ListMembers_invalidOrg(t *testing.T) {
_, err := client.Organizations.ListMembers("%")
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestOrganizationsService_ListPublicMembers(t *testing.T) {
@ -184,9 +150,7 @@ func TestOrganizationsService_ListPublicMembers(t *testing.T) {
defer teardown()
mux.HandleFunc("/orgs/o/public_members", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
fmt.Fprint(w, `[{"id":1}]`)
})
@ -203,12 +167,7 @@ func TestOrganizationsService_ListPublicMembers(t *testing.T) {
func TestOrganizationsService_ListPublicMembers_invalidOrg(t *testing.T) {
_, err := client.Organizations.ListPublicMembers("%")
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestOrganizationsService_CheckMembership(t *testing.T) {
@ -216,9 +175,7 @@ func TestOrganizationsService_CheckMembership(t *testing.T) {
defer teardown()
mux.HandleFunc("/orgs/o/members/u", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
w.WriteHeader(http.StatusNoContent)
})
@ -226,8 +183,7 @@ func TestOrganizationsService_CheckMembership(t *testing.T) {
if err != nil {
t.Errorf("Organizations.CheckMembership returned error: %v", err)
}
want := true
if member != want {
if want := true; member != want {
t.Errorf("Organizations.CheckMembership returned %+v, want %+v", member, want)
}
}
@ -238,9 +194,7 @@ func TestOrganizationsService_CheckMembership_notMember(t *testing.T) {
defer teardown()
mux.HandleFunc("/orgs/o/members/u", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
w.WriteHeader(http.StatusNotFound)
})
@ -248,8 +202,7 @@ func TestOrganizationsService_CheckMembership_notMember(t *testing.T) {
if err != nil {
t.Errorf("Organizations.CheckMembership returned error: %+v", err)
}
want := false
if member != want {
if want := false; member != want {
t.Errorf("Organizations.CheckMembership returned %+v, want %+v", member, want)
}
}
@ -261,9 +214,7 @@ func TestOrganizationsService_CheckMembership_error(t *testing.T) {
defer teardown()
mux.HandleFunc("/orgs/o/members/u", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
http.Error(w, "BadRequest", http.StatusBadRequest)
})
@ -271,20 +222,14 @@ func TestOrganizationsService_CheckMembership_error(t *testing.T) {
if err == nil {
t.Errorf("Expected HTTP 400 response")
}
want := false
if member != want {
if want := false; member != want {
t.Errorf("Organizations.CheckMembership returned %+v, want %+v", member, want)
}
}
func TestOrganizationsService_CheckMembership_invalidOrg(t *testing.T) {
_, err := client.Organizations.CheckMembership("%", "u")
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestOrganizationsService_CheckPublicMembership(t *testing.T) {
@ -292,9 +237,7 @@ func TestOrganizationsService_CheckPublicMembership(t *testing.T) {
defer teardown()
mux.HandleFunc("/orgs/o/public_members/u", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
w.WriteHeader(http.StatusNoContent)
})
@ -302,8 +245,7 @@ func TestOrganizationsService_CheckPublicMembership(t *testing.T) {
if err != nil {
t.Errorf("Organizations.CheckPublicMembership returned error: %v", err)
}
want := true
if member != want {
if want := true; member != want {
t.Errorf("Organizations.CheckPublicMembership returned %+v, want %+v", member, want)
}
}
@ -314,9 +256,7 @@ func TestOrganizationsService_CheckPublicMembership_notMember(t *testing.T) {
defer teardown()
mux.HandleFunc("/orgs/o/public_members/u", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
w.WriteHeader(http.StatusNotFound)
})
@ -324,8 +264,7 @@ func TestOrganizationsService_CheckPublicMembership_notMember(t *testing.T) {
if err != nil {
t.Errorf("Organizations.CheckPublicMembership returned error: %v", err)
}
want := false
if member != want {
if want := false; member != want {
t.Errorf("Organizations.CheckPublicMembership returned %+v, want %+v", member, want)
}
}
@ -337,9 +276,7 @@ func TestOrganizationsService_CheckPublicMembership_error(t *testing.T) {
defer teardown()
mux.HandleFunc("/orgs/o/public_members/u", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
http.Error(w, "BadRequest", http.StatusBadRequest)
})
@ -347,20 +284,14 @@ func TestOrganizationsService_CheckPublicMembership_error(t *testing.T) {
if err == nil {
t.Errorf("Expected HTTP 400 response")
}
want := false
if member != want {
if want := false; member != want {
t.Errorf("Organizations.CheckPublicMembership returned %+v, want %+v", member, want)
}
}
func TestOrganizationsService_CheckPublicMembership_invalidOrg(t *testing.T) {
_, err := client.Organizations.CheckPublicMembership("%", "u")
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestOrganizationsService_RemoveMember(t *testing.T) {
@ -368,9 +299,7 @@ func TestOrganizationsService_RemoveMember(t *testing.T) {
defer teardown()
mux.HandleFunc("/orgs/o/members/u", func(w http.ResponseWriter, r *http.Request) {
if m := "DELETE"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "DELETE")
})
err := client.Organizations.RemoveMember("o", "u")
@ -381,12 +310,7 @@ func TestOrganizationsService_RemoveMember(t *testing.T) {
func TestOrganizationsService_RemoveMember_invalidOrg(t *testing.T) {
err := client.Organizations.RemoveMember("%", "u")
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestOrganizationsService_ListTeams(t *testing.T) {
@ -394,9 +318,7 @@ func TestOrganizationsService_ListTeams(t *testing.T) {
defer teardown()
mux.HandleFunc("/orgs/o/teams", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
fmt.Fprint(w, `[{"id":1}]`)
})
@ -413,12 +335,7 @@ func TestOrganizationsService_ListTeams(t *testing.T) {
func TestOrganizationsService_ListTeams_invalidOrg(t *testing.T) {
_, err := client.Organizations.ListTeams("%")
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestOrganizationsService_GetTeam(t *testing.T) {
@ -426,9 +343,7 @@ func TestOrganizationsService_GetTeam(t *testing.T) {
defer teardown()
mux.HandleFunc("/teams/1", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
fmt.Fprint(w, `{"id":1, "name":"n", "url":"u", "slug": "s", "permission":"p"}`)
})
@ -453,9 +368,7 @@ func TestOrganizationsService_CreateTeam(t *testing.T) {
v := new(Team)
json.NewDecoder(r.Body).Decode(v)
if m := "POST"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "POST")
if !reflect.DeepEqual(v, input) {
t.Errorf("Request body = %+v, want %+v", v, input)
}
@ -476,12 +389,7 @@ func TestOrganizationsService_CreateTeam(t *testing.T) {
func TestOrganizationsService_CreateTeam_invalidOrg(t *testing.T) {
_, err := client.Organizations.CreateTeam("%", nil)
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestOrganizationsService_EditTeam(t *testing.T) {
@ -494,9 +402,7 @@ func TestOrganizationsService_EditTeam(t *testing.T) {
v := new(Team)
json.NewDecoder(r.Body).Decode(v)
if m := "PATCH"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "PATCH")
if !reflect.DeepEqual(v, input) {
t.Errorf("Request body = %+v, want %+v", v, input)
}
@ -520,9 +426,7 @@ func TestOrganizationsService_DeleteTeam(t *testing.T) {
defer teardown()
mux.HandleFunc("/teams/1", func(w http.ResponseWriter, r *http.Request) {
if m := "DELETE"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "DELETE")
})
err := client.Organizations.DeleteTeam(1)
@ -536,9 +440,7 @@ func TestOrganizationsService_ListTeamMembers(t *testing.T) {
defer teardown()
mux.HandleFunc("/teams/1/members", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
fmt.Fprint(w, `[{"id":1}]`)
})
@ -558,17 +460,14 @@ func TestOrganizationsService_CheckTeamMembership(t *testing.T) {
defer teardown()
mux.HandleFunc("/teams/1/members/u", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
})
member, err := client.Organizations.CheckTeamMembership(1, "u")
if err != nil {
t.Errorf("Organizations.CheckTeamMembership returned error: %v", err)
}
want := true
if member != want {
if want := true; member != want {
t.Errorf("Organizations.CheckTeamMembership returned %+v, want %+v", member, want)
}
}
@ -579,9 +478,7 @@ func TestOrganizationsService_CheckTeamMembership_notMember(t *testing.T) {
defer teardown()
mux.HandleFunc("/teams/1/members/u", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
w.WriteHeader(http.StatusNotFound)
})
@ -589,8 +486,7 @@ func TestOrganizationsService_CheckTeamMembership_notMember(t *testing.T) {
if err != nil {
t.Errorf("Organizations.CheckTeamMembership returned error: %+v", err)
}
want := false
if member != want {
if want := false; member != want {
t.Errorf("Organizations.CheckTeamMembership returned %+v, want %+v", member, want)
}
}
@ -602,9 +498,7 @@ func TestOrganizationsService_CheckTeamMembership_error(t *testing.T) {
defer teardown()
mux.HandleFunc("/teams/1/members/u", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
http.Error(w, "BadRequest", http.StatusBadRequest)
})
@ -612,20 +506,14 @@ func TestOrganizationsService_CheckTeamMembership_error(t *testing.T) {
if err == nil {
t.Errorf("Expected HTTP 400 response")
}
want := false
if member != want {
if want := false; member != want {
t.Errorf("Organizations.CheckTeamMembership returned %+v, want %+v", member, want)
}
}
func TestOrganizationsService_CheckMembership_invalidUser(t *testing.T) {
_, err := client.Organizations.CheckTeamMembership(1, "%")
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestOrganizationsService_AddTeamMember(t *testing.T) {
@ -633,9 +521,7 @@ func TestOrganizationsService_AddTeamMember(t *testing.T) {
defer teardown()
mux.HandleFunc("/teams/1/members/u", func(w http.ResponseWriter, r *http.Request) {
if m := "PUT"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "PUT")
w.WriteHeader(http.StatusNoContent)
})
@ -647,12 +533,7 @@ func TestOrganizationsService_AddTeamMember(t *testing.T) {
func TestOrganizationsService_AddTeamMember_invalidUser(t *testing.T) {
err := client.Organizations.AddTeamMember(1, "%")
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestOrganizationsService_RemoveTeamMember(t *testing.T) {
@ -660,9 +541,7 @@ func TestOrganizationsService_RemoveTeamMember(t *testing.T) {
defer teardown()
mux.HandleFunc("/teams/1/members/u", func(w http.ResponseWriter, r *http.Request) {
if m := "DELETE"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "DELETE")
w.WriteHeader(http.StatusNoContent)
})
@ -674,12 +553,7 @@ func TestOrganizationsService_RemoveTeamMember(t *testing.T) {
func TestOrganizationsService_RemoveTeamMember_invalidUser(t *testing.T) {
err := client.Organizations.RemoveTeamMember(1, "%")
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestOrganizationsService_PublicizeMembership(t *testing.T) {
@ -687,9 +561,7 @@ func TestOrganizationsService_PublicizeMembership(t *testing.T) {
defer teardown()
mux.HandleFunc("/orgs/o/public_members/u", func(w http.ResponseWriter, r *http.Request) {
if m := "PUT"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "PUT")
w.WriteHeader(http.StatusNoContent)
})
@ -701,12 +573,7 @@ func TestOrganizationsService_PublicizeMembership(t *testing.T) {
func TestOrganizationsService_PublicizeMembership_invalidOrg(t *testing.T) {
err := client.Organizations.PublicizeMembership("%", "u")
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestOrganizationsService_ConcealMembership(t *testing.T) {
@ -714,9 +581,7 @@ func TestOrganizationsService_ConcealMembership(t *testing.T) {
defer teardown()
mux.HandleFunc("/orgs/o/public_members/u", func(w http.ResponseWriter, r *http.Request) {
if m := "DELETE"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "DELETE")
w.WriteHeader(http.StatusNoContent)
})
@ -728,12 +593,7 @@ func TestOrganizationsService_ConcealMembership(t *testing.T) {
func TestOrganizationsService_ConcealMembership_invalidOrg(t *testing.T) {
err := client.Organizations.ConcealMembership("%", "u")
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestOrganizationsService_ListTeamRepos(t *testing.T) {
@ -741,9 +601,7 @@ func TestOrganizationsService_ListTeamRepos(t *testing.T) {
defer teardown()
mux.HandleFunc("/teams/1/repos", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
fmt.Fprint(w, `[{"id":1}]`)
})
@ -763,9 +621,7 @@ func TestOrganizationsService_CheckTeamRepo_true(t *testing.T) {
defer teardown()
mux.HandleFunc("/teams/1/repos/o/r", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
w.WriteHeader(http.StatusNoContent)
})
@ -773,8 +629,7 @@ func TestOrganizationsService_CheckTeamRepo_true(t *testing.T) {
if err != nil {
t.Errorf("Organizations.CheckTeamRepo returned error: %v", err)
}
want := true
if managed != want {
if want := true; managed != want {
t.Errorf("Organizations.CheckTeamRepo returned %+v, want %+v", managed, want)
}
}
@ -784,9 +639,7 @@ func TestOrganizationsService_CheckTeamRepo_false(t *testing.T) {
defer teardown()
mux.HandleFunc("/teams/1/repos/o/r", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
w.WriteHeader(http.StatusNotFound)
})
@ -794,8 +647,7 @@ func TestOrganizationsService_CheckTeamRepo_false(t *testing.T) {
if err != nil {
t.Errorf("Organizations.CheckTeamRepo returned error: %v", err)
}
want := false
if managed != want {
if want := false; managed != want {
t.Errorf("Organizations.CheckTeamRepo returned %+v, want %+v", managed, want)
}
}
@ -805,9 +657,7 @@ func TestOrganizationsService_CheckTeamRepo_error(t *testing.T) {
defer teardown()
mux.HandleFunc("/teams/1/repos/o/r", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
http.Error(w, "BadRequest", http.StatusBadRequest)
})
@ -815,20 +665,14 @@ func TestOrganizationsService_CheckTeamRepo_error(t *testing.T) {
if err == nil {
t.Errorf("Expected HTTP 400 response")
}
want := false
if managed != want {
if want := false; managed != want {
t.Errorf("Organizations.CheckTeamRepo returned %+v, want %+v", managed, want)
}
}
func TestOrganizationsService_CheckTeamRepo_invalidOwner(t *testing.T) {
_, err := client.Organizations.CheckTeamRepo(1, "%", "r")
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestOrganizationsService_AddTeamRepo(t *testing.T) {
@ -836,9 +680,7 @@ func TestOrganizationsService_AddTeamRepo(t *testing.T) {
defer teardown()
mux.HandleFunc("/teams/1/repos/o/r", func(w http.ResponseWriter, r *http.Request) {
if m := "PUT"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "PUT")
w.WriteHeader(http.StatusNoContent)
})
@ -853,9 +695,7 @@ func TestOrganizationsService_AddTeamRepo_noAccess(t *testing.T) {
defer teardown()
mux.HandleFunc("/teams/1/repos/o/r", func(w http.ResponseWriter, r *http.Request) {
if m := "PUT"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "PUT")
w.WriteHeader(422)
})
@ -867,12 +707,7 @@ func TestOrganizationsService_AddTeamRepo_noAccess(t *testing.T) {
func TestOrganizationsService_AddTeamRepo_invalidOwner(t *testing.T) {
err := client.Organizations.AddTeamRepo(1, "%", "r")
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestOrganizationsService_RemoveTeamRepo(t *testing.T) {
@ -880,9 +715,7 @@ func TestOrganizationsService_RemoveTeamRepo(t *testing.T) {
defer teardown()
mux.HandleFunc("/teams/1/repos/o/r", func(w http.ResponseWriter, r *http.Request) {
if m := "DELETE"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "DELETE")
w.WriteHeader(http.StatusNoContent)
})
@ -894,10 +727,5 @@ func TestOrganizationsService_RemoveTeamRepo(t *testing.T) {
func TestOrganizationsService_RemoveTeamRepo_invalidOwner(t *testing.T) {
err := client.Organizations.RemoveTeamRepo(1, "%", "r")
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}

+ 32
- 114
github/repos_test.go View File

@ -10,7 +10,6 @@ import (
"encoding/json"
"fmt"
"net/http"
"net/url"
"reflect"
"testing"
)
@ -20,9 +19,7 @@ func TestRepositoriesService_List_authenticatedUser(t *testing.T) {
defer teardown()
mux.HandleFunc("/user/repos", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
fmt.Fprint(w, `[{"id":1},{"id":2}]`)
})
@ -42,22 +39,13 @@ func TestRepositoriesService_List_specifiedUser(t *testing.T) {
defer teardown()
mux.HandleFunc("/users/u/repos", func(w http.ResponseWriter, r *http.Request) {
var v, want string
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
if v, want = r.FormValue("type"), "owner"; v != want {
t.Errorf("Request type parameter = %v, want %v", v, want)
}
if v, want = r.FormValue("sort"), "created"; v != want {
t.Errorf("Request sort parameter = %v, want %v", v, want)
}
if v, want = r.FormValue("direction"), "asc"; v != want {
t.Errorf("Request direction parameter = %v, want %v", v, want)
}
if v, want = r.FormValue("page"), "2"; v != want {
t.Errorf("Request page parameter = %v, want %v", v, want)
}
testMethod(t, r, "GET")
testFormValues(t, r, values{
"type": "owner",
"sort": "created",
"direction": "asc",
"page": "2",
})
fmt.Fprint(w, `[{"id":1}]`)
})
@ -76,12 +64,7 @@ func TestRepositoriesService_List_specifiedUser(t *testing.T) {
func TestRepositoriesService_List_invalidUser(t *testing.T) {
_, err := client.Repositories.List("%", nil)
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestRepositoriesService_ListByOrg(t *testing.T) {
@ -89,16 +72,11 @@ func TestRepositoriesService_ListByOrg(t *testing.T) {
defer teardown()
mux.HandleFunc("/orgs/o/repos", func(w http.ResponseWriter, r *http.Request) {
var v, want string
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
if v, want = r.FormValue("type"), "forks"; v != want {
t.Errorf("Request type parameter = %v, want %v", v, want)
}
if v, want = r.FormValue("page"), "2"; v != want {
t.Errorf("Request page parameter = %v, want %v", v, want)
}
testMethod(t, r, "GET")
testFormValues(t, r, values{
"type": "forks",
"page": "2",
})
fmt.Fprint(w, `[{"id":1}]`)
})
@ -116,12 +94,7 @@ func TestRepositoriesService_ListByOrg(t *testing.T) {
func TestRepositoriesService_ListByOrg_invalidOrg(t *testing.T) {
_, err := client.Repositories.ListByOrg("%", nil)
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestRepositoriesService_ListAll(t *testing.T) {
@ -129,13 +102,8 @@ func TestRepositoriesService_ListAll(t *testing.T) {
defer teardown()
mux.HandleFunc("/repositories", func(w http.ResponseWriter, r *http.Request) {
var v, want string
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
if v, want = r.FormValue("since"), "1"; v != want {
t.Errorf("Request since parameter = %v, want %v", v, want)
}
testMethod(t, r, "GET")
testFormValues(t, r, values{"since": "1"})
fmt.Fprint(w, `[{"id":1}]`)
})
@ -161,9 +129,7 @@ func TestRepositoriesService_Create_user(t *testing.T) {
v := new(Repository)
json.NewDecoder(r.Body).Decode(v)
if m := "POST"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "POST")
if !reflect.DeepEqual(v, input) {
t.Errorf("Request body = %+v, want %+v", v, input)
}
@ -192,9 +158,7 @@ func TestRepositoriesService_Create_org(t *testing.T) {
v := new(Repository)
json.NewDecoder(r.Body).Decode(v)
if m := "POST"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "POST")
if !reflect.DeepEqual(v, input) {
t.Errorf("Request body = %+v, want %+v", v, input)
}
@ -215,12 +179,7 @@ func TestRepositoriesService_Create_org(t *testing.T) {
func TestRepositoriesService_Create_invalidOrg(t *testing.T) {
_, err := client.Repositories.Create("%", nil)
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestRepositoriesService_Get(t *testing.T) {
@ -228,9 +187,7 @@ func TestRepositoriesService_Get(t *testing.T) {
defer teardown()
mux.HandleFunc("/repos/o/r", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
fmt.Fprint(w, `{"id":1,"name":"n","description":"d","owner":{"login":"l"}}`)
})
@ -247,12 +204,7 @@ func TestRepositoriesService_Get(t *testing.T) {
func TestRepositoriesService_Get_invalidOwner(t *testing.T) {
_, err := client.Repositories.Get("%", "r")
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestRepositoriesService_ListForks(t *testing.T) {
@ -260,13 +212,8 @@ func TestRepositoriesService_ListForks(t *testing.T) {
defer teardown()
mux.HandleFunc("/repos/o/r/forks", func(w http.ResponseWriter, r *http.Request) {
var v, want string
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
if v, want = r.FormValue("sort"), "newest"; v != want {
t.Errorf("Request type parameter = %v, want %v", v, want)
}
testMethod(t, r, "GET")
testFormValues(t, r, values{"sort": "newest"})
fmt.Fprint(w, `[{"id":1},{"id":2}]`)
})
@ -284,12 +231,7 @@ func TestRepositoriesService_ListForks(t *testing.T) {
func TestRepositoriesService_ListForks_invalidOwner(t *testing.T) {
_, err := client.Repositories.ListForks("%", "r", nil)
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestRepositoriesService_CreateFork(t *testing.T) {
@ -297,13 +239,8 @@ func TestRepositoriesService_CreateFork(t *testing.T) {
defer teardown()
mux.HandleFunc("/repos/o/r/forks", func(w http.ResponseWriter, r *http.Request) {
var v, want string
if m := "POST"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
if v, want = r.FormValue("organization"), "o"; v != want {
t.Errorf("Request type parameter = %v, want %v", v, want)
}
testMethod(t, r, "POST")
testFormValues(t, r, values{"organization": "o"})
fmt.Fprint(w, `{"id":1}`)
})
@ -321,12 +258,7 @@ func TestRepositoriesService_CreateFork(t *testing.T) {
func TestRepositoriesService_CreateFork_invalidOwner(t *testing.T) {
_, err := client.Repositories.CreateFork("%", "r", nil)
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestRepositoriesService_ListStatuses(t *testing.T) {
@ -334,9 +266,7 @@ func TestRepositoriesService_ListStatuses(t *testing.T) {
defer teardown()
mux.HandleFunc("/repos/o/r/statuses/r", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
fmt.Fprint(w, `[{"id":1}]`)
})
@ -353,12 +283,7 @@ func TestRepositoriesService_ListStatuses(t *testing.T) {
func TestRepositoriesService_ListStatuses_invalidOwner(t *testing.T) {
_, err := client.Repositories.ListStatuses("%", "r", "r")
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestRepositoriesService_CreateStatus(t *testing.T) {
@ -371,9 +296,7 @@ func TestRepositoriesService_CreateStatus(t *testing.T) {
v := new(RepoStatus)
json.NewDecoder(r.Body).Decode(v)
if m := "POST"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "POST")
if !reflect.DeepEqual(v, input) {
t.Errorf("Request body = %+v, want %+v", v, input)
}
@ -393,10 +316,5 @@ func TestRepositoriesService_CreateStatus(t *testing.T) {
func TestRepositoriesService_CreateStatus_invalidOwner(t *testing.T) {
_, err := client.Repositories.CreateStatus("%", "r", "r", nil)
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}

+ 6
- 23
github/users_test.go View File

@ -10,7 +10,6 @@ import (
"encoding/json"
"fmt"
"net/http"
"net/url"
"reflect"
"testing"
)
@ -20,9 +19,7 @@ func TestUsersService_Get_authenticatedUser(t *testing.T) {
defer teardown()
mux.HandleFunc("/user", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
fmt.Fprint(w, `{"id":1}`)
})
@ -42,9 +39,7 @@ func TestUsersService_Get_specifiedUser(t *testing.T) {
defer teardown()
mux.HandleFunc("/users/u", func(w http.ResponseWriter, r *http.Request) {
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "GET")
fmt.Fprint(w, `{"id":1}`)
})
@ -61,12 +56,7 @@ func TestUsersService_Get_specifiedUser(t *testing.T) {
func TestUsersService_Get_invalidUser(t *testing.T) {
_, err := client.Users.Get("%")
if err == nil {
t.Errorf("Expected error to be returned")
}
if err, ok := err.(*url.Error); !ok {
t.Errorf("Expected URL parse error, got %+v", err)
}
testURLParseError(t, err)
}
func TestUsersService_Edit(t *testing.T) {
@ -79,9 +69,7 @@ func TestUsersService_Edit(t *testing.T) {
v := new(User)
json.NewDecoder(r.Body).Decode(v)
if m := "PATCH"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
testMethod(t, r, "PATCH")
if !reflect.DeepEqual(v, input) {
t.Errorf("Request body = %+v, want %+v", v, input)
}
@ -105,13 +93,8 @@ func TestUsersService_ListAll(t *testing.T) {
defer teardown()
mux.HandleFunc("/users", func(w http.ResponseWriter, r *http.Request) {
var v, want string
if m := "GET"; m != r.Method {
t.Errorf("Request method = %v, want %v", r.Method, m)
}
if v, want = r.FormValue("since"), "1"; v != want {
t.Errorf("Request since parameter = %v, want %v", v, want)
}
testMethod(t, r, "GET")
testFormValues(t, r, values{"since": "1"})
fmt.Fprint(w, `[{"id":2}]`)
})


Loading…
Cancel
Save