diff --git a/README.md b/README.md index bf8afe6a131..a045feb4a52 100644 --- a/README.md +++ b/README.md @@ -355,11 +355,32 @@ for { } ``` -#### Iterators (**experimental**) #### +#### Iterators #### Go v1.23 introduces the new `iter` package. -With the `enrichman/gh-iter` package, it is possible to create iterators for `go-github`. The iterator will handle pagination for you, looping through all the available results. +The new `github/gen-iterators.go` file auto-generates "*Iter" methods in `github/github-iterators.go` +for all methods that support page number iteration (using the `NextPage` field in each response). +To handle rate limiting issues, make sure to use a rate-limiting transport. +(See [Rate Limiting](/#rate-limiting) above for more details.) +To use these methods, simply create an iterator and then range over it, for example: + +```go +client := github.NewClient(nil) +var allRepos []*github.Repository + +// create an iterator and start looping through all the results +iter := client.Repositories.ListIter(ctx, "github", nil) +for repo, err := range iter { + if err != nil { + log.Fatal(err) + } + allRepos = append(allRepos, repo) +} +``` + +Alternatively, if you wish to use an external package, there is `enrichman/gh-iter`. +Its iterator will handle pagination for you, looping through all the available results. ```go client := github.NewClient(nil) diff --git a/github/gen-iterators.go b/github/gen-iterators.go index b1d8cce4325..562bd24eb3e 100644 --- a/github/gen-iterators.go +++ b/github/gen-iterators.go @@ -6,6 +6,10 @@ //go:build ignore // gen-iterators generates iterator methods for List methods. +// +// It is meant to be used by go-github contributors in conjunction with the +// go generate tool before sending a PR to GitHub. +// Please see the CONTRIBUTING.md file for more information. package main import ( @@ -24,7 +28,7 @@ import ( ) const ( - fileSuffix = "iterators.go" + fileSuffix = "-iterators.go" ) var ( @@ -56,9 +60,10 @@ func main() { for pkgName, pkg := range pkgs { t := &templateData{ - Package: pkgName, - Methods: []*method{}, - Structs: make(map[string]*structDef), + filename: pkgName + fileSuffix, + Package: pkgName, + Methods: []*method{}, + Structs: make(map[string]*structDef), } for _, f := range pkg.Files { @@ -83,9 +88,10 @@ func sourceFilter(fi os.FileInfo) bool { } type templateData struct { - Package string - Methods []*method - Structs map[string]*structDef + filename string + Package string + Methods []*method + Structs map[string]*structDef } type structDef struct { @@ -102,6 +108,7 @@ type method struct { IterMethod string Args string CallArgs string + TestCallArgs string ZeroArgs string ReturnType string OptsType string @@ -109,7 +116,9 @@ type method struct { OptsIsPtr bool UseListOptions bool UsePage bool - TestJSON string + TestJSON1 string + TestJSON2 string + TestJSON3 string } // customTestJSON maps method names to the JSON response they expect in tests. @@ -196,7 +205,7 @@ func getZeroValue(typeStr string) string { case "bool": return "false" case "context.Context": - return "context.Background()" + return "t.Context()" default: return "nil" } @@ -245,6 +254,7 @@ func (t *templateData) processMethods(f *ast.File) error { args := []string{} callArgs := []string{} + testCallArgs := []string{} zeroArgs := []string{} var optsType string var optsName string @@ -253,10 +263,11 @@ func (t *templateData) processMethods(f *ast.File) error { for _, field := range fd.Type.Params.List { typeStr := typeToString(field.Type) + zeroArg := getZeroValue(typeStr) for _, name := range field.Names { args = append(args, fmt.Sprintf("%s %s", name.Name, typeStr)) callArgs = append(callArgs, name.Name) - zeroArgs = append(zeroArgs, getZeroValue(typeStr)) + zeroArgs = append(zeroArgs, zeroArg) if strings.HasSuffix(typeStr, "Options") { optsType = strings.TrimPrefix(typeStr, "*") @@ -265,6 +276,14 @@ func (t *templateData) processMethods(f *ast.File) error { optsIsPtr = strings.HasPrefix(typeStr, "*") } } + // second pass: generate testCallArgs after optsName is identified + for _, name := range field.Names { + if name.Name == optsName { + testCallArgs = append(testCallArgs, name.Name) + } else { + testCallArgs = append(testCallArgs, zeroArg) + } + } } if !hasOpts { @@ -292,6 +311,9 @@ func (t *templateData) processMethods(f *ast.File) error { if val, ok := customTestJSON[fd.Name.Name]; ok { testJSON = val } + testJSON1 := strings.ReplaceAll(testJSON, "[]", "[{},{},{}]") // Call 1 - return 3 items + testJSON2 := strings.ReplaceAll(testJSON, "[]", "[{},{},{},{}]") // Call 1 part 2 - return 4 items + testJSON3 := strings.ReplaceAll(testJSON, "[]", "[{},{}]") // Call 2 - return 2 items m := &method{ RecvType: recType, @@ -301,6 +323,7 @@ func (t *templateData) processMethods(f *ast.File) error { IterMethod: fd.Name.Name + "Iter", Args: strings.Join(args, ", "), CallArgs: strings.Join(callArgs, ", "), + TestCallArgs: strings.Join(testCallArgs, ", "), ZeroArgs: strings.Join(zeroArgs, ", "), ReturnType: eltType, OptsType: optsType, @@ -308,7 +331,9 @@ func (t *templateData) processMethods(f *ast.File) error { OptsIsPtr: optsIsPtr, UseListOptions: useListOptions, UsePage: usePage, - TestJSON: testJSON, + TestJSON1: testJSON1, + TestJSON2: testJSON2, + TestJSON3: testJSON3, } t.Methods = append(t.Methods, m) } @@ -354,24 +379,26 @@ func (t *templateData) dump() error { return fmt.Errorf("format.Source: %v\n%s", err, buf.String()) } logf("Writing %v...", filename) - return os.WriteFile(filename, clean, 0644) + return os.WriteFile(filename, clean, 0o644) } - if err := processTemplate(sourceTmpl, "iterators.go"); err != nil { + if err := processTemplate(sourceTmpl, t.filename); err != nil { return err } - return processTemplate(testTmpl, "iterators_gen_test.go") + return processTemplate(testTmpl, strings.ReplaceAll(t.filename, ".go", "_test.go")) } -const source = `// Copyright {{.Year}} The go-github AUTHORS. All rights reserved. +const doNotEditHeader = `// Code generated by gen-iterators; DO NOT EDIT. +// Instead, please run "go generate ./..." as described here: +// https://github.com/google/go-github/blob/master/CONTRIBUTING.md#submitting-a-patch + +// Copyright 2026 The go-github AUTHORS. All rights reserved. // // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +` -// Code generated by gen-iterators; DO NOT EDIT. -// Instead, please run "go generate ./..." as described here: -// https://github.com/google/go-github/blob/master/CONTRIBUTING.md#submitting-a-patch - +const source = doNotEditHeader + ` package {{.Package}} import ( @@ -383,15 +410,15 @@ import ( // {{.IterMethod}} returns an iterator that paginates through all results of {{.MethodName}}. func ({{.RecvVar}} *{{.RecvType}}) {{.IterMethod}}({{.Args}}) iter.Seq2[{{.ReturnType}}, error] { return func(yield func({{.ReturnType}}, error) bool) { - {{if .OptsIsPtr}} + {{if .OptsIsPtr -}} // Create a copy of opts to avoid mutating the caller's struct if {{.OptsName}} == nil { {{.OptsName}} = &{{.OptsType}}{} } else { {{.OptsName}} = Ptr(*{{.OptsName}}) } - {{end}} + {{end}} for { items, resp, err := {{.RecvVar}}.{{.MethodName}}({{.CallArgs}}) if err != nil { @@ -412,24 +439,17 @@ func ({{.RecvVar}} *{{.RecvType}}) {{.IterMethod}}({{.Args}}) iter.Seq2[{{.Retur {{.OptsName}}.ListOptions.Page = resp.NextPage {{else}} {{.OptsName}}.Page = resp.NextPage - {{end}} + {{end -}} } } } {{end}} ` -const test = `// Code generated by gen-iterators; DO NOT EDIT. - -// Copyright 2026 The go-github AUTHORS. All rights reserved. -// -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - +const test = doNotEditHeader + ` package {{.Package}} import ( - "context" "fmt" "net/http" "testing" @@ -439,17 +459,79 @@ import ( func Test{{.RecvType}}_{{.IterMethod}}(t *testing.T) { t.Parallel() client, mux, _ := setup(t) + var callNum int mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, ` + "`" + `{{.TestJSON}}` + "`" + `) + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", ` + "`" + `; rel="next"` + "`" + `) + fmt.Fprint(w, ` + "`" + `{{.TestJSON1}}` + "`" + `) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, ` + "`" + `{{.TestJSON2}}` + "`" + `) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, ` + "`" + `{{.TestJSON3}}` + "`" + `) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, ` + "`" + `{{.TestJSON3}}` + "`" + `) // Call 4 below: return 2 items, no next page, no errors + } }) - // Call iterator with zero values + // Call 1: iterator using zero values iter := client.{{.ClientField}}.{{.IterMethod}}({{.ZeroArgs}}) + var gotItems int for _, err := range iter { + gotItems++ if err != nil { t.Errorf("Unexpected error: %v", err) } } + if want := 7; gotItems != want { + t.Errorf("client.{{.ClientField}}.{{.IterMethod}} call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + {{.OptsName}} := &{{.OptsType}}{} + iter = client.{{.ClientField}}.{{.IterMethod}}({{.TestCallArgs}}) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.{{.ClientField}}.{{.IterMethod}} call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.{{.ClientField}}.{{.IterMethod}}({{.ZeroArgs}}) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.{{.ClientField}}.{{.IterMethod}} call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.{{.ClientField}}.{{.IterMethod}}({{.ZeroArgs}}) + gotItems = 0 // reset + iter(func(item {{.ReturnType}}, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.{{.ClientField}}.{{.IterMethod}} call 4 got %v items; want 1 (an error)", gotItems) + } } {{end}} ` diff --git a/github/iterators.go b/github/github-iterators.go similarity index 94% rename from github/iterators.go rename to github/github-iterators.go index 126a690a22c..3d2e3c8986f 100644 --- a/github/iterators.go +++ b/github/github-iterators.go @@ -1,4 +1,6 @@ // Code generated by gen-iterators; DO NOT EDIT. +// Instead, please run "go generate ./..." as described here: +// https://github.com/google/go-github/blob/master/CONTRIBUTING.md#submitting-a-patch // Copyright 2026 The go-github AUTHORS. All rights reserved. // @@ -15,13 +17,11 @@ import ( // ListEventsIter returns an iterator that paginates through all results of ListEvents. func (s *ActivityService) ListEventsIter(ctx context.Context, opts *ListOptions) iter.Seq2[*Event, error] { return func(yield func(*Event, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -42,7 +42,6 @@ func (s *ActivityService) ListEventsIter(ctx context.Context, opts *ListOptions) } opts.Page = resp.NextPage - } } } @@ -50,13 +49,11 @@ func (s *ActivityService) ListEventsIter(ctx context.Context, opts *ListOptions) // ListEventsForOrganizationIter returns an iterator that paginates through all results of ListEventsForOrganization. func (s *ActivityService) ListEventsForOrganizationIter(ctx context.Context, org string, opts *ListOptions) iter.Seq2[*Event, error] { return func(yield func(*Event, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -77,7 +74,6 @@ func (s *ActivityService) ListEventsForOrganizationIter(ctx context.Context, org } opts.Page = resp.NextPage - } } } @@ -85,13 +81,11 @@ func (s *ActivityService) ListEventsForOrganizationIter(ctx context.Context, org // ListEventsForRepoNetworkIter returns an iterator that paginates through all results of ListEventsForRepoNetwork. func (s *ActivityService) ListEventsForRepoNetworkIter(ctx context.Context, owner string, repo string, opts *ListOptions) iter.Seq2[*Event, error] { return func(yield func(*Event, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -112,7 +106,6 @@ func (s *ActivityService) ListEventsForRepoNetworkIter(ctx context.Context, owne } opts.Page = resp.NextPage - } } } @@ -120,13 +113,11 @@ func (s *ActivityService) ListEventsForRepoNetworkIter(ctx context.Context, owne // ListEventsPerformedByUserIter returns an iterator that paginates through all results of ListEventsPerformedByUser. func (s *ActivityService) ListEventsPerformedByUserIter(ctx context.Context, user string, publicOnly bool, opts *ListOptions) iter.Seq2[*Event, error] { return func(yield func(*Event, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -147,7 +138,6 @@ func (s *ActivityService) ListEventsPerformedByUserIter(ctx context.Context, use } opts.Page = resp.NextPage - } } } @@ -155,13 +145,11 @@ func (s *ActivityService) ListEventsPerformedByUserIter(ctx context.Context, use // ListEventsReceivedByUserIter returns an iterator that paginates through all results of ListEventsReceivedByUser. func (s *ActivityService) ListEventsReceivedByUserIter(ctx context.Context, user string, publicOnly bool, opts *ListOptions) iter.Seq2[*Event, error] { return func(yield func(*Event, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -182,7 +170,6 @@ func (s *ActivityService) ListEventsReceivedByUserIter(ctx context.Context, user } opts.Page = resp.NextPage - } } } @@ -190,13 +177,11 @@ func (s *ActivityService) ListEventsReceivedByUserIter(ctx context.Context, user // ListIssueEventsForRepositoryIter returns an iterator that paginates through all results of ListIssueEventsForRepository. func (s *ActivityService) ListIssueEventsForRepositoryIter(ctx context.Context, owner string, repo string, opts *ListOptions) iter.Seq2[*IssueEvent, error] { return func(yield func(*IssueEvent, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -217,7 +202,6 @@ func (s *ActivityService) ListIssueEventsForRepositoryIter(ctx context.Context, } opts.Page = resp.NextPage - } } } @@ -225,13 +209,11 @@ func (s *ActivityService) ListIssueEventsForRepositoryIter(ctx context.Context, // ListNotificationsIter returns an iterator that paginates through all results of ListNotifications. func (s *ActivityService) ListNotificationsIter(ctx context.Context, opts *NotificationListOptions) iter.Seq2[*Notification, error] { return func(yield func(*Notification, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &NotificationListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -252,7 +234,6 @@ func (s *ActivityService) ListNotificationsIter(ctx context.Context, opts *Notif } opts.ListOptions.Page = resp.NextPage - } } } @@ -260,13 +241,11 @@ func (s *ActivityService) ListNotificationsIter(ctx context.Context, opts *Notif // ListRepositoryEventsIter returns an iterator that paginates through all results of ListRepositoryEvents. func (s *ActivityService) ListRepositoryEventsIter(ctx context.Context, owner string, repo string, opts *ListOptions) iter.Seq2[*Event, error] { return func(yield func(*Event, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -287,7 +266,6 @@ func (s *ActivityService) ListRepositoryEventsIter(ctx context.Context, owner st } opts.Page = resp.NextPage - } } } @@ -295,13 +273,11 @@ func (s *ActivityService) ListRepositoryEventsIter(ctx context.Context, owner st // ListRepositoryNotificationsIter returns an iterator that paginates through all results of ListRepositoryNotifications. func (s *ActivityService) ListRepositoryNotificationsIter(ctx context.Context, owner string, repo string, opts *NotificationListOptions) iter.Seq2[*Notification, error] { return func(yield func(*Notification, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &NotificationListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -322,7 +298,6 @@ func (s *ActivityService) ListRepositoryNotificationsIter(ctx context.Context, o } opts.ListOptions.Page = resp.NextPage - } } } @@ -330,13 +305,11 @@ func (s *ActivityService) ListRepositoryNotificationsIter(ctx context.Context, o // ListStargazersIter returns an iterator that paginates through all results of ListStargazers. func (s *ActivityService) ListStargazersIter(ctx context.Context, owner string, repo string, opts *ListOptions) iter.Seq2[*Stargazer, error] { return func(yield func(*Stargazer, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -357,7 +330,6 @@ func (s *ActivityService) ListStargazersIter(ctx context.Context, owner string, } opts.Page = resp.NextPage - } } } @@ -365,13 +337,11 @@ func (s *ActivityService) ListStargazersIter(ctx context.Context, owner string, // ListStarredIter returns an iterator that paginates through all results of ListStarred. func (s *ActivityService) ListStarredIter(ctx context.Context, user string, opts *ActivityListStarredOptions) iter.Seq2[*StarredRepository, error] { return func(yield func(*StarredRepository, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ActivityListStarredOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -392,7 +362,6 @@ func (s *ActivityService) ListStarredIter(ctx context.Context, user string, opts } opts.ListOptions.Page = resp.NextPage - } } } @@ -400,13 +369,11 @@ func (s *ActivityService) ListStarredIter(ctx context.Context, user string, opts // ListUserEventsForOrganizationIter returns an iterator that paginates through all results of ListUserEventsForOrganization. func (s *ActivityService) ListUserEventsForOrganizationIter(ctx context.Context, org string, user string, opts *ListOptions) iter.Seq2[*Event, error] { return func(yield func(*Event, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -427,7 +394,6 @@ func (s *ActivityService) ListUserEventsForOrganizationIter(ctx context.Context, } opts.Page = resp.NextPage - } } } @@ -435,13 +401,11 @@ func (s *ActivityService) ListUserEventsForOrganizationIter(ctx context.Context, // ListWatchedIter returns an iterator that paginates through all results of ListWatched. func (s *ActivityService) ListWatchedIter(ctx context.Context, user string, opts *ListOptions) iter.Seq2[*Repository, error] { return func(yield func(*Repository, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -462,7 +426,6 @@ func (s *ActivityService) ListWatchedIter(ctx context.Context, user string, opts } opts.Page = resp.NextPage - } } } @@ -470,13 +433,11 @@ func (s *ActivityService) ListWatchedIter(ctx context.Context, user string, opts // ListWatchersIter returns an iterator that paginates through all results of ListWatchers. func (s *ActivityService) ListWatchersIter(ctx context.Context, owner string, repo string, opts *ListOptions) iter.Seq2[*User, error] { return func(yield func(*User, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -497,7 +458,6 @@ func (s *ActivityService) ListWatchersIter(ctx context.Context, owner string, re } opts.Page = resp.NextPage - } } } @@ -505,13 +465,11 @@ func (s *ActivityService) ListWatchersIter(ctx context.Context, owner string, re // ListInstallationRequestsIter returns an iterator that paginates through all results of ListInstallationRequests. func (s *AppsService) ListInstallationRequestsIter(ctx context.Context, opts *ListOptions) iter.Seq2[*InstallationRequest, error] { return func(yield func(*InstallationRequest, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -532,7 +490,6 @@ func (s *AppsService) ListInstallationRequestsIter(ctx context.Context, opts *Li } opts.Page = resp.NextPage - } } } @@ -540,13 +497,11 @@ func (s *AppsService) ListInstallationRequestsIter(ctx context.Context, opts *Li // ListInstallationsIter returns an iterator that paginates through all results of ListInstallations. func (s *AppsService) ListInstallationsIter(ctx context.Context, opts *ListOptions) iter.Seq2[*Installation, error] { return func(yield func(*Installation, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -567,7 +522,6 @@ func (s *AppsService) ListInstallationsIter(ctx context.Context, opts *ListOptio } opts.Page = resp.NextPage - } } } @@ -575,13 +529,11 @@ func (s *AppsService) ListInstallationsIter(ctx context.Context, opts *ListOptio // ListUserInstallationsIter returns an iterator that paginates through all results of ListUserInstallations. func (s *AppsService) ListUserInstallationsIter(ctx context.Context, opts *ListOptions) iter.Seq2[*Installation, error] { return func(yield func(*Installation, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -602,7 +554,6 @@ func (s *AppsService) ListUserInstallationsIter(ctx context.Context, opts *ListO } opts.Page = resp.NextPage - } } } @@ -610,13 +561,11 @@ func (s *AppsService) ListUserInstallationsIter(ctx context.Context, opts *ListO // ListCheckRunAnnotationsIter returns an iterator that paginates through all results of ListCheckRunAnnotations. func (s *ChecksService) ListCheckRunAnnotationsIter(ctx context.Context, owner string, repo string, checkRunID int64, opts *ListOptions) iter.Seq2[*CheckRunAnnotation, error] { return func(yield func(*CheckRunAnnotation, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -637,7 +586,6 @@ func (s *ChecksService) ListCheckRunAnnotationsIter(ctx context.Context, owner s } opts.Page = resp.NextPage - } } } @@ -645,13 +593,11 @@ func (s *ChecksService) ListCheckRunAnnotationsIter(ctx context.Context, owner s // ListAcceptedAssignmentsIter returns an iterator that paginates through all results of ListAcceptedAssignments. func (s *ClassroomService) ListAcceptedAssignmentsIter(ctx context.Context, assignmentID int64, opts *ListOptions) iter.Seq2[*AcceptedAssignment, error] { return func(yield func(*AcceptedAssignment, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -672,7 +618,6 @@ func (s *ClassroomService) ListAcceptedAssignmentsIter(ctx context.Context, assi } opts.Page = resp.NextPage - } } } @@ -680,13 +625,11 @@ func (s *ClassroomService) ListAcceptedAssignmentsIter(ctx context.Context, assi // ListClassroomAssignmentsIter returns an iterator that paginates through all results of ListClassroomAssignments. func (s *ClassroomService) ListClassroomAssignmentsIter(ctx context.Context, classroomID int64, opts *ListOptions) iter.Seq2[*ClassroomAssignment, error] { return func(yield func(*ClassroomAssignment, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -707,7 +650,6 @@ func (s *ClassroomService) ListClassroomAssignmentsIter(ctx context.Context, cla } opts.Page = resp.NextPage - } } } @@ -715,13 +657,11 @@ func (s *ClassroomService) ListClassroomAssignmentsIter(ctx context.Context, cla // ListClassroomsIter returns an iterator that paginates through all results of ListClassrooms. func (s *ClassroomService) ListClassroomsIter(ctx context.Context, opts *ListOptions) iter.Seq2[*Classroom, error] { return func(yield func(*Classroom, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -742,7 +682,6 @@ func (s *ClassroomService) ListClassroomsIter(ctx context.Context, opts *ListOpt } opts.Page = resp.NextPage - } } } @@ -750,13 +689,11 @@ func (s *ClassroomService) ListClassroomsIter(ctx context.Context, opts *ListOpt // ListAlertInstancesIter returns an iterator that paginates through all results of ListAlertInstances. func (s *CodeScanningService) ListAlertInstancesIter(ctx context.Context, owner string, repo string, id int64, opts *AlertInstancesListOptions) iter.Seq2[*MostRecentInstance, error] { return func(yield func(*MostRecentInstance, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &AlertInstancesListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -777,7 +714,6 @@ func (s *CodeScanningService) ListAlertInstancesIter(ctx context.Context, owner } opts.ListOptions.Page = resp.NextPage - } } } @@ -785,13 +721,11 @@ func (s *CodeScanningService) ListAlertInstancesIter(ctx context.Context, owner // ListAlertsForOrgIter returns an iterator that paginates through all results of ListAlertsForOrg. func (s *CodeScanningService) ListAlertsForOrgIter(ctx context.Context, org string, opts *AlertListOptions) iter.Seq2[*Alert, error] { return func(yield func(*Alert, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &AlertListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -812,7 +746,6 @@ func (s *CodeScanningService) ListAlertsForOrgIter(ctx context.Context, org stri } opts.ListOptions.Page = resp.NextPage - } } } @@ -820,13 +753,11 @@ func (s *CodeScanningService) ListAlertsForOrgIter(ctx context.Context, org stri // ListAlertsForRepoIter returns an iterator that paginates through all results of ListAlertsForRepo. func (s *CodeScanningService) ListAlertsForRepoIter(ctx context.Context, owner string, repo string, opts *AlertListOptions) iter.Seq2[*Alert, error] { return func(yield func(*Alert, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &AlertListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -847,7 +778,6 @@ func (s *CodeScanningService) ListAlertsForRepoIter(ctx context.Context, owner s } opts.ListOptions.Page = resp.NextPage - } } } @@ -855,13 +785,11 @@ func (s *CodeScanningService) ListAlertsForRepoIter(ctx context.Context, owner s // ListAnalysesForRepoIter returns an iterator that paginates through all results of ListAnalysesForRepo. func (s *CodeScanningService) ListAnalysesForRepoIter(ctx context.Context, owner string, repo string, opts *AnalysesListOptions) iter.Seq2[*ScanningAnalysis, error] { return func(yield func(*ScanningAnalysis, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &AnalysesListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -882,7 +810,6 @@ func (s *CodeScanningService) ListAnalysesForRepoIter(ctx context.Context, owner } opts.ListOptions.Page = resp.NextPage - } } } @@ -890,13 +817,11 @@ func (s *CodeScanningService) ListAnalysesForRepoIter(ctx context.Context, owner // ListOrgAlertsIter returns an iterator that paginates through all results of ListOrgAlerts. func (s *DependabotService) ListOrgAlertsIter(ctx context.Context, org string, opts *ListAlertsOptions) iter.Seq2[*DependabotAlert, error] { return func(yield func(*DependabotAlert, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListAlertsOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -917,7 +842,6 @@ func (s *DependabotService) ListOrgAlertsIter(ctx context.Context, org string, o } opts.ListOptions.Page = resp.NextPage - } } } @@ -925,13 +849,11 @@ func (s *DependabotService) ListOrgAlertsIter(ctx context.Context, org string, o // ListRepoAlertsIter returns an iterator that paginates through all results of ListRepoAlerts. func (s *DependabotService) ListRepoAlertsIter(ctx context.Context, owner string, repo string, opts *ListAlertsOptions) iter.Seq2[*DependabotAlert, error] { return func(yield func(*DependabotAlert, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListAlertsOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -952,7 +874,6 @@ func (s *DependabotService) ListRepoAlertsIter(ctx context.Context, owner string } opts.ListOptions.Page = resp.NextPage - } } } @@ -960,13 +881,11 @@ func (s *DependabotService) ListRepoAlertsIter(ctx context.Context, owner string // ListAppAccessibleOrganizationRepositoriesIter returns an iterator that paginates through all results of ListAppAccessibleOrganizationRepositories. func (s *EnterpriseService) ListAppAccessibleOrganizationRepositoriesIter(ctx context.Context, enterprise string, org string, opts *ListOptions) iter.Seq2[*AccessibleRepository, error] { return func(yield func(*AccessibleRepository, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -987,7 +906,6 @@ func (s *EnterpriseService) ListAppAccessibleOrganizationRepositoriesIter(ctx co } opts.Page = resp.NextPage - } } } @@ -995,13 +913,11 @@ func (s *EnterpriseService) ListAppAccessibleOrganizationRepositoriesIter(ctx co // ListAppInstallableOrganizationsIter returns an iterator that paginates through all results of ListAppInstallableOrganizations. func (s *EnterpriseService) ListAppInstallableOrganizationsIter(ctx context.Context, enterprise string, opts *ListOptions) iter.Seq2[*InstallableOrganization, error] { return func(yield func(*InstallableOrganization, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1022,7 +938,6 @@ func (s *EnterpriseService) ListAppInstallableOrganizationsIter(ctx context.Cont } opts.Page = resp.NextPage - } } } @@ -1030,13 +945,11 @@ func (s *EnterpriseService) ListAppInstallableOrganizationsIter(ctx context.Cont // ListAppInstallationsIter returns an iterator that paginates through all results of ListAppInstallations. func (s *EnterpriseService) ListAppInstallationsIter(ctx context.Context, enterprise string, org string, opts *ListOptions) iter.Seq2[*Installation, error] { return func(yield func(*Installation, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1057,7 +970,6 @@ func (s *EnterpriseService) ListAppInstallationsIter(ctx context.Context, enterp } opts.Page = resp.NextPage - } } } @@ -1065,13 +977,11 @@ func (s *EnterpriseService) ListAppInstallationsIter(ctx context.Context, enterp // ListAssignmentsIter returns an iterator that paginates through all results of ListAssignments. func (s *EnterpriseService) ListAssignmentsIter(ctx context.Context, enterprise string, enterpriseTeam string, opts *ListOptions) iter.Seq2[*Organization, error] { return func(yield func(*Organization, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1092,7 +1002,6 @@ func (s *EnterpriseService) ListAssignmentsIter(ctx context.Context, enterprise } opts.Page = resp.NextPage - } } } @@ -1100,13 +1009,11 @@ func (s *EnterpriseService) ListAssignmentsIter(ctx context.Context, enterprise // ListOrganizationCustomPropertyValuesIter returns an iterator that paginates through all results of ListOrganizationCustomPropertyValues. func (s *EnterpriseService) ListOrganizationCustomPropertyValuesIter(ctx context.Context, enterprise string, opts *ListOptions) iter.Seq2[*EnterpriseCustomPropertiesValues, error] { return func(yield func(*EnterpriseCustomPropertiesValues, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1127,7 +1034,6 @@ func (s *EnterpriseService) ListOrganizationCustomPropertyValuesIter(ctx context } opts.Page = resp.NextPage - } } } @@ -1135,13 +1041,11 @@ func (s *EnterpriseService) ListOrganizationCustomPropertyValuesIter(ctx context // ListRepositoriesForOrgAppInstallationIter returns an iterator that paginates through all results of ListRepositoriesForOrgAppInstallation. func (s *EnterpriseService) ListRepositoriesForOrgAppInstallationIter(ctx context.Context, enterprise string, org string, installationID int64, opts *ListOptions) iter.Seq2[*AccessibleRepository, error] { return func(yield func(*AccessibleRepository, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1162,7 +1066,6 @@ func (s *EnterpriseService) ListRepositoriesForOrgAppInstallationIter(ctx contex } opts.Page = resp.NextPage - } } } @@ -1170,13 +1073,11 @@ func (s *EnterpriseService) ListRepositoriesForOrgAppInstallationIter(ctx contex // ListTeamMembersIter returns an iterator that paginates through all results of ListTeamMembers. func (s *EnterpriseService) ListTeamMembersIter(ctx context.Context, enterprise string, enterpriseTeam string, opts *ListOptions) iter.Seq2[*User, error] { return func(yield func(*User, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1197,7 +1098,6 @@ func (s *EnterpriseService) ListTeamMembersIter(ctx context.Context, enterprise } opts.Page = resp.NextPage - } } } @@ -1205,13 +1105,11 @@ func (s *EnterpriseService) ListTeamMembersIter(ctx context.Context, enterprise // ListTeamsIter returns an iterator that paginates through all results of ListTeams. func (s *EnterpriseService) ListTeamsIter(ctx context.Context, enterprise string, opts *ListOptions) iter.Seq2[*EnterpriseTeam, error] { return func(yield func(*EnterpriseTeam, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1232,7 +1130,6 @@ func (s *EnterpriseService) ListTeamsIter(ctx context.Context, enterprise string } opts.Page = resp.NextPage - } } } @@ -1240,13 +1137,11 @@ func (s *EnterpriseService) ListTeamsIter(ctx context.Context, enterprise string // ListIter returns an iterator that paginates through all results of List. func (s *GistsService) ListIter(ctx context.Context, user string, opts *GistListOptions) iter.Seq2[*Gist, error] { return func(yield func(*Gist, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &GistListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1267,7 +1162,6 @@ func (s *GistsService) ListIter(ctx context.Context, user string, opts *GistList } opts.ListOptions.Page = resp.NextPage - } } } @@ -1275,13 +1169,11 @@ func (s *GistsService) ListIter(ctx context.Context, user string, opts *GistList // ListAllIter returns an iterator that paginates through all results of ListAll. func (s *GistsService) ListAllIter(ctx context.Context, opts *GistListOptions) iter.Seq2[*Gist, error] { return func(yield func(*Gist, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &GistListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1302,7 +1194,6 @@ func (s *GistsService) ListAllIter(ctx context.Context, opts *GistListOptions) i } opts.ListOptions.Page = resp.NextPage - } } } @@ -1310,13 +1201,11 @@ func (s *GistsService) ListAllIter(ctx context.Context, opts *GistListOptions) i // ListCommentsIter returns an iterator that paginates through all results of ListComments. func (s *GistsService) ListCommentsIter(ctx context.Context, gistID string, opts *ListOptions) iter.Seq2[*GistComment, error] { return func(yield func(*GistComment, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1337,7 +1226,6 @@ func (s *GistsService) ListCommentsIter(ctx context.Context, gistID string, opts } opts.Page = resp.NextPage - } } } @@ -1345,13 +1233,11 @@ func (s *GistsService) ListCommentsIter(ctx context.Context, gistID string, opts // ListCommitsIter returns an iterator that paginates through all results of ListCommits. func (s *GistsService) ListCommitsIter(ctx context.Context, id string, opts *ListOptions) iter.Seq2[*GistCommit, error] { return func(yield func(*GistCommit, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1372,7 +1258,6 @@ func (s *GistsService) ListCommitsIter(ctx context.Context, id string, opts *Lis } opts.Page = resp.NextPage - } } } @@ -1380,13 +1265,11 @@ func (s *GistsService) ListCommitsIter(ctx context.Context, id string, opts *Lis // ListForksIter returns an iterator that paginates through all results of ListForks. func (s *GistsService) ListForksIter(ctx context.Context, id string, opts *ListOptions) iter.Seq2[*GistFork, error] { return func(yield func(*GistFork, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1407,7 +1290,6 @@ func (s *GistsService) ListForksIter(ctx context.Context, id string, opts *ListO } opts.Page = resp.NextPage - } } } @@ -1415,13 +1297,11 @@ func (s *GistsService) ListForksIter(ctx context.Context, id string, opts *ListO // ListStarredIter returns an iterator that paginates through all results of ListStarred. func (s *GistsService) ListStarredIter(ctx context.Context, opts *GistListOptions) iter.Seq2[*Gist, error] { return func(yield func(*Gist, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &GistListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1442,7 +1322,6 @@ func (s *GistsService) ListStarredIter(ctx context.Context, opts *GistListOption } opts.ListOptions.Page = resp.NextPage - } } } @@ -1450,13 +1329,11 @@ func (s *GistsService) ListStarredIter(ctx context.Context, opts *GistListOption // ListIter returns an iterator that paginates through all results of List. func (s *IssuesService) ListIter(ctx context.Context, all bool, opts *IssueListOptions) iter.Seq2[*Issue, error] { return func(yield func(*Issue, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &IssueListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1477,7 +1354,6 @@ func (s *IssuesService) ListIter(ctx context.Context, all bool, opts *IssueListO } opts.ListOptions.Page = resp.NextPage - } } } @@ -1485,13 +1361,11 @@ func (s *IssuesService) ListIter(ctx context.Context, all bool, opts *IssueListO // ListAssigneesIter returns an iterator that paginates through all results of ListAssignees. func (s *IssuesService) ListAssigneesIter(ctx context.Context, owner string, repo string, opts *ListOptions) iter.Seq2[*User, error] { return func(yield func(*User, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1512,7 +1386,6 @@ func (s *IssuesService) ListAssigneesIter(ctx context.Context, owner string, rep } opts.Page = resp.NextPage - } } } @@ -1520,13 +1393,11 @@ func (s *IssuesService) ListAssigneesIter(ctx context.Context, owner string, rep // ListByOrgIter returns an iterator that paginates through all results of ListByOrg. func (s *IssuesService) ListByOrgIter(ctx context.Context, org string, opts *IssueListOptions) iter.Seq2[*Issue, error] { return func(yield func(*Issue, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &IssueListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1547,7 +1418,6 @@ func (s *IssuesService) ListByOrgIter(ctx context.Context, org string, opts *Iss } opts.ListOptions.Page = resp.NextPage - } } } @@ -1555,13 +1425,11 @@ func (s *IssuesService) ListByOrgIter(ctx context.Context, org string, opts *Iss // ListByRepoIter returns an iterator that paginates through all results of ListByRepo. func (s *IssuesService) ListByRepoIter(ctx context.Context, owner string, repo string, opts *IssueListByRepoOptions) iter.Seq2[*Issue, error] { return func(yield func(*Issue, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &IssueListByRepoOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1582,7 +1450,6 @@ func (s *IssuesService) ListByRepoIter(ctx context.Context, owner string, repo s } opts.ListOptions.Page = resp.NextPage - } } } @@ -1590,13 +1457,11 @@ func (s *IssuesService) ListByRepoIter(ctx context.Context, owner string, repo s // ListCommentsIter returns an iterator that paginates through all results of ListComments. func (s *IssuesService) ListCommentsIter(ctx context.Context, owner string, repo string, number int, opts *IssueListCommentsOptions) iter.Seq2[*IssueComment, error] { return func(yield func(*IssueComment, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &IssueListCommentsOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1617,7 +1482,6 @@ func (s *IssuesService) ListCommentsIter(ctx context.Context, owner string, repo } opts.ListOptions.Page = resp.NextPage - } } } @@ -1625,13 +1489,11 @@ func (s *IssuesService) ListCommentsIter(ctx context.Context, owner string, repo // ListIssueEventsIter returns an iterator that paginates through all results of ListIssueEvents. func (s *IssuesService) ListIssueEventsIter(ctx context.Context, owner string, repo string, number int, opts *ListOptions) iter.Seq2[*IssueEvent, error] { return func(yield func(*IssueEvent, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1652,7 +1514,6 @@ func (s *IssuesService) ListIssueEventsIter(ctx context.Context, owner string, r } opts.Page = resp.NextPage - } } } @@ -1660,13 +1521,11 @@ func (s *IssuesService) ListIssueEventsIter(ctx context.Context, owner string, r // ListIssueTimelineIter returns an iterator that paginates through all results of ListIssueTimeline. func (s *IssuesService) ListIssueTimelineIter(ctx context.Context, owner string, repo string, number int, opts *ListOptions) iter.Seq2[*Timeline, error] { return func(yield func(*Timeline, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1687,7 +1546,6 @@ func (s *IssuesService) ListIssueTimelineIter(ctx context.Context, owner string, } opts.Page = resp.NextPage - } } } @@ -1695,13 +1553,11 @@ func (s *IssuesService) ListIssueTimelineIter(ctx context.Context, owner string, // ListLabelsIter returns an iterator that paginates through all results of ListLabels. func (s *IssuesService) ListLabelsIter(ctx context.Context, owner string, repo string, opts *ListOptions) iter.Seq2[*Label, error] { return func(yield func(*Label, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1722,7 +1578,6 @@ func (s *IssuesService) ListLabelsIter(ctx context.Context, owner string, repo s } opts.Page = resp.NextPage - } } } @@ -1730,13 +1585,11 @@ func (s *IssuesService) ListLabelsIter(ctx context.Context, owner string, repo s // ListLabelsByIssueIter returns an iterator that paginates through all results of ListLabelsByIssue. func (s *IssuesService) ListLabelsByIssueIter(ctx context.Context, owner string, repo string, number int, opts *ListOptions) iter.Seq2[*Label, error] { return func(yield func(*Label, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1757,7 +1610,6 @@ func (s *IssuesService) ListLabelsByIssueIter(ctx context.Context, owner string, } opts.Page = resp.NextPage - } } } @@ -1765,13 +1617,11 @@ func (s *IssuesService) ListLabelsByIssueIter(ctx context.Context, owner string, // ListLabelsForMilestoneIter returns an iterator that paginates through all results of ListLabelsForMilestone. func (s *IssuesService) ListLabelsForMilestoneIter(ctx context.Context, owner string, repo string, number int, opts *ListOptions) iter.Seq2[*Label, error] { return func(yield func(*Label, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1792,7 +1642,6 @@ func (s *IssuesService) ListLabelsForMilestoneIter(ctx context.Context, owner st } opts.Page = resp.NextPage - } } } @@ -1800,13 +1649,11 @@ func (s *IssuesService) ListLabelsForMilestoneIter(ctx context.Context, owner st // ListMilestonesIter returns an iterator that paginates through all results of ListMilestones. func (s *IssuesService) ListMilestonesIter(ctx context.Context, owner string, repo string, opts *MilestoneListOptions) iter.Seq2[*Milestone, error] { return func(yield func(*Milestone, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &MilestoneListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1827,7 +1674,6 @@ func (s *IssuesService) ListMilestonesIter(ctx context.Context, owner string, re } opts.ListOptions.Page = resp.NextPage - } } } @@ -1835,13 +1681,11 @@ func (s *IssuesService) ListMilestonesIter(ctx context.Context, owner string, re // ListRepositoryEventsIter returns an iterator that paginates through all results of ListRepositoryEvents. func (s *IssuesService) ListRepositoryEventsIter(ctx context.Context, owner string, repo string, opts *ListOptions) iter.Seq2[*IssueEvent, error] { return func(yield func(*IssueEvent, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1862,7 +1706,6 @@ func (s *IssuesService) ListRepositoryEventsIter(ctx context.Context, owner stri } opts.Page = resp.NextPage - } } } @@ -1870,13 +1713,11 @@ func (s *IssuesService) ListRepositoryEventsIter(ctx context.Context, owner stri // ListMarketplacePurchasesForUserIter returns an iterator that paginates through all results of ListMarketplacePurchasesForUser. func (s *MarketplaceService) ListMarketplacePurchasesForUserIter(ctx context.Context, opts *ListOptions) iter.Seq2[*MarketplacePurchase, error] { return func(yield func(*MarketplacePurchase, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1897,7 +1738,6 @@ func (s *MarketplaceService) ListMarketplacePurchasesForUserIter(ctx context.Con } opts.Page = resp.NextPage - } } } @@ -1905,13 +1745,11 @@ func (s *MarketplaceService) ListMarketplacePurchasesForUserIter(ctx context.Con // ListPlanAccountsForPlanIter returns an iterator that paginates through all results of ListPlanAccountsForPlan. func (s *MarketplaceService) ListPlanAccountsForPlanIter(ctx context.Context, planID int64, opts *ListOptions) iter.Seq2[*MarketplacePlanAccount, error] { return func(yield func(*MarketplacePlanAccount, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1932,7 +1770,6 @@ func (s *MarketplaceService) ListPlanAccountsForPlanIter(ctx context.Context, pl } opts.Page = resp.NextPage - } } } @@ -1940,13 +1777,11 @@ func (s *MarketplaceService) ListPlanAccountsForPlanIter(ctx context.Context, pl // ListPlansIter returns an iterator that paginates through all results of ListPlans. func (s *MarketplaceService) ListPlansIter(ctx context.Context, opts *ListOptions) iter.Seq2[*MarketplacePlan, error] { return func(yield func(*MarketplacePlan, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -1967,7 +1802,6 @@ func (s *MarketplaceService) ListPlansIter(ctx context.Context, opts *ListOption } opts.Page = resp.NextPage - } } } @@ -1975,13 +1809,11 @@ func (s *MarketplaceService) ListPlansIter(ctx context.Context, opts *ListOption // ListMigrationsIter returns an iterator that paginates through all results of ListMigrations. func (s *MigrationService) ListMigrationsIter(ctx context.Context, org string, opts *ListOptions) iter.Seq2[*Migration, error] { return func(yield func(*Migration, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2002,7 +1834,6 @@ func (s *MigrationService) ListMigrationsIter(ctx context.Context, org string, o } opts.Page = resp.NextPage - } } } @@ -2010,13 +1841,11 @@ func (s *MigrationService) ListMigrationsIter(ctx context.Context, org string, o // ListUserMigrationsIter returns an iterator that paginates through all results of ListUserMigrations. func (s *MigrationService) ListUserMigrationsIter(ctx context.Context, opts *ListOptions) iter.Seq2[*UserMigration, error] { return func(yield func(*UserMigration, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2037,7 +1866,6 @@ func (s *MigrationService) ListUserMigrationsIter(ctx context.Context, opts *Lis } opts.Page = resp.NextPage - } } } @@ -2045,13 +1873,11 @@ func (s *MigrationService) ListUserMigrationsIter(ctx context.Context, opts *Lis // ListIter returns an iterator that paginates through all results of List. func (s *OrganizationsService) ListIter(ctx context.Context, user string, opts *ListOptions) iter.Seq2[*Organization, error] { return func(yield func(*Organization, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2072,7 +1898,6 @@ func (s *OrganizationsService) ListIter(ctx context.Context, user string, opts * } opts.Page = resp.NextPage - } } } @@ -2080,13 +1905,11 @@ func (s *OrganizationsService) ListIter(ctx context.Context, user string, opts * // ListAllIter returns an iterator that paginates through all results of ListAll. func (s *OrganizationsService) ListAllIter(ctx context.Context, opts *OrganizationsListOptions) iter.Seq2[*Organization, error] { return func(yield func(*Organization, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &OrganizationsListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2107,7 +1930,6 @@ func (s *OrganizationsService) ListAllIter(ctx context.Context, opts *Organizati } opts.ListOptions.Page = resp.NextPage - } } } @@ -2115,13 +1937,11 @@ func (s *OrganizationsService) ListAllIter(ctx context.Context, opts *Organizati // ListBlockedUsersIter returns an iterator that paginates through all results of ListBlockedUsers. func (s *OrganizationsService) ListBlockedUsersIter(ctx context.Context, org string, opts *ListOptions) iter.Seq2[*User, error] { return func(yield func(*User, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2142,7 +1962,6 @@ func (s *OrganizationsService) ListBlockedUsersIter(ctx context.Context, org str } opts.Page = resp.NextPage - } } } @@ -2150,13 +1969,11 @@ func (s *OrganizationsService) ListBlockedUsersIter(ctx context.Context, org str // ListCredentialAuthorizationsIter returns an iterator that paginates through all results of ListCredentialAuthorizations. func (s *OrganizationsService) ListCredentialAuthorizationsIter(ctx context.Context, org string, opts *CredentialAuthorizationsListOptions) iter.Seq2[*CredentialAuthorization, error] { return func(yield func(*CredentialAuthorization, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &CredentialAuthorizationsListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2177,7 +1994,6 @@ func (s *OrganizationsService) ListCredentialAuthorizationsIter(ctx context.Cont } opts.ListOptions.Page = resp.NextPage - } } } @@ -2185,13 +2001,11 @@ func (s *OrganizationsService) ListCredentialAuthorizationsIter(ctx context.Cont // ListCustomPropertyValuesIter returns an iterator that paginates through all results of ListCustomPropertyValues. func (s *OrganizationsService) ListCustomPropertyValuesIter(ctx context.Context, org string, opts *ListCustomPropertyValuesOptions) iter.Seq2[*RepoCustomPropertyValue, error] { return func(yield func(*RepoCustomPropertyValue, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListCustomPropertyValuesOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2212,7 +2026,6 @@ func (s *OrganizationsService) ListCustomPropertyValuesIter(ctx context.Context, } opts.ListOptions.Page = resp.NextPage - } } } @@ -2220,13 +2033,11 @@ func (s *OrganizationsService) ListCustomPropertyValuesIter(ctx context.Context, // ListFailedOrgInvitationsIter returns an iterator that paginates through all results of ListFailedOrgInvitations. func (s *OrganizationsService) ListFailedOrgInvitationsIter(ctx context.Context, org string, opts *ListOptions) iter.Seq2[*Invitation, error] { return func(yield func(*Invitation, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2247,7 +2058,6 @@ func (s *OrganizationsService) ListFailedOrgInvitationsIter(ctx context.Context, } opts.Page = resp.NextPage - } } } @@ -2255,13 +2065,11 @@ func (s *OrganizationsService) ListFailedOrgInvitationsIter(ctx context.Context, // ListFineGrainedPersonalAccessTokensIter returns an iterator that paginates through all results of ListFineGrainedPersonalAccessTokens. func (s *OrganizationsService) ListFineGrainedPersonalAccessTokensIter(ctx context.Context, org string, opts *ListFineGrainedPATOptions) iter.Seq2[*PersonalAccessToken, error] { return func(yield func(*PersonalAccessToken, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListFineGrainedPATOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2282,7 +2090,6 @@ func (s *OrganizationsService) ListFineGrainedPersonalAccessTokensIter(ctx conte } opts.ListOptions.Page = resp.NextPage - } } } @@ -2290,13 +2097,11 @@ func (s *OrganizationsService) ListFineGrainedPersonalAccessTokensIter(ctx conte // ListHooksIter returns an iterator that paginates through all results of ListHooks. func (s *OrganizationsService) ListHooksIter(ctx context.Context, org string, opts *ListOptions) iter.Seq2[*Hook, error] { return func(yield func(*Hook, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2317,7 +2122,6 @@ func (s *OrganizationsService) ListHooksIter(ctx context.Context, org string, op } opts.Page = resp.NextPage - } } } @@ -2325,13 +2129,11 @@ func (s *OrganizationsService) ListHooksIter(ctx context.Context, org string, op // ListMembersIter returns an iterator that paginates through all results of ListMembers. func (s *OrganizationsService) ListMembersIter(ctx context.Context, org string, opts *ListMembersOptions) iter.Seq2[*User, error] { return func(yield func(*User, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListMembersOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2352,7 +2154,6 @@ func (s *OrganizationsService) ListMembersIter(ctx context.Context, org string, } opts.ListOptions.Page = resp.NextPage - } } } @@ -2360,13 +2161,11 @@ func (s *OrganizationsService) ListMembersIter(ctx context.Context, org string, // ListOrgInvitationTeamsIter returns an iterator that paginates through all results of ListOrgInvitationTeams. func (s *OrganizationsService) ListOrgInvitationTeamsIter(ctx context.Context, org string, invitationID string, opts *ListOptions) iter.Seq2[*Team, error] { return func(yield func(*Team, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2387,7 +2186,6 @@ func (s *OrganizationsService) ListOrgInvitationTeamsIter(ctx context.Context, o } opts.Page = resp.NextPage - } } } @@ -2395,13 +2193,11 @@ func (s *OrganizationsService) ListOrgInvitationTeamsIter(ctx context.Context, o // ListOrgMembershipsIter returns an iterator that paginates through all results of ListOrgMemberships. func (s *OrganizationsService) ListOrgMembershipsIter(ctx context.Context, opts *ListOrgMembershipsOptions) iter.Seq2[*Membership, error] { return func(yield func(*Membership, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOrgMembershipsOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2422,7 +2218,6 @@ func (s *OrganizationsService) ListOrgMembershipsIter(ctx context.Context, opts } opts.ListOptions.Page = resp.NextPage - } } } @@ -2430,13 +2225,11 @@ func (s *OrganizationsService) ListOrgMembershipsIter(ctx context.Context, opts // ListOutsideCollaboratorsIter returns an iterator that paginates through all results of ListOutsideCollaborators. func (s *OrganizationsService) ListOutsideCollaboratorsIter(ctx context.Context, org string, opts *ListOutsideCollaboratorsOptions) iter.Seq2[*User, error] { return func(yield func(*User, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOutsideCollaboratorsOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2457,7 +2250,6 @@ func (s *OrganizationsService) ListOutsideCollaboratorsIter(ctx context.Context, } opts.ListOptions.Page = resp.NextPage - } } } @@ -2465,13 +2257,11 @@ func (s *OrganizationsService) ListOutsideCollaboratorsIter(ctx context.Context, // ListPackagesIter returns an iterator that paginates through all results of ListPackages. func (s *OrganizationsService) ListPackagesIter(ctx context.Context, org string, opts *PackageListOptions) iter.Seq2[*Package, error] { return func(yield func(*Package, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &PackageListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2492,7 +2282,6 @@ func (s *OrganizationsService) ListPackagesIter(ctx context.Context, org string, } opts.ListOptions.Page = resp.NextPage - } } } @@ -2500,13 +2289,11 @@ func (s *OrganizationsService) ListPackagesIter(ctx context.Context, org string, // ListPendingOrgInvitationsIter returns an iterator that paginates through all results of ListPendingOrgInvitations. func (s *OrganizationsService) ListPendingOrgInvitationsIter(ctx context.Context, org string, opts *ListOptions) iter.Seq2[*Invitation, error] { return func(yield func(*Invitation, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2527,7 +2314,6 @@ func (s *OrganizationsService) ListPendingOrgInvitationsIter(ctx context.Context } opts.Page = resp.NextPage - } } } @@ -2535,13 +2321,11 @@ func (s *OrganizationsService) ListPendingOrgInvitationsIter(ctx context.Context // ListTeamsAssignedToOrgRoleIter returns an iterator that paginates through all results of ListTeamsAssignedToOrgRole. func (s *OrganizationsService) ListTeamsAssignedToOrgRoleIter(ctx context.Context, org string, roleID int64, opts *ListOptions) iter.Seq2[*Team, error] { return func(yield func(*Team, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2562,7 +2346,6 @@ func (s *OrganizationsService) ListTeamsAssignedToOrgRoleIter(ctx context.Contex } opts.Page = resp.NextPage - } } } @@ -2570,13 +2353,11 @@ func (s *OrganizationsService) ListTeamsAssignedToOrgRoleIter(ctx context.Contex // ListUsersAssignedToOrgRoleIter returns an iterator that paginates through all results of ListUsersAssignedToOrgRole. func (s *OrganizationsService) ListUsersAssignedToOrgRoleIter(ctx context.Context, org string, roleID int64, opts *ListOptions) iter.Seq2[*User, error] { return func(yield func(*User, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2597,7 +2378,6 @@ func (s *OrganizationsService) ListUsersAssignedToOrgRoleIter(ctx context.Contex } opts.Page = resp.NextPage - } } } @@ -2605,13 +2385,11 @@ func (s *OrganizationsService) ListUsersAssignedToOrgRoleIter(ctx context.Contex // ListIter returns an iterator that paginates through all results of List. func (s *PullRequestsService) ListIter(ctx context.Context, owner string, repo string, opts *PullRequestListOptions) iter.Seq2[*PullRequest, error] { return func(yield func(*PullRequest, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &PullRequestListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2632,7 +2410,6 @@ func (s *PullRequestsService) ListIter(ctx context.Context, owner string, repo s } opts.ListOptions.Page = resp.NextPage - } } } @@ -2640,13 +2417,11 @@ func (s *PullRequestsService) ListIter(ctx context.Context, owner string, repo s // ListCommentsIter returns an iterator that paginates through all results of ListComments. func (s *PullRequestsService) ListCommentsIter(ctx context.Context, owner string, repo string, number int, opts *PullRequestListCommentsOptions) iter.Seq2[*PullRequestComment, error] { return func(yield func(*PullRequestComment, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &PullRequestListCommentsOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2667,7 +2442,6 @@ func (s *PullRequestsService) ListCommentsIter(ctx context.Context, owner string } opts.ListOptions.Page = resp.NextPage - } } } @@ -2675,13 +2449,11 @@ func (s *PullRequestsService) ListCommentsIter(ctx context.Context, owner string // ListCommitsIter returns an iterator that paginates through all results of ListCommits. func (s *PullRequestsService) ListCommitsIter(ctx context.Context, owner string, repo string, number int, opts *ListOptions) iter.Seq2[*RepositoryCommit, error] { return func(yield func(*RepositoryCommit, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2702,7 +2474,6 @@ func (s *PullRequestsService) ListCommitsIter(ctx context.Context, owner string, } opts.Page = resp.NextPage - } } } @@ -2710,13 +2481,11 @@ func (s *PullRequestsService) ListCommitsIter(ctx context.Context, owner string, // ListFilesIter returns an iterator that paginates through all results of ListFiles. func (s *PullRequestsService) ListFilesIter(ctx context.Context, owner string, repo string, number int, opts *ListOptions) iter.Seq2[*CommitFile, error] { return func(yield func(*CommitFile, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2737,7 +2506,6 @@ func (s *PullRequestsService) ListFilesIter(ctx context.Context, owner string, r } opts.Page = resp.NextPage - } } } @@ -2745,13 +2513,11 @@ func (s *PullRequestsService) ListFilesIter(ctx context.Context, owner string, r // ListPullRequestsWithCommitIter returns an iterator that paginates through all results of ListPullRequestsWithCommit. func (s *PullRequestsService) ListPullRequestsWithCommitIter(ctx context.Context, owner string, repo string, sha string, opts *ListOptions) iter.Seq2[*PullRequest, error] { return func(yield func(*PullRequest, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2772,7 +2538,6 @@ func (s *PullRequestsService) ListPullRequestsWithCommitIter(ctx context.Context } opts.Page = resp.NextPage - } } } @@ -2780,13 +2545,11 @@ func (s *PullRequestsService) ListPullRequestsWithCommitIter(ctx context.Context // ListReviewCommentsIter returns an iterator that paginates through all results of ListReviewComments. func (s *PullRequestsService) ListReviewCommentsIter(ctx context.Context, owner string, repo string, number int, reviewID int64, opts *ListOptions) iter.Seq2[*PullRequestComment, error] { return func(yield func(*PullRequestComment, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2807,7 +2570,6 @@ func (s *PullRequestsService) ListReviewCommentsIter(ctx context.Context, owner } opts.Page = resp.NextPage - } } } @@ -2815,13 +2577,11 @@ func (s *PullRequestsService) ListReviewCommentsIter(ctx context.Context, owner // ListReviewsIter returns an iterator that paginates through all results of ListReviews. func (s *PullRequestsService) ListReviewsIter(ctx context.Context, owner string, repo string, number int, opts *ListOptions) iter.Seq2[*PullRequestReview, error] { return func(yield func(*PullRequestReview, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2842,7 +2602,6 @@ func (s *PullRequestsService) ListReviewsIter(ctx context.Context, owner string, } opts.Page = resp.NextPage - } } } @@ -2850,13 +2609,11 @@ func (s *PullRequestsService) ListReviewsIter(ctx context.Context, owner string, // ListCommentReactionsIter returns an iterator that paginates through all results of ListCommentReactions. func (s *ReactionsService) ListCommentReactionsIter(ctx context.Context, owner string, repo string, id int64, opts *ListReactionOptions) iter.Seq2[*Reaction, error] { return func(yield func(*Reaction, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListReactionOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2877,7 +2634,6 @@ func (s *ReactionsService) ListCommentReactionsIter(ctx context.Context, owner s } opts.ListOptions.Page = resp.NextPage - } } } @@ -2885,13 +2641,11 @@ func (s *ReactionsService) ListCommentReactionsIter(ctx context.Context, owner s // ListIssueCommentReactionsIter returns an iterator that paginates through all results of ListIssueCommentReactions. func (s *ReactionsService) ListIssueCommentReactionsIter(ctx context.Context, owner string, repo string, id int64, opts *ListReactionOptions) iter.Seq2[*Reaction, error] { return func(yield func(*Reaction, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListReactionOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2912,7 +2666,6 @@ func (s *ReactionsService) ListIssueCommentReactionsIter(ctx context.Context, ow } opts.ListOptions.Page = resp.NextPage - } } } @@ -2920,13 +2673,11 @@ func (s *ReactionsService) ListIssueCommentReactionsIter(ctx context.Context, ow // ListIssueReactionsIter returns an iterator that paginates through all results of ListIssueReactions. func (s *ReactionsService) ListIssueReactionsIter(ctx context.Context, owner string, repo string, number int, opts *ListReactionOptions) iter.Seq2[*Reaction, error] { return func(yield func(*Reaction, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListReactionOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2947,7 +2698,6 @@ func (s *ReactionsService) ListIssueReactionsIter(ctx context.Context, owner str } opts.ListOptions.Page = resp.NextPage - } } } @@ -2955,13 +2705,11 @@ func (s *ReactionsService) ListIssueReactionsIter(ctx context.Context, owner str // ListPullRequestCommentReactionsIter returns an iterator that paginates through all results of ListPullRequestCommentReactions. func (s *ReactionsService) ListPullRequestCommentReactionsIter(ctx context.Context, owner string, repo string, id int64, opts *ListReactionOptions) iter.Seq2[*Reaction, error] { return func(yield func(*Reaction, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListReactionOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -2982,7 +2730,6 @@ func (s *ReactionsService) ListPullRequestCommentReactionsIter(ctx context.Conte } opts.ListOptions.Page = resp.NextPage - } } } @@ -2990,13 +2737,11 @@ func (s *ReactionsService) ListPullRequestCommentReactionsIter(ctx context.Conte // ListReleaseReactionsIter returns an iterator that paginates through all results of ListReleaseReactions. func (s *ReactionsService) ListReleaseReactionsIter(ctx context.Context, owner string, repo string, releaseID int64, opts *ListReactionOptions) iter.Seq2[*Reaction, error] { return func(yield func(*Reaction, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListReactionOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3017,7 +2762,6 @@ func (s *ReactionsService) ListReleaseReactionsIter(ctx context.Context, owner s } opts.ListOptions.Page = resp.NextPage - } } } @@ -3025,13 +2769,11 @@ func (s *ReactionsService) ListReleaseReactionsIter(ctx context.Context, owner s // ListTeamDiscussionCommentReactionsIter returns an iterator that paginates through all results of ListTeamDiscussionCommentReactions. func (s *ReactionsService) ListTeamDiscussionCommentReactionsIter(ctx context.Context, teamID int64, discussionNumber int, commentNumber int, opts *ListReactionOptions) iter.Seq2[*Reaction, error] { return func(yield func(*Reaction, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListReactionOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3052,7 +2794,6 @@ func (s *ReactionsService) ListTeamDiscussionCommentReactionsIter(ctx context.Co } opts.ListOptions.Page = resp.NextPage - } } } @@ -3060,13 +2801,11 @@ func (s *ReactionsService) ListTeamDiscussionCommentReactionsIter(ctx context.Co // ListTeamDiscussionReactionsIter returns an iterator that paginates through all results of ListTeamDiscussionReactions. func (s *ReactionsService) ListTeamDiscussionReactionsIter(ctx context.Context, teamID int64, discussionNumber int, opts *ListReactionOptions) iter.Seq2[*Reaction, error] { return func(yield func(*Reaction, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListReactionOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3087,7 +2826,6 @@ func (s *ReactionsService) ListTeamDiscussionReactionsIter(ctx context.Context, } opts.ListOptions.Page = resp.NextPage - } } } @@ -3095,13 +2833,11 @@ func (s *ReactionsService) ListTeamDiscussionReactionsIter(ctx context.Context, // ListIter returns an iterator that paginates through all results of List. func (s *RepositoriesService) ListIter(ctx context.Context, user string, opts *RepositoryListOptions) iter.Seq2[*Repository, error] { return func(yield func(*Repository, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &RepositoryListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3122,7 +2858,6 @@ func (s *RepositoriesService) ListIter(ctx context.Context, user string, opts *R } opts.ListOptions.Page = resp.NextPage - } } } @@ -3130,13 +2865,11 @@ func (s *RepositoriesService) ListIter(ctx context.Context, user string, opts *R // ListAutolinksIter returns an iterator that paginates through all results of ListAutolinks. func (s *RepositoriesService) ListAutolinksIter(ctx context.Context, owner string, repo string, opts *ListOptions) iter.Seq2[*Autolink, error] { return func(yield func(*Autolink, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3157,7 +2890,6 @@ func (s *RepositoriesService) ListAutolinksIter(ctx context.Context, owner strin } opts.Page = resp.NextPage - } } } @@ -3165,13 +2897,11 @@ func (s *RepositoriesService) ListAutolinksIter(ctx context.Context, owner strin // ListBranchesIter returns an iterator that paginates through all results of ListBranches. func (s *RepositoriesService) ListBranchesIter(ctx context.Context, owner string, repo string, opts *BranchListOptions) iter.Seq2[*Branch, error] { return func(yield func(*Branch, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &BranchListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3192,7 +2922,6 @@ func (s *RepositoriesService) ListBranchesIter(ctx context.Context, owner string } opts.ListOptions.Page = resp.NextPage - } } } @@ -3200,13 +2929,11 @@ func (s *RepositoriesService) ListBranchesIter(ctx context.Context, owner string // ListByAuthenticatedUserIter returns an iterator that paginates through all results of ListByAuthenticatedUser. func (s *RepositoriesService) ListByAuthenticatedUserIter(ctx context.Context, opts *RepositoryListByAuthenticatedUserOptions) iter.Seq2[*Repository, error] { return func(yield func(*Repository, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &RepositoryListByAuthenticatedUserOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3227,7 +2954,6 @@ func (s *RepositoriesService) ListByAuthenticatedUserIter(ctx context.Context, o } opts.ListOptions.Page = resp.NextPage - } } } @@ -3235,13 +2961,11 @@ func (s *RepositoriesService) ListByAuthenticatedUserIter(ctx context.Context, o // ListByOrgIter returns an iterator that paginates through all results of ListByOrg. func (s *RepositoriesService) ListByOrgIter(ctx context.Context, org string, opts *RepositoryListByOrgOptions) iter.Seq2[*Repository, error] { return func(yield func(*Repository, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &RepositoryListByOrgOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3262,7 +2986,6 @@ func (s *RepositoriesService) ListByOrgIter(ctx context.Context, org string, opt } opts.ListOptions.Page = resp.NextPage - } } } @@ -3270,13 +2993,11 @@ func (s *RepositoriesService) ListByOrgIter(ctx context.Context, org string, opt // ListByUserIter returns an iterator that paginates through all results of ListByUser. func (s *RepositoriesService) ListByUserIter(ctx context.Context, user string, opts *RepositoryListByUserOptions) iter.Seq2[*Repository, error] { return func(yield func(*Repository, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &RepositoryListByUserOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3297,7 +3018,6 @@ func (s *RepositoriesService) ListByUserIter(ctx context.Context, user string, o } opts.ListOptions.Page = resp.NextPage - } } } @@ -3305,13 +3025,11 @@ func (s *RepositoriesService) ListByUserIter(ctx context.Context, user string, o // ListCollaboratorsIter returns an iterator that paginates through all results of ListCollaborators. func (s *RepositoriesService) ListCollaboratorsIter(ctx context.Context, owner string, repo string, opts *ListCollaboratorsOptions) iter.Seq2[*User, error] { return func(yield func(*User, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListCollaboratorsOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3332,7 +3050,6 @@ func (s *RepositoriesService) ListCollaboratorsIter(ctx context.Context, owner s } opts.ListOptions.Page = resp.NextPage - } } } @@ -3340,13 +3057,11 @@ func (s *RepositoriesService) ListCollaboratorsIter(ctx context.Context, owner s // ListCommentsIter returns an iterator that paginates through all results of ListComments. func (s *RepositoriesService) ListCommentsIter(ctx context.Context, owner string, repo string, opts *ListOptions) iter.Seq2[*RepositoryComment, error] { return func(yield func(*RepositoryComment, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3367,7 +3082,6 @@ func (s *RepositoriesService) ListCommentsIter(ctx context.Context, owner string } opts.Page = resp.NextPage - } } } @@ -3375,13 +3089,11 @@ func (s *RepositoriesService) ListCommentsIter(ctx context.Context, owner string // ListCommitCommentsIter returns an iterator that paginates through all results of ListCommitComments. func (s *RepositoriesService) ListCommitCommentsIter(ctx context.Context, owner string, repo string, sha string, opts *ListOptions) iter.Seq2[*RepositoryComment, error] { return func(yield func(*RepositoryComment, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3402,7 +3114,6 @@ func (s *RepositoriesService) ListCommitCommentsIter(ctx context.Context, owner } opts.Page = resp.NextPage - } } } @@ -3410,13 +3121,11 @@ func (s *RepositoriesService) ListCommitCommentsIter(ctx context.Context, owner // ListCommitsIter returns an iterator that paginates through all results of ListCommits. func (s *RepositoriesService) ListCommitsIter(ctx context.Context, owner string, repo string, opts *CommitsListOptions) iter.Seq2[*RepositoryCommit, error] { return func(yield func(*RepositoryCommit, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &CommitsListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3437,7 +3146,6 @@ func (s *RepositoriesService) ListCommitsIter(ctx context.Context, owner string, } opts.ListOptions.Page = resp.NextPage - } } } @@ -3445,13 +3153,11 @@ func (s *RepositoriesService) ListCommitsIter(ctx context.Context, owner string, // ListContributorsIter returns an iterator that paginates through all results of ListContributors. func (s *RepositoriesService) ListContributorsIter(ctx context.Context, owner string, repository string, opts *ListContributorsOptions) iter.Seq2[*Contributor, error] { return func(yield func(*Contributor, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListContributorsOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3472,7 +3178,6 @@ func (s *RepositoriesService) ListContributorsIter(ctx context.Context, owner st } opts.ListOptions.Page = resp.NextPage - } } } @@ -3480,13 +3185,11 @@ func (s *RepositoriesService) ListContributorsIter(ctx context.Context, owner st // ListDeploymentStatusesIter returns an iterator that paginates through all results of ListDeploymentStatuses. func (s *RepositoriesService) ListDeploymentStatusesIter(ctx context.Context, owner string, repo string, deployment int64, opts *ListOptions) iter.Seq2[*DeploymentStatus, error] { return func(yield func(*DeploymentStatus, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3507,7 +3210,6 @@ func (s *RepositoriesService) ListDeploymentStatusesIter(ctx context.Context, ow } opts.Page = resp.NextPage - } } } @@ -3515,13 +3217,11 @@ func (s *RepositoriesService) ListDeploymentStatusesIter(ctx context.Context, ow // ListDeploymentsIter returns an iterator that paginates through all results of ListDeployments. func (s *RepositoriesService) ListDeploymentsIter(ctx context.Context, owner string, repo string, opts *DeploymentsListOptions) iter.Seq2[*Deployment, error] { return func(yield func(*Deployment, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &DeploymentsListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3542,7 +3242,6 @@ func (s *RepositoriesService) ListDeploymentsIter(ctx context.Context, owner str } opts.ListOptions.Page = resp.NextPage - } } } @@ -3550,13 +3249,11 @@ func (s *RepositoriesService) ListDeploymentsIter(ctx context.Context, owner str // ListForksIter returns an iterator that paginates through all results of ListForks. func (s *RepositoriesService) ListForksIter(ctx context.Context, owner string, repo string, opts *RepositoryListForksOptions) iter.Seq2[*Repository, error] { return func(yield func(*Repository, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &RepositoryListForksOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3577,7 +3274,6 @@ func (s *RepositoriesService) ListForksIter(ctx context.Context, owner string, r } opts.ListOptions.Page = resp.NextPage - } } } @@ -3585,13 +3281,11 @@ func (s *RepositoriesService) ListForksIter(ctx context.Context, owner string, r // ListHooksIter returns an iterator that paginates through all results of ListHooks. func (s *RepositoriesService) ListHooksIter(ctx context.Context, owner string, repo string, opts *ListOptions) iter.Seq2[*Hook, error] { return func(yield func(*Hook, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3612,7 +3306,6 @@ func (s *RepositoriesService) ListHooksIter(ctx context.Context, owner string, r } opts.Page = resp.NextPage - } } } @@ -3620,13 +3313,11 @@ func (s *RepositoriesService) ListHooksIter(ctx context.Context, owner string, r // ListInvitationsIter returns an iterator that paginates through all results of ListInvitations. func (s *RepositoriesService) ListInvitationsIter(ctx context.Context, owner string, repo string, opts *ListOptions) iter.Seq2[*RepositoryInvitation, error] { return func(yield func(*RepositoryInvitation, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3647,7 +3338,6 @@ func (s *RepositoriesService) ListInvitationsIter(ctx context.Context, owner str } opts.Page = resp.NextPage - } } } @@ -3655,13 +3345,11 @@ func (s *RepositoriesService) ListInvitationsIter(ctx context.Context, owner str // ListKeysIter returns an iterator that paginates through all results of ListKeys. func (s *RepositoriesService) ListKeysIter(ctx context.Context, owner string, repo string, opts *ListOptions) iter.Seq2[*Key, error] { return func(yield func(*Key, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3682,7 +3370,6 @@ func (s *RepositoriesService) ListKeysIter(ctx context.Context, owner string, re } opts.Page = resp.NextPage - } } } @@ -3690,13 +3377,11 @@ func (s *RepositoriesService) ListKeysIter(ctx context.Context, owner string, re // ListPagesBuildsIter returns an iterator that paginates through all results of ListPagesBuilds. func (s *RepositoriesService) ListPagesBuildsIter(ctx context.Context, owner string, repo string, opts *ListOptions) iter.Seq2[*PagesBuild, error] { return func(yield func(*PagesBuild, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3717,7 +3402,6 @@ func (s *RepositoriesService) ListPagesBuildsIter(ctx context.Context, owner str } opts.Page = resp.NextPage - } } } @@ -3725,13 +3409,11 @@ func (s *RepositoriesService) ListPagesBuildsIter(ctx context.Context, owner str // ListPreReceiveHooksIter returns an iterator that paginates through all results of ListPreReceiveHooks. func (s *RepositoriesService) ListPreReceiveHooksIter(ctx context.Context, owner string, repo string, opts *ListOptions) iter.Seq2[*PreReceiveHook, error] { return func(yield func(*PreReceiveHook, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3752,7 +3434,6 @@ func (s *RepositoriesService) ListPreReceiveHooksIter(ctx context.Context, owner } opts.Page = resp.NextPage - } } } @@ -3760,13 +3441,11 @@ func (s *RepositoriesService) ListPreReceiveHooksIter(ctx context.Context, owner // ListReleaseAssetsIter returns an iterator that paginates through all results of ListReleaseAssets. func (s *RepositoriesService) ListReleaseAssetsIter(ctx context.Context, owner string, repo string, id int64, opts *ListOptions) iter.Seq2[*ReleaseAsset, error] { return func(yield func(*ReleaseAsset, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3787,7 +3466,6 @@ func (s *RepositoriesService) ListReleaseAssetsIter(ctx context.Context, owner s } opts.Page = resp.NextPage - } } } @@ -3795,13 +3473,11 @@ func (s *RepositoriesService) ListReleaseAssetsIter(ctx context.Context, owner s // ListReleasesIter returns an iterator that paginates through all results of ListReleases. func (s *RepositoriesService) ListReleasesIter(ctx context.Context, owner string, repo string, opts *ListOptions) iter.Seq2[*RepositoryRelease, error] { return func(yield func(*RepositoryRelease, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3822,7 +3498,6 @@ func (s *RepositoriesService) ListReleasesIter(ctx context.Context, owner string } opts.Page = resp.NextPage - } } } @@ -3830,13 +3505,11 @@ func (s *RepositoriesService) ListReleasesIter(ctx context.Context, owner string // ListStatusesIter returns an iterator that paginates through all results of ListStatuses. func (s *RepositoriesService) ListStatusesIter(ctx context.Context, owner string, repo string, ref string, opts *ListOptions) iter.Seq2[*RepoStatus, error] { return func(yield func(*RepoStatus, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3857,7 +3530,6 @@ func (s *RepositoriesService) ListStatusesIter(ctx context.Context, owner string } opts.Page = resp.NextPage - } } } @@ -3865,13 +3537,11 @@ func (s *RepositoriesService) ListStatusesIter(ctx context.Context, owner string // ListTagsIter returns an iterator that paginates through all results of ListTags. func (s *RepositoriesService) ListTagsIter(ctx context.Context, owner string, repo string, opts *ListOptions) iter.Seq2[*RepositoryTag, error] { return func(yield func(*RepositoryTag, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3892,7 +3562,6 @@ func (s *RepositoriesService) ListTagsIter(ctx context.Context, owner string, re } opts.Page = resp.NextPage - } } } @@ -3900,13 +3569,11 @@ func (s *RepositoriesService) ListTagsIter(ctx context.Context, owner string, re // ListTeamsIter returns an iterator that paginates through all results of ListTeams. func (s *RepositoriesService) ListTeamsIter(ctx context.Context, owner string, repo string, opts *ListOptions) iter.Seq2[*Team, error] { return func(yield func(*Team, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3927,7 +3594,6 @@ func (s *RepositoriesService) ListTeamsIter(ctx context.Context, owner string, r } opts.Page = resp.NextPage - } } } @@ -3935,13 +3601,11 @@ func (s *RepositoriesService) ListTeamsIter(ctx context.Context, owner string, r // ListAlertsForEnterpriseIter returns an iterator that paginates through all results of ListAlertsForEnterprise. func (s *SecretScanningService) ListAlertsForEnterpriseIter(ctx context.Context, enterprise string, opts *SecretScanningAlertListOptions) iter.Seq2[*SecretScanningAlert, error] { return func(yield func(*SecretScanningAlert, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &SecretScanningAlertListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3962,7 +3626,6 @@ func (s *SecretScanningService) ListAlertsForEnterpriseIter(ctx context.Context, } opts.ListOptions.Page = resp.NextPage - } } } @@ -3970,13 +3633,11 @@ func (s *SecretScanningService) ListAlertsForEnterpriseIter(ctx context.Context, // ListAlertsForOrgIter returns an iterator that paginates through all results of ListAlertsForOrg. func (s *SecretScanningService) ListAlertsForOrgIter(ctx context.Context, org string, opts *SecretScanningAlertListOptions) iter.Seq2[*SecretScanningAlert, error] { return func(yield func(*SecretScanningAlert, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &SecretScanningAlertListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -3997,7 +3658,6 @@ func (s *SecretScanningService) ListAlertsForOrgIter(ctx context.Context, org st } opts.ListOptions.Page = resp.NextPage - } } } @@ -4005,13 +3665,11 @@ func (s *SecretScanningService) ListAlertsForOrgIter(ctx context.Context, org st // ListAlertsForRepoIter returns an iterator that paginates through all results of ListAlertsForRepo. func (s *SecretScanningService) ListAlertsForRepoIter(ctx context.Context, owner string, repo string, opts *SecretScanningAlertListOptions) iter.Seq2[*SecretScanningAlert, error] { return func(yield func(*SecretScanningAlert, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &SecretScanningAlertListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4032,7 +3690,6 @@ func (s *SecretScanningService) ListAlertsForRepoIter(ctx context.Context, owner } opts.ListOptions.Page = resp.NextPage - } } } @@ -4040,13 +3697,11 @@ func (s *SecretScanningService) ListAlertsForRepoIter(ctx context.Context, owner // ListLocationsForAlertIter returns an iterator that paginates through all results of ListLocationsForAlert. func (s *SecretScanningService) ListLocationsForAlertIter(ctx context.Context, owner string, repo string, number int64, opts *ListOptions) iter.Seq2[*SecretScanningAlertLocation, error] { return func(yield func(*SecretScanningAlertLocation, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4067,7 +3722,6 @@ func (s *SecretScanningService) ListLocationsForAlertIter(ctx context.Context, o } opts.Page = resp.NextPage - } } } @@ -4075,13 +3729,11 @@ func (s *SecretScanningService) ListLocationsForAlertIter(ctx context.Context, o // ListByIssueIter returns an iterator that paginates through all results of ListByIssue. func (s *SubIssueService) ListByIssueIter(ctx context.Context, owner string, repo string, issueNumber int64, opts *IssueListOptions) iter.Seq2[*SubIssue, error] { return func(yield func(*SubIssue, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &IssueListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4102,7 +3754,6 @@ func (s *SubIssueService) ListByIssueIter(ctx context.Context, owner string, rep } opts.ListOptions.Page = resp.NextPage - } } } @@ -4110,13 +3761,11 @@ func (s *SubIssueService) ListByIssueIter(ctx context.Context, owner string, rep // ListChildTeamsByParentIDIter returns an iterator that paginates through all results of ListChildTeamsByParentID. func (s *TeamsService) ListChildTeamsByParentIDIter(ctx context.Context, orgID int64, teamID int64, opts *ListOptions) iter.Seq2[*Team, error] { return func(yield func(*Team, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4137,7 +3786,6 @@ func (s *TeamsService) ListChildTeamsByParentIDIter(ctx context.Context, orgID i } opts.Page = resp.NextPage - } } } @@ -4145,13 +3793,11 @@ func (s *TeamsService) ListChildTeamsByParentIDIter(ctx context.Context, orgID i // ListChildTeamsByParentSlugIter returns an iterator that paginates through all results of ListChildTeamsByParentSlug. func (s *TeamsService) ListChildTeamsByParentSlugIter(ctx context.Context, org string, slug string, opts *ListOptions) iter.Seq2[*Team, error] { return func(yield func(*Team, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4172,7 +3818,6 @@ func (s *TeamsService) ListChildTeamsByParentSlugIter(ctx context.Context, org s } opts.Page = resp.NextPage - } } } @@ -4180,13 +3825,11 @@ func (s *TeamsService) ListChildTeamsByParentSlugIter(ctx context.Context, org s // ListCommentsByIDIter returns an iterator that paginates through all results of ListCommentsByID. func (s *TeamsService) ListCommentsByIDIter(ctx context.Context, orgID int64, teamID int64, discussionNumber int, options *DiscussionCommentListOptions) iter.Seq2[*DiscussionComment, error] { return func(yield func(*DiscussionComment, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if options == nil { options = &DiscussionCommentListOptions{} } else { - optsCopy := *options - options = &optsCopy + options = Ptr(*options) } for { @@ -4207,7 +3850,6 @@ func (s *TeamsService) ListCommentsByIDIter(ctx context.Context, orgID int64, te } options.ListOptions.Page = resp.NextPage - } } } @@ -4215,13 +3857,11 @@ func (s *TeamsService) ListCommentsByIDIter(ctx context.Context, orgID int64, te // ListCommentsBySlugIter returns an iterator that paginates through all results of ListCommentsBySlug. func (s *TeamsService) ListCommentsBySlugIter(ctx context.Context, org string, slug string, discussionNumber int, options *DiscussionCommentListOptions) iter.Seq2[*DiscussionComment, error] { return func(yield func(*DiscussionComment, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if options == nil { options = &DiscussionCommentListOptions{} } else { - optsCopy := *options - options = &optsCopy + options = Ptr(*options) } for { @@ -4242,7 +3882,6 @@ func (s *TeamsService) ListCommentsBySlugIter(ctx context.Context, org string, s } options.ListOptions.Page = resp.NextPage - } } } @@ -4250,13 +3889,11 @@ func (s *TeamsService) ListCommentsBySlugIter(ctx context.Context, org string, s // ListDiscussionsByIDIter returns an iterator that paginates through all results of ListDiscussionsByID. func (s *TeamsService) ListDiscussionsByIDIter(ctx context.Context, orgID int64, teamID int64, opts *DiscussionListOptions) iter.Seq2[*TeamDiscussion, error] { return func(yield func(*TeamDiscussion, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &DiscussionListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4277,7 +3914,6 @@ func (s *TeamsService) ListDiscussionsByIDIter(ctx context.Context, orgID int64, } opts.ListOptions.Page = resp.NextPage - } } } @@ -4285,13 +3921,11 @@ func (s *TeamsService) ListDiscussionsByIDIter(ctx context.Context, orgID int64, // ListDiscussionsBySlugIter returns an iterator that paginates through all results of ListDiscussionsBySlug. func (s *TeamsService) ListDiscussionsBySlugIter(ctx context.Context, org string, slug string, opts *DiscussionListOptions) iter.Seq2[*TeamDiscussion, error] { return func(yield func(*TeamDiscussion, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &DiscussionListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4312,7 +3946,6 @@ func (s *TeamsService) ListDiscussionsBySlugIter(ctx context.Context, org string } opts.ListOptions.Page = resp.NextPage - } } } @@ -4320,13 +3953,11 @@ func (s *TeamsService) ListDiscussionsBySlugIter(ctx context.Context, org string // ListPendingTeamInvitationsByIDIter returns an iterator that paginates through all results of ListPendingTeamInvitationsByID. func (s *TeamsService) ListPendingTeamInvitationsByIDIter(ctx context.Context, orgID int64, teamID int64, opts *ListOptions) iter.Seq2[*Invitation, error] { return func(yield func(*Invitation, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4347,7 +3978,6 @@ func (s *TeamsService) ListPendingTeamInvitationsByIDIter(ctx context.Context, o } opts.Page = resp.NextPage - } } } @@ -4355,13 +3985,11 @@ func (s *TeamsService) ListPendingTeamInvitationsByIDIter(ctx context.Context, o // ListPendingTeamInvitationsBySlugIter returns an iterator that paginates through all results of ListPendingTeamInvitationsBySlug. func (s *TeamsService) ListPendingTeamInvitationsBySlugIter(ctx context.Context, org string, slug string, opts *ListOptions) iter.Seq2[*Invitation, error] { return func(yield func(*Invitation, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4382,7 +4010,6 @@ func (s *TeamsService) ListPendingTeamInvitationsBySlugIter(ctx context.Context, } opts.Page = resp.NextPage - } } } @@ -4390,13 +4017,11 @@ func (s *TeamsService) ListPendingTeamInvitationsBySlugIter(ctx context.Context, // ListTeamMembersByIDIter returns an iterator that paginates through all results of ListTeamMembersByID. func (s *TeamsService) ListTeamMembersByIDIter(ctx context.Context, orgID int64, teamID int64, opts *TeamListTeamMembersOptions) iter.Seq2[*User, error] { return func(yield func(*User, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &TeamListTeamMembersOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4417,7 +4042,6 @@ func (s *TeamsService) ListTeamMembersByIDIter(ctx context.Context, orgID int64, } opts.ListOptions.Page = resp.NextPage - } } } @@ -4425,13 +4049,11 @@ func (s *TeamsService) ListTeamMembersByIDIter(ctx context.Context, orgID int64, // ListTeamMembersBySlugIter returns an iterator that paginates through all results of ListTeamMembersBySlug. func (s *TeamsService) ListTeamMembersBySlugIter(ctx context.Context, org string, slug string, opts *TeamListTeamMembersOptions) iter.Seq2[*User, error] { return func(yield func(*User, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &TeamListTeamMembersOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4452,7 +4074,6 @@ func (s *TeamsService) ListTeamMembersBySlugIter(ctx context.Context, org string } opts.ListOptions.Page = resp.NextPage - } } } @@ -4460,13 +4081,11 @@ func (s *TeamsService) ListTeamMembersBySlugIter(ctx context.Context, org string // ListTeamReposByIDIter returns an iterator that paginates through all results of ListTeamReposByID. func (s *TeamsService) ListTeamReposByIDIter(ctx context.Context, orgID int64, teamID int64, opts *ListOptions) iter.Seq2[*Repository, error] { return func(yield func(*Repository, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4487,7 +4106,6 @@ func (s *TeamsService) ListTeamReposByIDIter(ctx context.Context, orgID int64, t } opts.Page = resp.NextPage - } } } @@ -4495,13 +4113,11 @@ func (s *TeamsService) ListTeamReposByIDIter(ctx context.Context, orgID int64, t // ListTeamReposBySlugIter returns an iterator that paginates through all results of ListTeamReposBySlug. func (s *TeamsService) ListTeamReposBySlugIter(ctx context.Context, org string, slug string, opts *ListOptions) iter.Seq2[*Repository, error] { return func(yield func(*Repository, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4522,7 +4138,6 @@ func (s *TeamsService) ListTeamReposBySlugIter(ctx context.Context, org string, } opts.Page = resp.NextPage - } } } @@ -4530,13 +4145,11 @@ func (s *TeamsService) ListTeamReposBySlugIter(ctx context.Context, org string, // ListTeamsIter returns an iterator that paginates through all results of ListTeams. func (s *TeamsService) ListTeamsIter(ctx context.Context, org string, opts *ListOptions) iter.Seq2[*Team, error] { return func(yield func(*Team, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4557,7 +4170,6 @@ func (s *TeamsService) ListTeamsIter(ctx context.Context, org string, opts *List } opts.Page = resp.NextPage - } } } @@ -4565,13 +4177,11 @@ func (s *TeamsService) ListTeamsIter(ctx context.Context, org string, opts *List // ListUserTeamsIter returns an iterator that paginates through all results of ListUserTeams. func (s *TeamsService) ListUserTeamsIter(ctx context.Context, opts *ListOptions) iter.Seq2[*Team, error] { return func(yield func(*Team, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4592,7 +4202,6 @@ func (s *TeamsService) ListUserTeamsIter(ctx context.Context, opts *ListOptions) } opts.Page = resp.NextPage - } } } @@ -4600,13 +4209,11 @@ func (s *TeamsService) ListUserTeamsIter(ctx context.Context, opts *ListOptions) // ListAllIter returns an iterator that paginates through all results of ListAll. func (s *UsersService) ListAllIter(ctx context.Context, opts *UserListOptions) iter.Seq2[*User, error] { return func(yield func(*User, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &UserListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4627,7 +4234,6 @@ func (s *UsersService) ListAllIter(ctx context.Context, opts *UserListOptions) i } opts.ListOptions.Page = resp.NextPage - } } } @@ -4635,13 +4241,11 @@ func (s *UsersService) ListAllIter(ctx context.Context, opts *UserListOptions) i // ListBlockedUsersIter returns an iterator that paginates through all results of ListBlockedUsers. func (s *UsersService) ListBlockedUsersIter(ctx context.Context, opts *ListOptions) iter.Seq2[*User, error] { return func(yield func(*User, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4662,7 +4266,6 @@ func (s *UsersService) ListBlockedUsersIter(ctx context.Context, opts *ListOptio } opts.Page = resp.NextPage - } } } @@ -4670,13 +4273,11 @@ func (s *UsersService) ListBlockedUsersIter(ctx context.Context, opts *ListOptio // ListEmailsIter returns an iterator that paginates through all results of ListEmails. func (s *UsersService) ListEmailsIter(ctx context.Context, opts *ListOptions) iter.Seq2[*UserEmail, error] { return func(yield func(*UserEmail, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4697,7 +4298,6 @@ func (s *UsersService) ListEmailsIter(ctx context.Context, opts *ListOptions) it } opts.Page = resp.NextPage - } } } @@ -4705,13 +4305,11 @@ func (s *UsersService) ListEmailsIter(ctx context.Context, opts *ListOptions) it // ListFollowersIter returns an iterator that paginates through all results of ListFollowers. func (s *UsersService) ListFollowersIter(ctx context.Context, user string, opts *ListOptions) iter.Seq2[*User, error] { return func(yield func(*User, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4732,7 +4330,6 @@ func (s *UsersService) ListFollowersIter(ctx context.Context, user string, opts } opts.Page = resp.NextPage - } } } @@ -4740,13 +4337,11 @@ func (s *UsersService) ListFollowersIter(ctx context.Context, user string, opts // ListFollowingIter returns an iterator that paginates through all results of ListFollowing. func (s *UsersService) ListFollowingIter(ctx context.Context, user string, opts *ListOptions) iter.Seq2[*User, error] { return func(yield func(*User, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4767,7 +4362,6 @@ func (s *UsersService) ListFollowingIter(ctx context.Context, user string, opts } opts.Page = resp.NextPage - } } } @@ -4775,13 +4369,11 @@ func (s *UsersService) ListFollowingIter(ctx context.Context, user string, opts // ListGPGKeysIter returns an iterator that paginates through all results of ListGPGKeys. func (s *UsersService) ListGPGKeysIter(ctx context.Context, user string, opts *ListOptions) iter.Seq2[*GPGKey, error] { return func(yield func(*GPGKey, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4802,7 +4394,6 @@ func (s *UsersService) ListGPGKeysIter(ctx context.Context, user string, opts *L } opts.Page = resp.NextPage - } } } @@ -4810,13 +4401,11 @@ func (s *UsersService) ListGPGKeysIter(ctx context.Context, user string, opts *L // ListInvitationsIter returns an iterator that paginates through all results of ListInvitations. func (s *UsersService) ListInvitationsIter(ctx context.Context, opts *ListOptions) iter.Seq2[*RepositoryInvitation, error] { return func(yield func(*RepositoryInvitation, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4837,7 +4426,6 @@ func (s *UsersService) ListInvitationsIter(ctx context.Context, opts *ListOption } opts.Page = resp.NextPage - } } } @@ -4845,13 +4433,11 @@ func (s *UsersService) ListInvitationsIter(ctx context.Context, opts *ListOption // ListKeysIter returns an iterator that paginates through all results of ListKeys. func (s *UsersService) ListKeysIter(ctx context.Context, user string, opts *ListOptions) iter.Seq2[*Key, error] { return func(yield func(*Key, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4872,7 +4458,6 @@ func (s *UsersService) ListKeysIter(ctx context.Context, user string, opts *List } opts.Page = resp.NextPage - } } } @@ -4880,13 +4465,11 @@ func (s *UsersService) ListKeysIter(ctx context.Context, user string, opts *List // ListPackagesIter returns an iterator that paginates through all results of ListPackages. func (s *UsersService) ListPackagesIter(ctx context.Context, user string, opts *PackageListOptions) iter.Seq2[*Package, error] { return func(yield func(*Package, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &PackageListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4907,7 +4490,6 @@ func (s *UsersService) ListPackagesIter(ctx context.Context, user string, opts * } opts.ListOptions.Page = resp.NextPage - } } } @@ -4915,13 +4497,11 @@ func (s *UsersService) ListPackagesIter(ctx context.Context, user string, opts * // ListSSHSigningKeysIter returns an iterator that paginates through all results of ListSSHSigningKeys. func (s *UsersService) ListSSHSigningKeysIter(ctx context.Context, user string, opts *ListOptions) iter.Seq2[*SSHSigningKey, error] { return func(yield func(*SSHSigningKey, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4942,7 +4522,6 @@ func (s *UsersService) ListSSHSigningKeysIter(ctx context.Context, user string, } opts.Page = resp.NextPage - } } } @@ -4950,13 +4529,11 @@ func (s *UsersService) ListSSHSigningKeysIter(ctx context.Context, user string, // ListSocialAccountsIter returns an iterator that paginates through all results of ListSocialAccounts. func (s *UsersService) ListSocialAccountsIter(ctx context.Context, opts *ListOptions) iter.Seq2[*SocialAccount, error] { return func(yield func(*SocialAccount, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -4977,7 +4554,6 @@ func (s *UsersService) ListSocialAccountsIter(ctx context.Context, opts *ListOpt } opts.Page = resp.NextPage - } } } @@ -4985,13 +4561,11 @@ func (s *UsersService) ListSocialAccountsIter(ctx context.Context, opts *ListOpt // ListUserSocialAccountsIter returns an iterator that paginates through all results of ListUserSocialAccounts. func (s *UsersService) ListUserSocialAccountsIter(ctx context.Context, username string, opts *ListOptions) iter.Seq2[*SocialAccount, error] { return func(yield func(*SocialAccount, error) bool) { - // Create a copy of opts to avoid mutating the caller's struct if opts == nil { opts = &ListOptions{} } else { - optsCopy := *opts - opts = &optsCopy + opts = Ptr(*opts) } for { @@ -5012,7 +4586,6 @@ func (s *UsersService) ListUserSocialAccountsIter(ctx context.Context, username } opts.Page = resp.NextPage - } } } diff --git a/github/github-iterators_test.go b/github/github-iterators_test.go new file mode 100644 index 00000000000..b63aa33282e --- /dev/null +++ b/github/github-iterators_test.go @@ -0,0 +1,11170 @@ +// Code generated by gen-iterators; DO NOT EDIT. +// Instead, please run "go generate ./..." as described here: +// https://github.com/google/go-github/blob/master/CONTRIBUTING.md#submitting-a-patch + +// Copyright 2026 The go-github AUTHORS. All rights reserved. +// +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package github + +import ( + "fmt" + "net/http" + "testing" +) + +func TestActivityService_ListEventsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Activity.ListEventsIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Activity.ListEventsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Activity.ListEventsIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Activity.ListEventsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Activity.ListEventsIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Activity.ListEventsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Activity.ListEventsIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *Event, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Activity.ListEventsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestActivityService_ListEventsForOrganizationIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Activity.ListEventsForOrganizationIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Activity.ListEventsForOrganizationIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Activity.ListEventsForOrganizationIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Activity.ListEventsForOrganizationIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Activity.ListEventsForOrganizationIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Activity.ListEventsForOrganizationIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Activity.ListEventsForOrganizationIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *Event, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Activity.ListEventsForOrganizationIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestActivityService_ListEventsForRepoNetworkIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Activity.ListEventsForRepoNetworkIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Activity.ListEventsForRepoNetworkIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Activity.ListEventsForRepoNetworkIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Activity.ListEventsForRepoNetworkIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Activity.ListEventsForRepoNetworkIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Activity.ListEventsForRepoNetworkIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Activity.ListEventsForRepoNetworkIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Event, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Activity.ListEventsForRepoNetworkIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestActivityService_ListEventsPerformedByUserIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Activity.ListEventsPerformedByUserIter(t.Context(), "", false, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Activity.ListEventsPerformedByUserIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Activity.ListEventsPerformedByUserIter(t.Context(), "", false, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Activity.ListEventsPerformedByUserIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Activity.ListEventsPerformedByUserIter(t.Context(), "", false, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Activity.ListEventsPerformedByUserIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Activity.ListEventsPerformedByUserIter(t.Context(), "", false, nil) + gotItems = 0 // reset + iter(func(item *Event, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Activity.ListEventsPerformedByUserIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestActivityService_ListEventsReceivedByUserIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Activity.ListEventsReceivedByUserIter(t.Context(), "", false, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Activity.ListEventsReceivedByUserIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Activity.ListEventsReceivedByUserIter(t.Context(), "", false, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Activity.ListEventsReceivedByUserIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Activity.ListEventsReceivedByUserIter(t.Context(), "", false, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Activity.ListEventsReceivedByUserIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Activity.ListEventsReceivedByUserIter(t.Context(), "", false, nil) + gotItems = 0 // reset + iter(func(item *Event, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Activity.ListEventsReceivedByUserIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestActivityService_ListIssueEventsForRepositoryIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Activity.ListIssueEventsForRepositoryIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Activity.ListIssueEventsForRepositoryIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Activity.ListIssueEventsForRepositoryIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Activity.ListIssueEventsForRepositoryIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Activity.ListIssueEventsForRepositoryIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Activity.ListIssueEventsForRepositoryIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Activity.ListIssueEventsForRepositoryIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *IssueEvent, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Activity.ListIssueEventsForRepositoryIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestActivityService_ListNotificationsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Activity.ListNotificationsIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Activity.ListNotificationsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &NotificationListOptions{} + iter = client.Activity.ListNotificationsIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Activity.ListNotificationsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Activity.ListNotificationsIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Activity.ListNotificationsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Activity.ListNotificationsIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *Notification, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Activity.ListNotificationsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestActivityService_ListRepositoryEventsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Activity.ListRepositoryEventsIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Activity.ListRepositoryEventsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Activity.ListRepositoryEventsIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Activity.ListRepositoryEventsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Activity.ListRepositoryEventsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Activity.ListRepositoryEventsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Activity.ListRepositoryEventsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Event, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Activity.ListRepositoryEventsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestActivityService_ListRepositoryNotificationsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Activity.ListRepositoryNotificationsIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Activity.ListRepositoryNotificationsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &NotificationListOptions{} + iter = client.Activity.ListRepositoryNotificationsIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Activity.ListRepositoryNotificationsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Activity.ListRepositoryNotificationsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Activity.ListRepositoryNotificationsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Activity.ListRepositoryNotificationsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Notification, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Activity.ListRepositoryNotificationsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestActivityService_ListStargazersIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Activity.ListStargazersIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Activity.ListStargazersIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Activity.ListStargazersIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Activity.ListStargazersIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Activity.ListStargazersIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Activity.ListStargazersIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Activity.ListStargazersIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Stargazer, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Activity.ListStargazersIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestActivityService_ListStarredIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Activity.ListStarredIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Activity.ListStarredIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ActivityListStarredOptions{} + iter = client.Activity.ListStarredIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Activity.ListStarredIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Activity.ListStarredIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Activity.ListStarredIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Activity.ListStarredIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *StarredRepository, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Activity.ListStarredIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestActivityService_ListUserEventsForOrganizationIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Activity.ListUserEventsForOrganizationIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Activity.ListUserEventsForOrganizationIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Activity.ListUserEventsForOrganizationIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Activity.ListUserEventsForOrganizationIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Activity.ListUserEventsForOrganizationIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Activity.ListUserEventsForOrganizationIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Activity.ListUserEventsForOrganizationIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Event, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Activity.ListUserEventsForOrganizationIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestActivityService_ListWatchedIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Activity.ListWatchedIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Activity.ListWatchedIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Activity.ListWatchedIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Activity.ListWatchedIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Activity.ListWatchedIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Activity.ListWatchedIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Activity.ListWatchedIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *Repository, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Activity.ListWatchedIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestActivityService_ListWatchersIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Activity.ListWatchersIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Activity.ListWatchersIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Activity.ListWatchersIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Activity.ListWatchersIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Activity.ListWatchersIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Activity.ListWatchersIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Activity.ListWatchersIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *User, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Activity.ListWatchersIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestAppsService_ListInstallationRequestsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Apps.ListInstallationRequestsIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Apps.ListInstallationRequestsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Apps.ListInstallationRequestsIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Apps.ListInstallationRequestsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Apps.ListInstallationRequestsIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Apps.ListInstallationRequestsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Apps.ListInstallationRequestsIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *InstallationRequest, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Apps.ListInstallationRequestsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestAppsService_ListInstallationsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Apps.ListInstallationsIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Apps.ListInstallationsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Apps.ListInstallationsIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Apps.ListInstallationsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Apps.ListInstallationsIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Apps.ListInstallationsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Apps.ListInstallationsIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *Installation, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Apps.ListInstallationsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestAppsService_ListUserInstallationsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `{"installations": [{},{},{}]}`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `{"installations": [{},{},{},{}]}`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `{"installations": [{},{}]}`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `{"installations": [{},{}]}`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Apps.ListUserInstallationsIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Apps.ListUserInstallationsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Apps.ListUserInstallationsIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Apps.ListUserInstallationsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Apps.ListUserInstallationsIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Apps.ListUserInstallationsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Apps.ListUserInstallationsIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *Installation, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Apps.ListUserInstallationsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestChecksService_ListCheckRunAnnotationsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Checks.ListCheckRunAnnotationsIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Checks.ListCheckRunAnnotationsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Checks.ListCheckRunAnnotationsIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Checks.ListCheckRunAnnotationsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Checks.ListCheckRunAnnotationsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Checks.ListCheckRunAnnotationsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Checks.ListCheckRunAnnotationsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *CheckRunAnnotation, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Checks.ListCheckRunAnnotationsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestClassroomService_ListAcceptedAssignmentsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Classroom.ListAcceptedAssignmentsIter(t.Context(), 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Classroom.ListAcceptedAssignmentsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Classroom.ListAcceptedAssignmentsIter(t.Context(), 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Classroom.ListAcceptedAssignmentsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Classroom.ListAcceptedAssignmentsIter(t.Context(), 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Classroom.ListAcceptedAssignmentsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Classroom.ListAcceptedAssignmentsIter(t.Context(), 0, nil) + gotItems = 0 // reset + iter(func(item *AcceptedAssignment, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Classroom.ListAcceptedAssignmentsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestClassroomService_ListClassroomAssignmentsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Classroom.ListClassroomAssignmentsIter(t.Context(), 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Classroom.ListClassroomAssignmentsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Classroom.ListClassroomAssignmentsIter(t.Context(), 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Classroom.ListClassroomAssignmentsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Classroom.ListClassroomAssignmentsIter(t.Context(), 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Classroom.ListClassroomAssignmentsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Classroom.ListClassroomAssignmentsIter(t.Context(), 0, nil) + gotItems = 0 // reset + iter(func(item *ClassroomAssignment, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Classroom.ListClassroomAssignmentsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestClassroomService_ListClassroomsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Classroom.ListClassroomsIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Classroom.ListClassroomsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Classroom.ListClassroomsIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Classroom.ListClassroomsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Classroom.ListClassroomsIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Classroom.ListClassroomsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Classroom.ListClassroomsIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *Classroom, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Classroom.ListClassroomsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestCodeScanningService_ListAlertInstancesIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.CodeScanning.ListAlertInstancesIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.CodeScanning.ListAlertInstancesIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &AlertInstancesListOptions{} + iter = client.CodeScanning.ListAlertInstancesIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.CodeScanning.ListAlertInstancesIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.CodeScanning.ListAlertInstancesIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.CodeScanning.ListAlertInstancesIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.CodeScanning.ListAlertInstancesIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *MostRecentInstance, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.CodeScanning.ListAlertInstancesIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestCodeScanningService_ListAlertsForOrgIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.CodeScanning.ListAlertsForOrgIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.CodeScanning.ListAlertsForOrgIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &AlertListOptions{} + iter = client.CodeScanning.ListAlertsForOrgIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.CodeScanning.ListAlertsForOrgIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.CodeScanning.ListAlertsForOrgIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.CodeScanning.ListAlertsForOrgIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.CodeScanning.ListAlertsForOrgIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *Alert, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.CodeScanning.ListAlertsForOrgIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestCodeScanningService_ListAlertsForRepoIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.CodeScanning.ListAlertsForRepoIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.CodeScanning.ListAlertsForRepoIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &AlertListOptions{} + iter = client.CodeScanning.ListAlertsForRepoIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.CodeScanning.ListAlertsForRepoIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.CodeScanning.ListAlertsForRepoIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.CodeScanning.ListAlertsForRepoIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.CodeScanning.ListAlertsForRepoIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Alert, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.CodeScanning.ListAlertsForRepoIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestCodeScanningService_ListAnalysesForRepoIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.CodeScanning.ListAnalysesForRepoIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.CodeScanning.ListAnalysesForRepoIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &AnalysesListOptions{} + iter = client.CodeScanning.ListAnalysesForRepoIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.CodeScanning.ListAnalysesForRepoIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.CodeScanning.ListAnalysesForRepoIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.CodeScanning.ListAnalysesForRepoIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.CodeScanning.ListAnalysesForRepoIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *ScanningAnalysis, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.CodeScanning.ListAnalysesForRepoIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestDependabotService_ListOrgAlertsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Dependabot.ListOrgAlertsIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Dependabot.ListOrgAlertsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListAlertsOptions{} + iter = client.Dependabot.ListOrgAlertsIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Dependabot.ListOrgAlertsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Dependabot.ListOrgAlertsIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Dependabot.ListOrgAlertsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Dependabot.ListOrgAlertsIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *DependabotAlert, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Dependabot.ListOrgAlertsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestDependabotService_ListRepoAlertsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Dependabot.ListRepoAlertsIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Dependabot.ListRepoAlertsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListAlertsOptions{} + iter = client.Dependabot.ListRepoAlertsIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Dependabot.ListRepoAlertsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Dependabot.ListRepoAlertsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Dependabot.ListRepoAlertsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Dependabot.ListRepoAlertsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *DependabotAlert, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Dependabot.ListRepoAlertsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestEnterpriseService_ListAppAccessibleOrganizationRepositoriesIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Enterprise.ListAppAccessibleOrganizationRepositoriesIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Enterprise.ListAppAccessibleOrganizationRepositoriesIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Enterprise.ListAppAccessibleOrganizationRepositoriesIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Enterprise.ListAppAccessibleOrganizationRepositoriesIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Enterprise.ListAppAccessibleOrganizationRepositoriesIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Enterprise.ListAppAccessibleOrganizationRepositoriesIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Enterprise.ListAppAccessibleOrganizationRepositoriesIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *AccessibleRepository, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Enterprise.ListAppAccessibleOrganizationRepositoriesIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestEnterpriseService_ListAppInstallableOrganizationsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Enterprise.ListAppInstallableOrganizationsIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Enterprise.ListAppInstallableOrganizationsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Enterprise.ListAppInstallableOrganizationsIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Enterprise.ListAppInstallableOrganizationsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Enterprise.ListAppInstallableOrganizationsIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Enterprise.ListAppInstallableOrganizationsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Enterprise.ListAppInstallableOrganizationsIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *InstallableOrganization, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Enterprise.ListAppInstallableOrganizationsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestEnterpriseService_ListAppInstallationsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Enterprise.ListAppInstallationsIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Enterprise.ListAppInstallationsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Enterprise.ListAppInstallationsIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Enterprise.ListAppInstallationsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Enterprise.ListAppInstallationsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Enterprise.ListAppInstallationsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Enterprise.ListAppInstallationsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Installation, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Enterprise.ListAppInstallationsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestEnterpriseService_ListAssignmentsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Enterprise.ListAssignmentsIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Enterprise.ListAssignmentsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Enterprise.ListAssignmentsIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Enterprise.ListAssignmentsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Enterprise.ListAssignmentsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Enterprise.ListAssignmentsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Enterprise.ListAssignmentsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Organization, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Enterprise.ListAssignmentsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestEnterpriseService_ListOrganizationCustomPropertyValuesIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Enterprise.ListOrganizationCustomPropertyValuesIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Enterprise.ListOrganizationCustomPropertyValuesIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Enterprise.ListOrganizationCustomPropertyValuesIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Enterprise.ListOrganizationCustomPropertyValuesIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Enterprise.ListOrganizationCustomPropertyValuesIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Enterprise.ListOrganizationCustomPropertyValuesIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Enterprise.ListOrganizationCustomPropertyValuesIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *EnterpriseCustomPropertiesValues, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Enterprise.ListOrganizationCustomPropertyValuesIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestEnterpriseService_ListRepositoriesForOrgAppInstallationIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Enterprise.ListRepositoriesForOrgAppInstallationIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Enterprise.ListRepositoriesForOrgAppInstallationIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Enterprise.ListRepositoriesForOrgAppInstallationIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Enterprise.ListRepositoriesForOrgAppInstallationIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Enterprise.ListRepositoriesForOrgAppInstallationIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Enterprise.ListRepositoriesForOrgAppInstallationIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Enterprise.ListRepositoriesForOrgAppInstallationIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *AccessibleRepository, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Enterprise.ListRepositoriesForOrgAppInstallationIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestEnterpriseService_ListTeamMembersIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Enterprise.ListTeamMembersIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Enterprise.ListTeamMembersIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Enterprise.ListTeamMembersIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Enterprise.ListTeamMembersIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Enterprise.ListTeamMembersIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Enterprise.ListTeamMembersIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Enterprise.ListTeamMembersIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *User, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Enterprise.ListTeamMembersIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestEnterpriseService_ListTeamsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Enterprise.ListTeamsIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Enterprise.ListTeamsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Enterprise.ListTeamsIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Enterprise.ListTeamsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Enterprise.ListTeamsIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Enterprise.ListTeamsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Enterprise.ListTeamsIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *EnterpriseTeam, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Enterprise.ListTeamsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestGistsService_ListIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Gists.ListIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Gists.ListIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &GistListOptions{} + iter = client.Gists.ListIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Gists.ListIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Gists.ListIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Gists.ListIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Gists.ListIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *Gist, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Gists.ListIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestGistsService_ListAllIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Gists.ListAllIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Gists.ListAllIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &GistListOptions{} + iter = client.Gists.ListAllIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Gists.ListAllIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Gists.ListAllIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Gists.ListAllIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Gists.ListAllIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *Gist, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Gists.ListAllIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestGistsService_ListCommentsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Gists.ListCommentsIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Gists.ListCommentsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Gists.ListCommentsIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Gists.ListCommentsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Gists.ListCommentsIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Gists.ListCommentsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Gists.ListCommentsIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *GistComment, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Gists.ListCommentsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestGistsService_ListCommitsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Gists.ListCommitsIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Gists.ListCommitsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Gists.ListCommitsIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Gists.ListCommitsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Gists.ListCommitsIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Gists.ListCommitsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Gists.ListCommitsIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *GistCommit, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Gists.ListCommitsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestGistsService_ListForksIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Gists.ListForksIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Gists.ListForksIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Gists.ListForksIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Gists.ListForksIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Gists.ListForksIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Gists.ListForksIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Gists.ListForksIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *GistFork, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Gists.ListForksIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestGistsService_ListStarredIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Gists.ListStarredIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Gists.ListStarredIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &GistListOptions{} + iter = client.Gists.ListStarredIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Gists.ListStarredIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Gists.ListStarredIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Gists.ListStarredIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Gists.ListStarredIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *Gist, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Gists.ListStarredIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestIssuesService_ListIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Issues.ListIter(t.Context(), false, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Issues.ListIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &IssueListOptions{} + iter = client.Issues.ListIter(t.Context(), false, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Issues.ListIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Issues.ListIter(t.Context(), false, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Issues.ListIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Issues.ListIter(t.Context(), false, nil) + gotItems = 0 // reset + iter(func(item *Issue, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Issues.ListIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestIssuesService_ListAssigneesIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Issues.ListAssigneesIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Issues.ListAssigneesIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Issues.ListAssigneesIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Issues.ListAssigneesIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Issues.ListAssigneesIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Issues.ListAssigneesIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Issues.ListAssigneesIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *User, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Issues.ListAssigneesIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestIssuesService_ListByOrgIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Issues.ListByOrgIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Issues.ListByOrgIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &IssueListOptions{} + iter = client.Issues.ListByOrgIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Issues.ListByOrgIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Issues.ListByOrgIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Issues.ListByOrgIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Issues.ListByOrgIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *Issue, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Issues.ListByOrgIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestIssuesService_ListByRepoIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Issues.ListByRepoIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Issues.ListByRepoIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &IssueListByRepoOptions{} + iter = client.Issues.ListByRepoIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Issues.ListByRepoIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Issues.ListByRepoIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Issues.ListByRepoIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Issues.ListByRepoIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Issue, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Issues.ListByRepoIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestIssuesService_ListCommentsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Issues.ListCommentsIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Issues.ListCommentsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &IssueListCommentsOptions{} + iter = client.Issues.ListCommentsIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Issues.ListCommentsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Issues.ListCommentsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Issues.ListCommentsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Issues.ListCommentsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *IssueComment, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Issues.ListCommentsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestIssuesService_ListIssueEventsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Issues.ListIssueEventsIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Issues.ListIssueEventsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Issues.ListIssueEventsIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Issues.ListIssueEventsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Issues.ListIssueEventsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Issues.ListIssueEventsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Issues.ListIssueEventsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *IssueEvent, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Issues.ListIssueEventsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestIssuesService_ListIssueTimelineIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Issues.ListIssueTimelineIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Issues.ListIssueTimelineIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Issues.ListIssueTimelineIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Issues.ListIssueTimelineIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Issues.ListIssueTimelineIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Issues.ListIssueTimelineIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Issues.ListIssueTimelineIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *Timeline, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Issues.ListIssueTimelineIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestIssuesService_ListLabelsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Issues.ListLabelsIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Issues.ListLabelsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Issues.ListLabelsIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Issues.ListLabelsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Issues.ListLabelsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Issues.ListLabelsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Issues.ListLabelsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Label, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Issues.ListLabelsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestIssuesService_ListLabelsByIssueIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Issues.ListLabelsByIssueIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Issues.ListLabelsByIssueIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Issues.ListLabelsByIssueIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Issues.ListLabelsByIssueIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Issues.ListLabelsByIssueIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Issues.ListLabelsByIssueIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Issues.ListLabelsByIssueIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *Label, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Issues.ListLabelsByIssueIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestIssuesService_ListLabelsForMilestoneIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Issues.ListLabelsForMilestoneIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Issues.ListLabelsForMilestoneIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Issues.ListLabelsForMilestoneIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Issues.ListLabelsForMilestoneIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Issues.ListLabelsForMilestoneIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Issues.ListLabelsForMilestoneIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Issues.ListLabelsForMilestoneIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *Label, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Issues.ListLabelsForMilestoneIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestIssuesService_ListMilestonesIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Issues.ListMilestonesIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Issues.ListMilestonesIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &MilestoneListOptions{} + iter = client.Issues.ListMilestonesIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Issues.ListMilestonesIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Issues.ListMilestonesIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Issues.ListMilestonesIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Issues.ListMilestonesIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Milestone, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Issues.ListMilestonesIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestIssuesService_ListRepositoryEventsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Issues.ListRepositoryEventsIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Issues.ListRepositoryEventsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Issues.ListRepositoryEventsIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Issues.ListRepositoryEventsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Issues.ListRepositoryEventsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Issues.ListRepositoryEventsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Issues.ListRepositoryEventsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *IssueEvent, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Issues.ListRepositoryEventsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestMarketplaceService_ListMarketplacePurchasesForUserIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Marketplace.ListMarketplacePurchasesForUserIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Marketplace.ListMarketplacePurchasesForUserIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Marketplace.ListMarketplacePurchasesForUserIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Marketplace.ListMarketplacePurchasesForUserIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Marketplace.ListMarketplacePurchasesForUserIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Marketplace.ListMarketplacePurchasesForUserIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Marketplace.ListMarketplacePurchasesForUserIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *MarketplacePurchase, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Marketplace.ListMarketplacePurchasesForUserIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestMarketplaceService_ListPlanAccountsForPlanIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Marketplace.ListPlanAccountsForPlanIter(t.Context(), 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Marketplace.ListPlanAccountsForPlanIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Marketplace.ListPlanAccountsForPlanIter(t.Context(), 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Marketplace.ListPlanAccountsForPlanIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Marketplace.ListPlanAccountsForPlanIter(t.Context(), 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Marketplace.ListPlanAccountsForPlanIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Marketplace.ListPlanAccountsForPlanIter(t.Context(), 0, nil) + gotItems = 0 // reset + iter(func(item *MarketplacePlanAccount, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Marketplace.ListPlanAccountsForPlanIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestMarketplaceService_ListPlansIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Marketplace.ListPlansIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Marketplace.ListPlansIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Marketplace.ListPlansIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Marketplace.ListPlansIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Marketplace.ListPlansIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Marketplace.ListPlansIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Marketplace.ListPlansIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *MarketplacePlan, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Marketplace.ListPlansIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestMigrationService_ListMigrationsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Migrations.ListMigrationsIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Migrations.ListMigrationsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Migrations.ListMigrationsIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Migrations.ListMigrationsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Migrations.ListMigrationsIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Migrations.ListMigrationsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Migrations.ListMigrationsIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *Migration, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Migrations.ListMigrationsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestMigrationService_ListUserMigrationsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Migrations.ListUserMigrationsIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Migrations.ListUserMigrationsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Migrations.ListUserMigrationsIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Migrations.ListUserMigrationsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Migrations.ListUserMigrationsIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Migrations.ListUserMigrationsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Migrations.ListUserMigrationsIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *UserMigration, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Migrations.ListUserMigrationsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestOrganizationsService_ListIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Organizations.ListIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Organizations.ListIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Organizations.ListIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Organizations.ListIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Organizations.ListIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Organizations.ListIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Organizations.ListIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *Organization, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Organizations.ListIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestOrganizationsService_ListAllIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Organizations.ListAllIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Organizations.ListAllIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &OrganizationsListOptions{} + iter = client.Organizations.ListAllIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Organizations.ListAllIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Organizations.ListAllIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Organizations.ListAllIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Organizations.ListAllIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *Organization, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Organizations.ListAllIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestOrganizationsService_ListBlockedUsersIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Organizations.ListBlockedUsersIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Organizations.ListBlockedUsersIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Organizations.ListBlockedUsersIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Organizations.ListBlockedUsersIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Organizations.ListBlockedUsersIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Organizations.ListBlockedUsersIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Organizations.ListBlockedUsersIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *User, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Organizations.ListBlockedUsersIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestOrganizationsService_ListCredentialAuthorizationsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Organizations.ListCredentialAuthorizationsIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Organizations.ListCredentialAuthorizationsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &CredentialAuthorizationsListOptions{} + iter = client.Organizations.ListCredentialAuthorizationsIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Organizations.ListCredentialAuthorizationsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Organizations.ListCredentialAuthorizationsIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Organizations.ListCredentialAuthorizationsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Organizations.ListCredentialAuthorizationsIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *CredentialAuthorization, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Organizations.ListCredentialAuthorizationsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestOrganizationsService_ListCustomPropertyValuesIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Organizations.ListCustomPropertyValuesIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Organizations.ListCustomPropertyValuesIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListCustomPropertyValuesOptions{} + iter = client.Organizations.ListCustomPropertyValuesIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Organizations.ListCustomPropertyValuesIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Organizations.ListCustomPropertyValuesIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Organizations.ListCustomPropertyValuesIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Organizations.ListCustomPropertyValuesIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *RepoCustomPropertyValue, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Organizations.ListCustomPropertyValuesIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestOrganizationsService_ListFailedOrgInvitationsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Organizations.ListFailedOrgInvitationsIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Organizations.ListFailedOrgInvitationsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Organizations.ListFailedOrgInvitationsIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Organizations.ListFailedOrgInvitationsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Organizations.ListFailedOrgInvitationsIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Organizations.ListFailedOrgInvitationsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Organizations.ListFailedOrgInvitationsIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *Invitation, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Organizations.ListFailedOrgInvitationsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestOrganizationsService_ListFineGrainedPersonalAccessTokensIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Organizations.ListFineGrainedPersonalAccessTokensIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Organizations.ListFineGrainedPersonalAccessTokensIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListFineGrainedPATOptions{} + iter = client.Organizations.ListFineGrainedPersonalAccessTokensIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Organizations.ListFineGrainedPersonalAccessTokensIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Organizations.ListFineGrainedPersonalAccessTokensIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Organizations.ListFineGrainedPersonalAccessTokensIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Organizations.ListFineGrainedPersonalAccessTokensIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *PersonalAccessToken, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Organizations.ListFineGrainedPersonalAccessTokensIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestOrganizationsService_ListHooksIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Organizations.ListHooksIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Organizations.ListHooksIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Organizations.ListHooksIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Organizations.ListHooksIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Organizations.ListHooksIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Organizations.ListHooksIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Organizations.ListHooksIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *Hook, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Organizations.ListHooksIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestOrganizationsService_ListMembersIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Organizations.ListMembersIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Organizations.ListMembersIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListMembersOptions{} + iter = client.Organizations.ListMembersIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Organizations.ListMembersIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Organizations.ListMembersIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Organizations.ListMembersIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Organizations.ListMembersIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *User, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Organizations.ListMembersIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestOrganizationsService_ListOrgInvitationTeamsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Organizations.ListOrgInvitationTeamsIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Organizations.ListOrgInvitationTeamsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Organizations.ListOrgInvitationTeamsIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Organizations.ListOrgInvitationTeamsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Organizations.ListOrgInvitationTeamsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Organizations.ListOrgInvitationTeamsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Organizations.ListOrgInvitationTeamsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Team, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Organizations.ListOrgInvitationTeamsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestOrganizationsService_ListOrgMembershipsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Organizations.ListOrgMembershipsIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Organizations.ListOrgMembershipsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOrgMembershipsOptions{} + iter = client.Organizations.ListOrgMembershipsIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Organizations.ListOrgMembershipsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Organizations.ListOrgMembershipsIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Organizations.ListOrgMembershipsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Organizations.ListOrgMembershipsIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *Membership, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Organizations.ListOrgMembershipsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestOrganizationsService_ListOutsideCollaboratorsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Organizations.ListOutsideCollaboratorsIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Organizations.ListOutsideCollaboratorsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOutsideCollaboratorsOptions{} + iter = client.Organizations.ListOutsideCollaboratorsIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Organizations.ListOutsideCollaboratorsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Organizations.ListOutsideCollaboratorsIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Organizations.ListOutsideCollaboratorsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Organizations.ListOutsideCollaboratorsIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *User, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Organizations.ListOutsideCollaboratorsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestOrganizationsService_ListPackagesIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Organizations.ListPackagesIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Organizations.ListPackagesIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &PackageListOptions{} + iter = client.Organizations.ListPackagesIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Organizations.ListPackagesIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Organizations.ListPackagesIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Organizations.ListPackagesIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Organizations.ListPackagesIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *Package, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Organizations.ListPackagesIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestOrganizationsService_ListPendingOrgInvitationsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Organizations.ListPendingOrgInvitationsIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Organizations.ListPendingOrgInvitationsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Organizations.ListPendingOrgInvitationsIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Organizations.ListPendingOrgInvitationsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Organizations.ListPendingOrgInvitationsIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Organizations.ListPendingOrgInvitationsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Organizations.ListPendingOrgInvitationsIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *Invitation, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Organizations.ListPendingOrgInvitationsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestOrganizationsService_ListTeamsAssignedToOrgRoleIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Organizations.ListTeamsAssignedToOrgRoleIter(t.Context(), "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Organizations.ListTeamsAssignedToOrgRoleIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Organizations.ListTeamsAssignedToOrgRoleIter(t.Context(), "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Organizations.ListTeamsAssignedToOrgRoleIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Organizations.ListTeamsAssignedToOrgRoleIter(t.Context(), "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Organizations.ListTeamsAssignedToOrgRoleIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Organizations.ListTeamsAssignedToOrgRoleIter(t.Context(), "", 0, nil) + gotItems = 0 // reset + iter(func(item *Team, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Organizations.ListTeamsAssignedToOrgRoleIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestOrganizationsService_ListUsersAssignedToOrgRoleIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Organizations.ListUsersAssignedToOrgRoleIter(t.Context(), "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Organizations.ListUsersAssignedToOrgRoleIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Organizations.ListUsersAssignedToOrgRoleIter(t.Context(), "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Organizations.ListUsersAssignedToOrgRoleIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Organizations.ListUsersAssignedToOrgRoleIter(t.Context(), "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Organizations.ListUsersAssignedToOrgRoleIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Organizations.ListUsersAssignedToOrgRoleIter(t.Context(), "", 0, nil) + gotItems = 0 // reset + iter(func(item *User, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Organizations.ListUsersAssignedToOrgRoleIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestPullRequestsService_ListIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.PullRequests.ListIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.PullRequests.ListIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &PullRequestListOptions{} + iter = client.PullRequests.ListIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.PullRequests.ListIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.PullRequests.ListIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.PullRequests.ListIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.PullRequests.ListIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *PullRequest, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.PullRequests.ListIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestPullRequestsService_ListCommentsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.PullRequests.ListCommentsIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.PullRequests.ListCommentsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &PullRequestListCommentsOptions{} + iter = client.PullRequests.ListCommentsIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.PullRequests.ListCommentsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.PullRequests.ListCommentsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.PullRequests.ListCommentsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.PullRequests.ListCommentsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *PullRequestComment, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.PullRequests.ListCommentsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestPullRequestsService_ListCommitsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.PullRequests.ListCommitsIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.PullRequests.ListCommitsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.PullRequests.ListCommitsIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.PullRequests.ListCommitsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.PullRequests.ListCommitsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.PullRequests.ListCommitsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.PullRequests.ListCommitsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *RepositoryCommit, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.PullRequests.ListCommitsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestPullRequestsService_ListFilesIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.PullRequests.ListFilesIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.PullRequests.ListFilesIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.PullRequests.ListFilesIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.PullRequests.ListFilesIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.PullRequests.ListFilesIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.PullRequests.ListFilesIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.PullRequests.ListFilesIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *CommitFile, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.PullRequests.ListFilesIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestPullRequestsService_ListPullRequestsWithCommitIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.PullRequests.ListPullRequestsWithCommitIter(t.Context(), "", "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.PullRequests.ListPullRequestsWithCommitIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.PullRequests.ListPullRequestsWithCommitIter(t.Context(), "", "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.PullRequests.ListPullRequestsWithCommitIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.PullRequests.ListPullRequestsWithCommitIter(t.Context(), "", "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.PullRequests.ListPullRequestsWithCommitIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.PullRequests.ListPullRequestsWithCommitIter(t.Context(), "", "", "", nil) + gotItems = 0 // reset + iter(func(item *PullRequest, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.PullRequests.ListPullRequestsWithCommitIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestPullRequestsService_ListReviewCommentsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.PullRequests.ListReviewCommentsIter(t.Context(), "", "", 0, 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.PullRequests.ListReviewCommentsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.PullRequests.ListReviewCommentsIter(t.Context(), "", "", 0, 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.PullRequests.ListReviewCommentsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.PullRequests.ListReviewCommentsIter(t.Context(), "", "", 0, 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.PullRequests.ListReviewCommentsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.PullRequests.ListReviewCommentsIter(t.Context(), "", "", 0, 0, nil) + gotItems = 0 // reset + iter(func(item *PullRequestComment, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.PullRequests.ListReviewCommentsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestPullRequestsService_ListReviewsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.PullRequests.ListReviewsIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.PullRequests.ListReviewsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.PullRequests.ListReviewsIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.PullRequests.ListReviewsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.PullRequests.ListReviewsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.PullRequests.ListReviewsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.PullRequests.ListReviewsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *PullRequestReview, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.PullRequests.ListReviewsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestReactionsService_ListCommentReactionsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Reactions.ListCommentReactionsIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Reactions.ListCommentReactionsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListReactionOptions{} + iter = client.Reactions.ListCommentReactionsIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Reactions.ListCommentReactionsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Reactions.ListCommentReactionsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Reactions.ListCommentReactionsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Reactions.ListCommentReactionsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *Reaction, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Reactions.ListCommentReactionsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestReactionsService_ListIssueCommentReactionsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Reactions.ListIssueCommentReactionsIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Reactions.ListIssueCommentReactionsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListReactionOptions{} + iter = client.Reactions.ListIssueCommentReactionsIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Reactions.ListIssueCommentReactionsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Reactions.ListIssueCommentReactionsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Reactions.ListIssueCommentReactionsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Reactions.ListIssueCommentReactionsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *Reaction, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Reactions.ListIssueCommentReactionsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestReactionsService_ListIssueReactionsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Reactions.ListIssueReactionsIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Reactions.ListIssueReactionsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListReactionOptions{} + iter = client.Reactions.ListIssueReactionsIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Reactions.ListIssueReactionsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Reactions.ListIssueReactionsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Reactions.ListIssueReactionsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Reactions.ListIssueReactionsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *Reaction, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Reactions.ListIssueReactionsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestReactionsService_ListPullRequestCommentReactionsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Reactions.ListPullRequestCommentReactionsIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Reactions.ListPullRequestCommentReactionsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListReactionOptions{} + iter = client.Reactions.ListPullRequestCommentReactionsIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Reactions.ListPullRequestCommentReactionsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Reactions.ListPullRequestCommentReactionsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Reactions.ListPullRequestCommentReactionsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Reactions.ListPullRequestCommentReactionsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *Reaction, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Reactions.ListPullRequestCommentReactionsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestReactionsService_ListReleaseReactionsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Reactions.ListReleaseReactionsIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Reactions.ListReleaseReactionsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListReactionOptions{} + iter = client.Reactions.ListReleaseReactionsIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Reactions.ListReleaseReactionsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Reactions.ListReleaseReactionsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Reactions.ListReleaseReactionsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Reactions.ListReleaseReactionsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *Reaction, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Reactions.ListReleaseReactionsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestReactionsService_ListTeamDiscussionCommentReactionsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Reactions.ListTeamDiscussionCommentReactionsIter(t.Context(), 0, 0, 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Reactions.ListTeamDiscussionCommentReactionsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListReactionOptions{} + iter = client.Reactions.ListTeamDiscussionCommentReactionsIter(t.Context(), 0, 0, 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Reactions.ListTeamDiscussionCommentReactionsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Reactions.ListTeamDiscussionCommentReactionsIter(t.Context(), 0, 0, 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Reactions.ListTeamDiscussionCommentReactionsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Reactions.ListTeamDiscussionCommentReactionsIter(t.Context(), 0, 0, 0, nil) + gotItems = 0 // reset + iter(func(item *Reaction, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Reactions.ListTeamDiscussionCommentReactionsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestReactionsService_ListTeamDiscussionReactionsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Reactions.ListTeamDiscussionReactionsIter(t.Context(), 0, 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Reactions.ListTeamDiscussionReactionsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListReactionOptions{} + iter = client.Reactions.ListTeamDiscussionReactionsIter(t.Context(), 0, 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Reactions.ListTeamDiscussionReactionsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Reactions.ListTeamDiscussionReactionsIter(t.Context(), 0, 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Reactions.ListTeamDiscussionReactionsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Reactions.ListTeamDiscussionReactionsIter(t.Context(), 0, 0, nil) + gotItems = 0 // reset + iter(func(item *Reaction, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Reactions.ListTeamDiscussionReactionsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &RepositoryListOptions{} + iter = client.Repositories.ListIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *Repository, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListAutolinksIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListAutolinksIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListAutolinksIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Repositories.ListAutolinksIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListAutolinksIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListAutolinksIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListAutolinksIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListAutolinksIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Autolink, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListAutolinksIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListBranchesIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListBranchesIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListBranchesIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &BranchListOptions{} + iter = client.Repositories.ListBranchesIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListBranchesIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListBranchesIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListBranchesIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListBranchesIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Branch, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListBranchesIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListByAuthenticatedUserIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListByAuthenticatedUserIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListByAuthenticatedUserIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &RepositoryListByAuthenticatedUserOptions{} + iter = client.Repositories.ListByAuthenticatedUserIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListByAuthenticatedUserIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListByAuthenticatedUserIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListByAuthenticatedUserIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListByAuthenticatedUserIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *Repository, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListByAuthenticatedUserIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListByOrgIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListByOrgIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListByOrgIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &RepositoryListByOrgOptions{} + iter = client.Repositories.ListByOrgIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListByOrgIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListByOrgIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListByOrgIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListByOrgIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *Repository, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListByOrgIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListByUserIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListByUserIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListByUserIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &RepositoryListByUserOptions{} + iter = client.Repositories.ListByUserIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListByUserIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListByUserIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListByUserIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListByUserIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *Repository, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListByUserIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListCollaboratorsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListCollaboratorsIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListCollaboratorsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListCollaboratorsOptions{} + iter = client.Repositories.ListCollaboratorsIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListCollaboratorsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListCollaboratorsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListCollaboratorsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListCollaboratorsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *User, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListCollaboratorsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListCommentsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListCommentsIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListCommentsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Repositories.ListCommentsIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListCommentsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListCommentsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListCommentsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListCommentsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *RepositoryComment, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListCommentsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListCommitCommentsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListCommitCommentsIter(t.Context(), "", "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListCommitCommentsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Repositories.ListCommitCommentsIter(t.Context(), "", "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListCommitCommentsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListCommitCommentsIter(t.Context(), "", "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListCommitCommentsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListCommitCommentsIter(t.Context(), "", "", "", nil) + gotItems = 0 // reset + iter(func(item *RepositoryComment, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListCommitCommentsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListCommitsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListCommitsIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListCommitsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &CommitsListOptions{} + iter = client.Repositories.ListCommitsIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListCommitsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListCommitsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListCommitsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListCommitsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *RepositoryCommit, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListCommitsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListContributorsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListContributorsIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListContributorsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListContributorsOptions{} + iter = client.Repositories.ListContributorsIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListContributorsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListContributorsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListContributorsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListContributorsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Contributor, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListContributorsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListDeploymentStatusesIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListDeploymentStatusesIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListDeploymentStatusesIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Repositories.ListDeploymentStatusesIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListDeploymentStatusesIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListDeploymentStatusesIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListDeploymentStatusesIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListDeploymentStatusesIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *DeploymentStatus, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListDeploymentStatusesIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListDeploymentsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListDeploymentsIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListDeploymentsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &DeploymentsListOptions{} + iter = client.Repositories.ListDeploymentsIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListDeploymentsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListDeploymentsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListDeploymentsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListDeploymentsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Deployment, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListDeploymentsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListForksIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListForksIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListForksIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &RepositoryListForksOptions{} + iter = client.Repositories.ListForksIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListForksIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListForksIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListForksIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListForksIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Repository, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListForksIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListHooksIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListHooksIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListHooksIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Repositories.ListHooksIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListHooksIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListHooksIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListHooksIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListHooksIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Hook, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListHooksIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListInvitationsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListInvitationsIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListInvitationsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Repositories.ListInvitationsIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListInvitationsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListInvitationsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListInvitationsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListInvitationsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *RepositoryInvitation, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListInvitationsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListKeysIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListKeysIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListKeysIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Repositories.ListKeysIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListKeysIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListKeysIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListKeysIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListKeysIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Key, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListKeysIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListPagesBuildsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListPagesBuildsIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListPagesBuildsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Repositories.ListPagesBuildsIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListPagesBuildsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListPagesBuildsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListPagesBuildsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListPagesBuildsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *PagesBuild, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListPagesBuildsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListPreReceiveHooksIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListPreReceiveHooksIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListPreReceiveHooksIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Repositories.ListPreReceiveHooksIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListPreReceiveHooksIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListPreReceiveHooksIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListPreReceiveHooksIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListPreReceiveHooksIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *PreReceiveHook, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListPreReceiveHooksIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListReleaseAssetsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListReleaseAssetsIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListReleaseAssetsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Repositories.ListReleaseAssetsIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListReleaseAssetsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListReleaseAssetsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListReleaseAssetsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListReleaseAssetsIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *ReleaseAsset, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListReleaseAssetsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListReleasesIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListReleasesIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListReleasesIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Repositories.ListReleasesIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListReleasesIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListReleasesIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListReleasesIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListReleasesIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *RepositoryRelease, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListReleasesIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListStatusesIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListStatusesIter(t.Context(), "", "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListStatusesIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Repositories.ListStatusesIter(t.Context(), "", "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListStatusesIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListStatusesIter(t.Context(), "", "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListStatusesIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListStatusesIter(t.Context(), "", "", "", nil) + gotItems = 0 // reset + iter(func(item *RepoStatus, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListStatusesIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListTagsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListTagsIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListTagsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Repositories.ListTagsIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListTagsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListTagsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListTagsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListTagsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *RepositoryTag, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListTagsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestRepositoriesService_ListTeamsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Repositories.ListTeamsIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Repositories.ListTeamsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Repositories.ListTeamsIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Repositories.ListTeamsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Repositories.ListTeamsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Repositories.ListTeamsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Repositories.ListTeamsIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Team, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Repositories.ListTeamsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestSecretScanningService_ListAlertsForEnterpriseIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.SecretScanning.ListAlertsForEnterpriseIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.SecretScanning.ListAlertsForEnterpriseIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &SecretScanningAlertListOptions{} + iter = client.SecretScanning.ListAlertsForEnterpriseIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.SecretScanning.ListAlertsForEnterpriseIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.SecretScanning.ListAlertsForEnterpriseIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.SecretScanning.ListAlertsForEnterpriseIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.SecretScanning.ListAlertsForEnterpriseIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *SecretScanningAlert, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.SecretScanning.ListAlertsForEnterpriseIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestSecretScanningService_ListAlertsForOrgIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.SecretScanning.ListAlertsForOrgIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.SecretScanning.ListAlertsForOrgIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &SecretScanningAlertListOptions{} + iter = client.SecretScanning.ListAlertsForOrgIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.SecretScanning.ListAlertsForOrgIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.SecretScanning.ListAlertsForOrgIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.SecretScanning.ListAlertsForOrgIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.SecretScanning.ListAlertsForOrgIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *SecretScanningAlert, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.SecretScanning.ListAlertsForOrgIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestSecretScanningService_ListAlertsForRepoIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.SecretScanning.ListAlertsForRepoIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.SecretScanning.ListAlertsForRepoIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &SecretScanningAlertListOptions{} + iter = client.SecretScanning.ListAlertsForRepoIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.SecretScanning.ListAlertsForRepoIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.SecretScanning.ListAlertsForRepoIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.SecretScanning.ListAlertsForRepoIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.SecretScanning.ListAlertsForRepoIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *SecretScanningAlert, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.SecretScanning.ListAlertsForRepoIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestSecretScanningService_ListLocationsForAlertIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.SecretScanning.ListLocationsForAlertIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.SecretScanning.ListLocationsForAlertIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.SecretScanning.ListLocationsForAlertIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.SecretScanning.ListLocationsForAlertIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.SecretScanning.ListLocationsForAlertIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.SecretScanning.ListLocationsForAlertIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.SecretScanning.ListLocationsForAlertIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *SecretScanningAlertLocation, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.SecretScanning.ListLocationsForAlertIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestSubIssueService_ListByIssueIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.SubIssue.ListByIssueIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.SubIssue.ListByIssueIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &IssueListOptions{} + iter = client.SubIssue.ListByIssueIter(t.Context(), "", "", 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.SubIssue.ListByIssueIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.SubIssue.ListByIssueIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.SubIssue.ListByIssueIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.SubIssue.ListByIssueIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *SubIssue, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.SubIssue.ListByIssueIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestTeamsService_ListChildTeamsByParentIDIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Teams.ListChildTeamsByParentIDIter(t.Context(), 0, 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Teams.ListChildTeamsByParentIDIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Teams.ListChildTeamsByParentIDIter(t.Context(), 0, 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Teams.ListChildTeamsByParentIDIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Teams.ListChildTeamsByParentIDIter(t.Context(), 0, 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Teams.ListChildTeamsByParentIDIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Teams.ListChildTeamsByParentIDIter(t.Context(), 0, 0, nil) + gotItems = 0 // reset + iter(func(item *Team, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Teams.ListChildTeamsByParentIDIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestTeamsService_ListChildTeamsByParentSlugIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Teams.ListChildTeamsByParentSlugIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Teams.ListChildTeamsByParentSlugIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Teams.ListChildTeamsByParentSlugIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Teams.ListChildTeamsByParentSlugIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Teams.ListChildTeamsByParentSlugIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Teams.ListChildTeamsByParentSlugIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Teams.ListChildTeamsByParentSlugIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Team, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Teams.ListChildTeamsByParentSlugIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestTeamsService_ListCommentsByIDIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Teams.ListCommentsByIDIter(t.Context(), 0, 0, 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Teams.ListCommentsByIDIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + options := &DiscussionCommentListOptions{} + iter = client.Teams.ListCommentsByIDIter(t.Context(), 0, 0, 0, options) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Teams.ListCommentsByIDIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Teams.ListCommentsByIDIter(t.Context(), 0, 0, 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Teams.ListCommentsByIDIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Teams.ListCommentsByIDIter(t.Context(), 0, 0, 0, nil) + gotItems = 0 // reset + iter(func(item *DiscussionComment, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Teams.ListCommentsByIDIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestTeamsService_ListCommentsBySlugIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Teams.ListCommentsBySlugIter(t.Context(), "", "", 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Teams.ListCommentsBySlugIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + options := &DiscussionCommentListOptions{} + iter = client.Teams.ListCommentsBySlugIter(t.Context(), "", "", 0, options) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Teams.ListCommentsBySlugIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Teams.ListCommentsBySlugIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Teams.ListCommentsBySlugIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Teams.ListCommentsBySlugIter(t.Context(), "", "", 0, nil) + gotItems = 0 // reset + iter(func(item *DiscussionComment, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Teams.ListCommentsBySlugIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestTeamsService_ListDiscussionsByIDIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Teams.ListDiscussionsByIDIter(t.Context(), 0, 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Teams.ListDiscussionsByIDIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &DiscussionListOptions{} + iter = client.Teams.ListDiscussionsByIDIter(t.Context(), 0, 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Teams.ListDiscussionsByIDIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Teams.ListDiscussionsByIDIter(t.Context(), 0, 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Teams.ListDiscussionsByIDIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Teams.ListDiscussionsByIDIter(t.Context(), 0, 0, nil) + gotItems = 0 // reset + iter(func(item *TeamDiscussion, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Teams.ListDiscussionsByIDIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestTeamsService_ListDiscussionsBySlugIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Teams.ListDiscussionsBySlugIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Teams.ListDiscussionsBySlugIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &DiscussionListOptions{} + iter = client.Teams.ListDiscussionsBySlugIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Teams.ListDiscussionsBySlugIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Teams.ListDiscussionsBySlugIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Teams.ListDiscussionsBySlugIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Teams.ListDiscussionsBySlugIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *TeamDiscussion, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Teams.ListDiscussionsBySlugIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestTeamsService_ListPendingTeamInvitationsByIDIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Teams.ListPendingTeamInvitationsByIDIter(t.Context(), 0, 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Teams.ListPendingTeamInvitationsByIDIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Teams.ListPendingTeamInvitationsByIDIter(t.Context(), 0, 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Teams.ListPendingTeamInvitationsByIDIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Teams.ListPendingTeamInvitationsByIDIter(t.Context(), 0, 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Teams.ListPendingTeamInvitationsByIDIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Teams.ListPendingTeamInvitationsByIDIter(t.Context(), 0, 0, nil) + gotItems = 0 // reset + iter(func(item *Invitation, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Teams.ListPendingTeamInvitationsByIDIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestTeamsService_ListPendingTeamInvitationsBySlugIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Teams.ListPendingTeamInvitationsBySlugIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Teams.ListPendingTeamInvitationsBySlugIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Teams.ListPendingTeamInvitationsBySlugIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Teams.ListPendingTeamInvitationsBySlugIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Teams.ListPendingTeamInvitationsBySlugIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Teams.ListPendingTeamInvitationsBySlugIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Teams.ListPendingTeamInvitationsBySlugIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Invitation, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Teams.ListPendingTeamInvitationsBySlugIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestTeamsService_ListTeamMembersByIDIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Teams.ListTeamMembersByIDIter(t.Context(), 0, 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Teams.ListTeamMembersByIDIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &TeamListTeamMembersOptions{} + iter = client.Teams.ListTeamMembersByIDIter(t.Context(), 0, 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Teams.ListTeamMembersByIDIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Teams.ListTeamMembersByIDIter(t.Context(), 0, 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Teams.ListTeamMembersByIDIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Teams.ListTeamMembersByIDIter(t.Context(), 0, 0, nil) + gotItems = 0 // reset + iter(func(item *User, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Teams.ListTeamMembersByIDIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestTeamsService_ListTeamMembersBySlugIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Teams.ListTeamMembersBySlugIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Teams.ListTeamMembersBySlugIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &TeamListTeamMembersOptions{} + iter = client.Teams.ListTeamMembersBySlugIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Teams.ListTeamMembersBySlugIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Teams.ListTeamMembersBySlugIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Teams.ListTeamMembersBySlugIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Teams.ListTeamMembersBySlugIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *User, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Teams.ListTeamMembersBySlugIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestTeamsService_ListTeamReposByIDIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Teams.ListTeamReposByIDIter(t.Context(), 0, 0, nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Teams.ListTeamReposByIDIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Teams.ListTeamReposByIDIter(t.Context(), 0, 0, opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Teams.ListTeamReposByIDIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Teams.ListTeamReposByIDIter(t.Context(), 0, 0, nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Teams.ListTeamReposByIDIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Teams.ListTeamReposByIDIter(t.Context(), 0, 0, nil) + gotItems = 0 // reset + iter(func(item *Repository, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Teams.ListTeamReposByIDIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestTeamsService_ListTeamReposBySlugIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Teams.ListTeamReposBySlugIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Teams.ListTeamReposBySlugIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Teams.ListTeamReposBySlugIter(t.Context(), "", "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Teams.ListTeamReposBySlugIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Teams.ListTeamReposBySlugIter(t.Context(), "", "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Teams.ListTeamReposBySlugIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Teams.ListTeamReposBySlugIter(t.Context(), "", "", nil) + gotItems = 0 // reset + iter(func(item *Repository, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Teams.ListTeamReposBySlugIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestTeamsService_ListTeamsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Teams.ListTeamsIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Teams.ListTeamsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Teams.ListTeamsIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Teams.ListTeamsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Teams.ListTeamsIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Teams.ListTeamsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Teams.ListTeamsIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *Team, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Teams.ListTeamsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestTeamsService_ListUserTeamsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Teams.ListUserTeamsIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Teams.ListUserTeamsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Teams.ListUserTeamsIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Teams.ListUserTeamsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Teams.ListUserTeamsIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Teams.ListUserTeamsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Teams.ListUserTeamsIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *Team, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Teams.ListUserTeamsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestUsersService_ListAllIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Users.ListAllIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Users.ListAllIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &UserListOptions{} + iter = client.Users.ListAllIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Users.ListAllIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Users.ListAllIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Users.ListAllIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Users.ListAllIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *User, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Users.ListAllIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestUsersService_ListBlockedUsersIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Users.ListBlockedUsersIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Users.ListBlockedUsersIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Users.ListBlockedUsersIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Users.ListBlockedUsersIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Users.ListBlockedUsersIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Users.ListBlockedUsersIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Users.ListBlockedUsersIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *User, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Users.ListBlockedUsersIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestUsersService_ListEmailsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Users.ListEmailsIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Users.ListEmailsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Users.ListEmailsIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Users.ListEmailsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Users.ListEmailsIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Users.ListEmailsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Users.ListEmailsIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *UserEmail, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Users.ListEmailsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestUsersService_ListFollowersIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Users.ListFollowersIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Users.ListFollowersIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Users.ListFollowersIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Users.ListFollowersIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Users.ListFollowersIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Users.ListFollowersIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Users.ListFollowersIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *User, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Users.ListFollowersIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestUsersService_ListFollowingIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Users.ListFollowingIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Users.ListFollowingIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Users.ListFollowingIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Users.ListFollowingIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Users.ListFollowingIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Users.ListFollowingIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Users.ListFollowingIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *User, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Users.ListFollowingIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestUsersService_ListGPGKeysIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Users.ListGPGKeysIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Users.ListGPGKeysIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Users.ListGPGKeysIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Users.ListGPGKeysIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Users.ListGPGKeysIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Users.ListGPGKeysIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Users.ListGPGKeysIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *GPGKey, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Users.ListGPGKeysIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestUsersService_ListInvitationsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Users.ListInvitationsIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Users.ListInvitationsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Users.ListInvitationsIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Users.ListInvitationsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Users.ListInvitationsIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Users.ListInvitationsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Users.ListInvitationsIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *RepositoryInvitation, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Users.ListInvitationsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestUsersService_ListKeysIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Users.ListKeysIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Users.ListKeysIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Users.ListKeysIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Users.ListKeysIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Users.ListKeysIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Users.ListKeysIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Users.ListKeysIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *Key, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Users.ListKeysIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestUsersService_ListPackagesIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Users.ListPackagesIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Users.ListPackagesIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &PackageListOptions{} + iter = client.Users.ListPackagesIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Users.ListPackagesIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Users.ListPackagesIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Users.ListPackagesIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Users.ListPackagesIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *Package, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Users.ListPackagesIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestUsersService_ListSSHSigningKeysIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Users.ListSSHSigningKeysIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Users.ListSSHSigningKeysIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Users.ListSSHSigningKeysIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Users.ListSSHSigningKeysIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Users.ListSSHSigningKeysIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Users.ListSSHSigningKeysIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Users.ListSSHSigningKeysIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *SSHSigningKey, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Users.ListSSHSigningKeysIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestUsersService_ListSocialAccountsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Users.ListSocialAccountsIter(t.Context(), nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Users.ListSocialAccountsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Users.ListSocialAccountsIter(t.Context(), opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Users.ListSocialAccountsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Users.ListSocialAccountsIter(t.Context(), nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Users.ListSocialAccountsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Users.ListSocialAccountsIter(t.Context(), nil) + gotItems = 0 // reset + iter(func(item *SocialAccount, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Users.ListSocialAccountsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + +func TestUsersService_ListUserSocialAccountsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) // Call 1 below: return 3 items, NextPage=1, no errors + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) // still Call 1 below: return 4 more items, no next page, no errors + case 3: + fmt.Fprint(w, `[{},{}]`) // Call 2 below: return 2 items, no next page, no errors + case 4: + w.WriteHeader(http.StatusNotFound) // Call 3 below: endpoint returns an error + case 5: + fmt.Fprint(w, `[{},{}]`) // Call 4 below: return 2 items, no next page, no errors + } + }) + + // Call 1: iterator using zero values + iter := client.Users.ListUserSocialAccountsIter(t.Context(), "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Users.ListUserSocialAccountsIter call 1 got %v items; want %v", gotItems, want) + } + + // Call 2: iterator using non-nil opts + opts := &ListOptions{} + iter = client.Users.ListUserSocialAccountsIter(t.Context(), "", opts) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Users.ListUserSocialAccountsIter call 2 got %v items; want %v", gotItems, want) + } + + // Call 3: iterator returns an error + iter = client.Users.ListUserSocialAccountsIter(t.Context(), "", nil) + gotItems = 0 // reset + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Users.ListUserSocialAccountsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + // Call 4: iterator returns false + iter = client.Users.ListUserSocialAccountsIter(t.Context(), "", nil) + gotItems = 0 // reset + iter(func(item *SocialAccount, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + // Force the iterator to hit: + // if !yield(item, nil) { return } + return false + }) + if gotItems != 1 { + t.Errorf("client.Users.ListUserSocialAccountsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} diff --git a/github/github.go b/github/github.go index db642f7894b..d84b1584560 100644 --- a/github/github.go +++ b/github/github.go @@ -4,6 +4,7 @@ // license that can be found in the LICENSE file. //go:generate go run gen-accessors.go +//go:generate go run gen-iterators.go //go:generate go run gen-stringify-test.go //go:generate sh ../script/metadata.sh update-go diff --git a/github/iterators_gen_test.go b/github/iterators_gen_test.go deleted file mode 100644 index b0d9a4d7221..00000000000 --- a/github/iterators_gen_test.go +++ /dev/null @@ -1,2303 +0,0 @@ -// Code generated by gen-iterators; DO NOT EDIT. - -// Copyright 2026 The go-github AUTHORS. All rights reserved. -// -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package github - -import ( - "context" - "fmt" - "net/http" - "testing" -) - -func TestActivityService_ListEventsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Activity.ListEventsIter(t.Context(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestActivityService_ListEventsForOrganizationIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Activity.ListEventsForOrganizationIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestActivityService_ListEventsForRepoNetworkIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Activity.ListEventsForRepoNetworkIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestActivityService_ListEventsPerformedByUserIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Activity.ListEventsPerformedByUserIter(context.Background(), "", false, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestActivityService_ListEventsReceivedByUserIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Activity.ListEventsReceivedByUserIter(context.Background(), "", false, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestActivityService_ListIssueEventsForRepositoryIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Activity.ListIssueEventsForRepositoryIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestActivityService_ListNotificationsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Activity.ListNotificationsIter(context.Background(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestActivityService_ListRepositoryEventsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Activity.ListRepositoryEventsIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestActivityService_ListRepositoryNotificationsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Activity.ListRepositoryNotificationsIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestActivityService_ListStargazersIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Activity.ListStargazersIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestActivityService_ListStarredIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Activity.ListStarredIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestActivityService_ListUserEventsForOrganizationIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Activity.ListUserEventsForOrganizationIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestActivityService_ListWatchedIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Activity.ListWatchedIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestActivityService_ListWatchersIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Activity.ListWatchersIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestAppsService_ListInstallationRequestsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Apps.ListInstallationRequestsIter(context.Background(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestAppsService_ListInstallationsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Apps.ListInstallationsIter(context.Background(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestAppsService_ListUserInstallationsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `{"installations": []}`) - }) - - // Call iterator with zero values - iter := client.Apps.ListUserInstallationsIter(context.Background(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestChecksService_ListCheckRunAnnotationsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Checks.ListCheckRunAnnotationsIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestClassroomService_ListAcceptedAssignmentsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Classroom.ListAcceptedAssignmentsIter(context.Background(), 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestClassroomService_ListClassroomAssignmentsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Classroom.ListClassroomAssignmentsIter(context.Background(), 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestClassroomService_ListClassroomsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Classroom.ListClassroomsIter(context.Background(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestCodeScanningService_ListAlertInstancesIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.CodeScanning.ListAlertInstancesIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestCodeScanningService_ListAlertsForOrgIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.CodeScanning.ListAlertsForOrgIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestCodeScanningService_ListAlertsForRepoIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.CodeScanning.ListAlertsForRepoIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestCodeScanningService_ListAnalysesForRepoIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.CodeScanning.ListAnalysesForRepoIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestDependabotService_ListOrgAlertsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Dependabot.ListOrgAlertsIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestDependabotService_ListRepoAlertsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Dependabot.ListRepoAlertsIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestEnterpriseService_ListAppAccessibleOrganizationRepositoriesIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Enterprise.ListAppAccessibleOrganizationRepositoriesIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestEnterpriseService_ListAppInstallableOrganizationsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Enterprise.ListAppInstallableOrganizationsIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestEnterpriseService_ListAppInstallationsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Enterprise.ListAppInstallationsIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestEnterpriseService_ListAssignmentsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Enterprise.ListAssignmentsIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestEnterpriseService_ListOrganizationCustomPropertyValuesIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Enterprise.ListOrganizationCustomPropertyValuesIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestEnterpriseService_ListRepositoriesForOrgAppInstallationIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Enterprise.ListRepositoriesForOrgAppInstallationIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestEnterpriseService_ListTeamMembersIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Enterprise.ListTeamMembersIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestEnterpriseService_ListTeamsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Enterprise.ListTeamsIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestGistsService_ListIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Gists.ListIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestGistsService_ListAllIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Gists.ListAllIter(context.Background(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestGistsService_ListCommentsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Gists.ListCommentsIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestGistsService_ListCommitsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Gists.ListCommitsIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestGistsService_ListForksIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Gists.ListForksIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestGistsService_ListStarredIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Gists.ListStarredIter(context.Background(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestIssuesService_ListIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Issues.ListIter(context.Background(), false, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestIssuesService_ListAssigneesIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Issues.ListAssigneesIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestIssuesService_ListByOrgIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Issues.ListByOrgIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestIssuesService_ListByRepoIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Issues.ListByRepoIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestIssuesService_ListCommentsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Issues.ListCommentsIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestIssuesService_ListIssueEventsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Issues.ListIssueEventsIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestIssuesService_ListIssueTimelineIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Issues.ListIssueTimelineIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestIssuesService_ListLabelsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Issues.ListLabelsIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestIssuesService_ListLabelsByIssueIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Issues.ListLabelsByIssueIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestIssuesService_ListLabelsForMilestoneIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Issues.ListLabelsForMilestoneIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestIssuesService_ListMilestonesIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Issues.ListMilestonesIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestIssuesService_ListRepositoryEventsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Issues.ListRepositoryEventsIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestMarketplaceService_ListMarketplacePurchasesForUserIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Marketplace.ListMarketplacePurchasesForUserIter(context.Background(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestMarketplaceService_ListPlanAccountsForPlanIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Marketplace.ListPlanAccountsForPlanIter(context.Background(), 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestMarketplaceService_ListPlansIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Marketplace.ListPlansIter(context.Background(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestMigrationService_ListMigrationsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Migrations.ListMigrationsIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestMigrationService_ListUserMigrationsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Migrations.ListUserMigrationsIter(context.Background(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestOrganizationsService_ListIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Organizations.ListIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestOrganizationsService_ListAllIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Organizations.ListAllIter(context.Background(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestOrganizationsService_ListBlockedUsersIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Organizations.ListBlockedUsersIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestOrganizationsService_ListCredentialAuthorizationsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Organizations.ListCredentialAuthorizationsIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestOrganizationsService_ListCustomPropertyValuesIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Organizations.ListCustomPropertyValuesIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestOrganizationsService_ListFailedOrgInvitationsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Organizations.ListFailedOrgInvitationsIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestOrganizationsService_ListFineGrainedPersonalAccessTokensIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Organizations.ListFineGrainedPersonalAccessTokensIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestOrganizationsService_ListHooksIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Organizations.ListHooksIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestOrganizationsService_ListMembersIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Organizations.ListMembersIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestOrganizationsService_ListOrgInvitationTeamsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Organizations.ListOrgInvitationTeamsIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestOrganizationsService_ListOrgMembershipsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Organizations.ListOrgMembershipsIter(context.Background(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestOrganizationsService_ListOutsideCollaboratorsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Organizations.ListOutsideCollaboratorsIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestOrganizationsService_ListPackagesIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Organizations.ListPackagesIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestOrganizationsService_ListPendingOrgInvitationsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Organizations.ListPendingOrgInvitationsIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestOrganizationsService_ListTeamsAssignedToOrgRoleIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Organizations.ListTeamsAssignedToOrgRoleIter(context.Background(), "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestOrganizationsService_ListUsersAssignedToOrgRoleIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Organizations.ListUsersAssignedToOrgRoleIter(context.Background(), "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestPullRequestsService_ListIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.PullRequests.ListIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestPullRequestsService_ListCommentsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.PullRequests.ListCommentsIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestPullRequestsService_ListCommitsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.PullRequests.ListCommitsIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestPullRequestsService_ListFilesIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.PullRequests.ListFilesIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestPullRequestsService_ListPullRequestsWithCommitIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.PullRequests.ListPullRequestsWithCommitIter(context.Background(), "", "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestPullRequestsService_ListReviewCommentsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.PullRequests.ListReviewCommentsIter(context.Background(), "", "", 0, 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestPullRequestsService_ListReviewsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.PullRequests.ListReviewsIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestReactionsService_ListCommentReactionsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Reactions.ListCommentReactionsIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestReactionsService_ListIssueCommentReactionsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Reactions.ListIssueCommentReactionsIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestReactionsService_ListIssueReactionsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Reactions.ListIssueReactionsIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestReactionsService_ListPullRequestCommentReactionsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Reactions.ListPullRequestCommentReactionsIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestReactionsService_ListReleaseReactionsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Reactions.ListReleaseReactionsIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestReactionsService_ListTeamDiscussionCommentReactionsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Reactions.ListTeamDiscussionCommentReactionsIter(context.Background(), 0, 0, 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestReactionsService_ListTeamDiscussionReactionsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Reactions.ListTeamDiscussionReactionsIter(context.Background(), 0, 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListAutolinksIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListAutolinksIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListBranchesIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListBranchesIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListByAuthenticatedUserIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListByAuthenticatedUserIter(context.Background(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListByOrgIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListByOrgIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListByUserIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListByUserIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListCollaboratorsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListCollaboratorsIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListCommentsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListCommentsIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListCommitCommentsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListCommitCommentsIter(context.Background(), "", "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListCommitsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListCommitsIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListContributorsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListContributorsIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListDeploymentStatusesIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListDeploymentStatusesIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListDeploymentsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListDeploymentsIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListForksIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListForksIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListHooksIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListHooksIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListInvitationsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListInvitationsIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListKeysIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListKeysIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListPagesBuildsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListPagesBuildsIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListPreReceiveHooksIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListPreReceiveHooksIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListReleaseAssetsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListReleaseAssetsIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListReleasesIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListReleasesIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListStatusesIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListStatusesIter(context.Background(), "", "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListTagsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListTagsIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestRepositoriesService_ListTeamsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Repositories.ListTeamsIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestSecretScanningService_ListAlertsForEnterpriseIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.SecretScanning.ListAlertsForEnterpriseIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestSecretScanningService_ListAlertsForOrgIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.SecretScanning.ListAlertsForOrgIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestSecretScanningService_ListAlertsForRepoIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.SecretScanning.ListAlertsForRepoIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestSecretScanningService_ListLocationsForAlertIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.SecretScanning.ListLocationsForAlertIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestSubIssueService_ListByIssueIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.SubIssue.ListByIssueIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestTeamsService_ListChildTeamsByParentIDIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Teams.ListChildTeamsByParentIDIter(context.Background(), 0, 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestTeamsService_ListChildTeamsByParentSlugIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Teams.ListChildTeamsByParentSlugIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestTeamsService_ListCommentsByIDIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Teams.ListCommentsByIDIter(context.Background(), 0, 0, 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestTeamsService_ListCommentsBySlugIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Teams.ListCommentsBySlugIter(context.Background(), "", "", 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestTeamsService_ListDiscussionsByIDIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Teams.ListDiscussionsByIDIter(context.Background(), 0, 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestTeamsService_ListDiscussionsBySlugIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Teams.ListDiscussionsBySlugIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestTeamsService_ListPendingTeamInvitationsByIDIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Teams.ListPendingTeamInvitationsByIDIter(context.Background(), 0, 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestTeamsService_ListPendingTeamInvitationsBySlugIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Teams.ListPendingTeamInvitationsBySlugIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestTeamsService_ListTeamMembersByIDIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Teams.ListTeamMembersByIDIter(context.Background(), 0, 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestTeamsService_ListTeamMembersBySlugIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Teams.ListTeamMembersBySlugIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestTeamsService_ListTeamReposByIDIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Teams.ListTeamReposByIDIter(context.Background(), 0, 0, nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestTeamsService_ListTeamReposBySlugIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Teams.ListTeamReposBySlugIter(context.Background(), "", "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestTeamsService_ListTeamsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Teams.ListTeamsIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestTeamsService_ListUserTeamsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Teams.ListUserTeamsIter(context.Background(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestUsersService_ListAllIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Users.ListAllIter(context.Background(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestUsersService_ListBlockedUsersIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Users.ListBlockedUsersIter(context.Background(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestUsersService_ListEmailsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Users.ListEmailsIter(context.Background(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestUsersService_ListFollowersIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Users.ListFollowersIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestUsersService_ListFollowingIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Users.ListFollowingIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestUsersService_ListGPGKeysIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Users.ListGPGKeysIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestUsersService_ListInvitationsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Users.ListInvitationsIter(context.Background(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestUsersService_ListKeysIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Users.ListKeysIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestUsersService_ListPackagesIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Users.ListPackagesIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestUsersService_ListSSHSigningKeysIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Users.ListSSHSigningKeysIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestUsersService_ListSocialAccountsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Users.ListSocialAccountsIter(context.Background(), nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} - -func TestUsersService_ListUserSocialAccountsIter(t *testing.T) { - t.Parallel() - client, mux, _ := setup(t) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[]`) - }) - - // Call iterator with zero values - iter := client.Users.ListUserSocialAccountsIter(context.Background(), "", nil) - for _, err := range iter { - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - } -} diff --git a/script/generate.sh b/script/generate.sh index 79ed031f420..186bb68afa1 100755 --- a/script/generate.sh +++ b/script/generate.sh @@ -10,7 +10,10 @@ if [ "$1" = "--check" ]; then GENTEMP="$(mktemp -d)" git worktree add -q --detach "$GENTEMP" trap 'git worktree remove -f "$GENTEMP"; rm -rf "$GENTEMP"' EXIT - for f in $(git ls-files -com --exclude-standard); do + git diff --name-only --diff-filter=D --no-renames HEAD | while read -r f; do + rm -f "$GENTEMP/$f" + done + git ls-files -com --exclude-standard | while read -r f; do target="$GENTEMP/$f" mkdir -p "$(dirname -- "$target")" cp "$f" "$target"