1package github 2 3import ( 4 "context" 5 "fmt" 6 "net/http" 7 "reflect" 8 "testing" 9) 10 11func TestAdminService_GetAdminStats(t *testing.T) { 12 client, mux, _, teardown := setup() 13 defer teardown() 14 15 mux.HandleFunc("/enterprise/stats/all", func(w http.ResponseWriter, r *http.Request) { 16 testMethod(t, r, "GET") 17 18 fmt.Fprint(w, ` 19{ 20 "repos": { 21 "total_repos": 212, 22 "root_repos": 194, 23 "fork_repos": 18, 24 "org_repos": 51, 25 "total_pushes": 3082, 26 "total_wikis": 15 27 }, 28 "hooks": { 29 "total_hooks": 27, 30 "active_hooks": 23, 31 "inactive_hooks": 4 32 }, 33 "pages": { 34 "total_pages": 36 35 }, 36 "orgs": { 37 "total_orgs": 33, 38 "disabled_orgs": 0, 39 "total_teams": 60, 40 "total_team_members": 314 41 }, 42 "users": { 43 "total_users": 254, 44 "admin_users": 45, 45 "suspended_users": 21 46 }, 47 "pulls": { 48 "total_pulls": 86, 49 "merged_pulls": 60, 50 "mergeable_pulls": 21, 51 "unmergeable_pulls": 3 52 }, 53 "issues": { 54 "total_issues": 179, 55 "open_issues": 83, 56 "closed_issues": 96 57 }, 58 "milestones": { 59 "total_milestones": 7, 60 "open_milestones": 6, 61 "closed_milestones": 1 62 }, 63 "gists": { 64 "total_gists": 178, 65 "private_gists": 151, 66 "public_gists": 25 67 }, 68 "comments": { 69 "total_commit_comments": 6, 70 "total_gist_comments": 28, 71 "total_issue_comments": 366, 72 "total_pull_request_comments": 30 73 } 74} 75`) 76 }) 77 78 stats, _, err := client.Admin.GetAdminStats(context.Background()) 79 if err != nil { 80 t.Errorf("AdminService.GetAdminStats returned error: %v", err) 81 } 82 83 want := &AdminStats{ 84 Repos: &RepoStats{ 85 TotalRepos: Int(212), 86 RootRepos: Int(194), 87 ForkRepos: Int(18), 88 OrgRepos: Int(51), 89 TotalPushes: Int(3082), 90 TotalWikis: Int(15), 91 }, 92 Hooks: &HookStats{ 93 TotalHooks: Int(27), 94 ActiveHooks: Int(23), 95 InactiveHooks: Int(4), 96 }, 97 Pages: &PageStats{ 98 TotalPages: Int(36), 99 }, 100 Orgs: &OrgStats{ 101 TotalOrgs: Int(33), 102 DisabledOrgs: Int(0), 103 TotalTeams: Int(60), 104 TotalTeamMembers: Int(314), 105 }, 106 Users: &UserStats{ 107 TotalUsers: Int(254), 108 AdminUsers: Int(45), 109 SuspendedUsers: Int(21), 110 }, 111 Pulls: &PullStats{ 112 TotalPulls: Int(86), 113 MergedPulls: Int(60), 114 MergablePulls: Int(21), 115 UnmergablePulls: Int(3), 116 }, 117 Issues: &IssueStats{ 118 TotalIssues: Int(179), 119 OpenIssues: Int(83), 120 ClosedIssues: Int(96), 121 }, 122 Milestones: &MilestoneStats{ 123 TotalMilestones: Int(7), 124 OpenMilestones: Int(6), 125 ClosedMilestones: Int(1), 126 }, 127 Gists: &GistStats{ 128 TotalGists: Int(178), 129 PrivateGists: Int(151), 130 PublicGists: Int(25), 131 }, 132 Comments: &CommentStats{ 133 TotalCommitComments: Int(6), 134 TotalGistComments: Int(28), 135 TotalIssueComments: Int(366), 136 TotalPullRequestComments: Int(30), 137 }, 138 } 139 if !reflect.DeepEqual(stats, want) { 140 t.Errorf("AdminService.GetAdminStats returned %+v, want %+v", stats, want) 141 } 142} 143