| @ -0,0 +1,117 @@ | |||||
| // Copyright 2013 Google. All rights reserved. | |||||
| // | |||||
| // Use of this source code is governed by a BSD-style | |||||
| // license that can be found in the LICENSE file or at | |||||
| // https://developers.google.com/open-source/licenses/bsd | |||||
| package github | |||||
| import ( | |||||
| "encoding/json" | |||||
| "fmt" | |||||
| "net/http" | |||||
| "reflect" | |||||
| "testing" | |||||
| ) | |||||
| func TestUsersService_Get_authenticatedUser(t *testing.T) { | |||||
| setup() | |||||
| defer teardown() | |||||
| mux.HandleFunc("/user", func(w http.ResponseWriter, r *http.Request) { | |||||
| if r.Method != "GET" { | |||||
| t.Errorf("Request method = %v, want %v", r.Method, "GET") | |||||
| } | |||||
| fmt.Fprint(w, `{"id":1}`) | |||||
| }) | |||||
| user, err := client.Users.Get("") | |||||
| if err != nil { | |||||
| t.Errorf("Users.Get returned error: %v", err) | |||||
| } | |||||
| want := &User{ID: 1} | |||||
| if !reflect.DeepEqual(user, want) { | |||||
| t.Errorf("Users.Get returned %+v, want %+v", user, want) | |||||
| } | |||||
| } | |||||
| func TestUsersService_Get_specifiedUser(t *testing.T) { | |||||
| setup() | |||||
| defer teardown() | |||||
| mux.HandleFunc("/users/u", func(w http.ResponseWriter, r *http.Request) { | |||||
| if r.Method != "GET" { | |||||
| t.Errorf("Request method = %v, want %v", r.Method, "GET") | |||||
| } | |||||
| fmt.Fprint(w, `{"id":1}`) | |||||
| }) | |||||
| user, err := client.Users.Get("u") | |||||
| if err != nil { | |||||
| t.Errorf("Users.Get returned error: %v", err) | |||||
| } | |||||
| want := &User{ID: 1} | |||||
| if !reflect.DeepEqual(user, want) { | |||||
| t.Errorf("Users.Get returned %+v, want %+v", user, want) | |||||
| } | |||||
| } | |||||
| func TestUsersService_Edit(t *testing.T) { | |||||
| setup() | |||||
| defer teardown() | |||||
| input := &User{Name: "n"} | |||||
| mux.HandleFunc("/user", func(w http.ResponseWriter, r *http.Request) { | |||||
| v := new(User) | |||||
| json.NewDecoder(r.Body).Decode(v) | |||||
| if r.Method != "PATCH" { | |||||
| t.Errorf("Request method = %v, want %v", r.Method, "GET") | |||||
| } | |||||
| if !reflect.DeepEqual(v, input) { | |||||
| t.Errorf("Request body = %+v, want %+v", v, input) | |||||
| } | |||||
| fmt.Fprint(w, `{"id":1}`) | |||||
| }) | |||||
| user, err := client.Users.Edit(input) | |||||
| if err != nil { | |||||
| t.Errorf("Users.Edit returned error: %v", err) | |||||
| } | |||||
| want := &User{ID: 1} | |||||
| if !reflect.DeepEqual(user, want) { | |||||
| t.Errorf("Users.Edit returned %+v, want %+v", user, want) | |||||
| } | |||||
| } | |||||
| func TestUsersService_List(t *testing.T) { | |||||
| setup() | |||||
| defer teardown() | |||||
| mux.HandleFunc("/users", func(w http.ResponseWriter, r *http.Request) { | |||||
| var v string | |||||
| if r.Method != "GET" { | |||||
| t.Errorf("Request method = %v, want %v", r.Method, "GET") | |||||
| } | |||||
| if v = r.FormValue("since"); v != "1" { | |||||
| t.Errorf("Request since parameter = %v, want %v", v, "1") | |||||
| } | |||||
| fmt.Fprint(w, `[{"id":2}]`) | |||||
| }) | |||||
| opt := &UserListOptions{1} | |||||
| users, err := client.Users.List(opt) | |||||
| if err != nil { | |||||
| t.Errorf("Users.Get returned error: %v", err) | |||||
| } | |||||
| want := []User{User{ID: 2}} | |||||
| if !reflect.DeepEqual(users, want) { | |||||
| t.Errorf("Users.List returned %+v, want %+v", users, want) | |||||
| } | |||||
| } | |||||