| 10960 | } |
| 10961 | |
| 10962 | func TestPullRequestsService_ListIter(t *testing.T) { |
| 10963 | t.Parallel() |
| 10964 | client, mux, _ := setup(t) |
| 10965 | var callNum int |
| 10966 | mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { |
| 10967 | callNum++ |
| 10968 | switch callNum { |
| 10969 | case 1: |
| 10970 | w.Header().Set("Link", `<https://api.github.com/?page=1>; rel="next"`) |
| 10971 | fmt.Fprint(w, `[{},{},{}]`) |
| 10972 | case 2: |
| 10973 | fmt.Fprint(w, `[{},{},{},{}]`) |
| 10974 | case 3: |
| 10975 | fmt.Fprint(w, `[{},{}]`) |
| 10976 | case 4: |
| 10977 | w.WriteHeader(http.StatusNotFound) |
| 10978 | case 5: |
| 10979 | fmt.Fprint(w, `[{},{}]`) |
| 10980 | } |
| 10981 | }) |
| 10982 | |
| 10983 | iter := client.PullRequests.ListIter(t.Context(), "", "", nil) |
| 10984 | var gotItems int |
| 10985 | for _, err := range iter { |
| 10986 | gotItems++ |
| 10987 | if err != nil { |
| 10988 | t.Errorf("Unexpected error: %v", err) |
| 10989 | } |
| 10990 | } |
| 10991 | if want := 7; gotItems != want { |
| 10992 | t.Errorf("client.PullRequests.ListIter call 1 got %v items; want %v", gotItems, want) |
| 10993 | } |
| 10994 | |
| 10995 | opts := &PullRequestListOptions{} |
| 10996 | iter = client.PullRequests.ListIter(t.Context(), "", "", opts) |
| 10997 | gotItems = 0 |
| 10998 | for _, err := range iter { |
| 10999 | gotItems++ |
| 11000 | if err != nil { |
| 11001 | t.Errorf("Unexpected error: %v", err) |
| 11002 | } |
| 11003 | } |
| 11004 | if want := 2; gotItems != want { |
| 11005 | t.Errorf("client.PullRequests.ListIter call 2 got %v items; want %v", gotItems, want) |
| 11006 | } |
| 11007 | |
| 11008 | iter = client.PullRequests.ListIter(t.Context(), "", "", nil) |
| 11009 | gotItems = 0 |
| 11010 | for _, err := range iter { |
| 11011 | gotItems++ |
| 11012 | if err == nil { |
| 11013 | t.Error("expected error; got nil") |
| 11014 | } |
| 11015 | } |
| 11016 | if gotItems != 1 { |
| 11017 | t.Errorf("client.PullRequests.ListIter call 3 got %v items; want 1 (an error)", gotItems) |
| 11018 | } |
| 11019 | |