@@ -61,121 +61,57 @@ func TestSearchRepositoryByName(t *testing.T) {
61
61
assert .Equal (t , int64 (3 ), count )
62
62
assert .Len (t , repos , 3 )
63
63
64
- // Get all public repositories by name
65
- repos , count , err = SearchRepositoryByName (& SearchRepoOptions {
66
- Keyword : "big_test_" ,
67
- Page : 1 ,
68
- PageSize : 10 ,
69
- })
70
-
71
- assert .NoError (t , err )
72
- assert .Equal (t , int64 (4 ), count )
73
- assert .Len (t , repos , 4 )
74
-
75
- // Get all public + private repositories by name
76
- repos , count , err = SearchRepositoryByName (& SearchRepoOptions {
77
- Keyword : "big_test_" ,
78
- Page : 1 ,
79
- PageSize : 10 ,
80
- Private : true ,
81
- })
82
-
83
- assert .NoError (t , err )
84
- assert .Equal (t , int64 (8 ), count )
85
- assert .Len (t , repos , 8 )
86
-
87
- // Get all public + private repositories by name with pagesize limit (first page)
88
- repos , count , err = SearchRepositoryByName (& SearchRepoOptions {
89
- Keyword : "big_test_" ,
90
- Page : 1 ,
91
- PageSize : 5 ,
92
- Private : true ,
93
- })
94
-
95
- assert .NoError (t , err )
96
- assert .Equal (t , int64 (8 ), count )
97
- assert .Len (t , repos , 5 )
98
-
99
- // Get all public + private repositories by name with pagesize limit (second page)
100
- repos , count , err = SearchRepositoryByName (& SearchRepoOptions {
101
- Keyword : "big_test_" ,
102
- Page : 2 ,
103
- PageSize : 5 ,
104
- Private : true ,
105
- })
106
-
107
- assert .NoError (t , err )
108
- assert .Equal (t , int64 (8 ), count )
109
- assert .Len (t , repos , 3 )
110
-
111
- // Get all public repositories of user
112
- repos , count , err = SearchRepositoryByName (& SearchRepoOptions {
113
- Page : 1 ,
114
- PageSize : 10 ,
115
- OwnerID : 15 ,
116
- })
117
-
118
- assert .NoError (t , err )
119
- assert .Equal (t , int64 (2 ), count )
120
- assert .Len (t , repos , 2 )
121
-
122
- // Get all public + private repositories of user
123
- repos , count , err = SearchRepositoryByName (& SearchRepoOptions {
124
- Page : 1 ,
125
- PageSize : 10 ,
126
- OwnerID : 15 ,
127
- Private : true ,
128
- })
129
-
130
- assert .NoError (t , err )
131
- assert .Equal (t , int64 (4 ), count )
132
- assert .Len (t , repos , 4 )
133
-
134
- // Get all public (including collaborative) repositories of user
135
- repos , count , err = SearchRepositoryByName (& SearchRepoOptions {
136
- Page : 1 ,
137
- PageSize : 10 ,
138
- OwnerID : 15 ,
139
- Collaborate : true ,
140
- })
141
-
142
- assert .NoError (t , err )
143
- assert .Equal (t , int64 (4 ), count )
144
- assert .Len (t , repos , 4 )
145
-
146
- // Get all public + private (including collaborative) repositories of user
147
- repos , count , err = SearchRepositoryByName (& SearchRepoOptions {
148
- Page : 1 ,
149
- PageSize : 10 ,
150
- OwnerID : 15 ,
151
- Private : true ,
152
- Collaborate : true ,
153
- })
154
-
155
- assert .NoError (t , err )
156
- assert .Equal (t , int64 (8 ), count )
157
- assert .Len (t , repos , 8 )
158
-
159
- // Get all public repositories of organization
160
- repos , count , err = SearchRepositoryByName (& SearchRepoOptions {
161
- Page : 1 ,
162
- PageSize : 10 ,
163
- OwnerID : 17 ,
164
- })
165
-
166
- assert .NoError (t , err )
167
- assert .Equal (t , int64 (1 ), count )
168
- assert .Len (t , repos , 1 )
169
-
170
- // Get all public + private repositories of organization
171
- repos , count , err = SearchRepositoryByName (& SearchRepoOptions {
172
- Page : 1 ,
173
- PageSize : 10 ,
174
- OwnerID : 17 ,
175
- Private : true ,
176
- })
64
+ testCases := []struct {
65
+ name string
66
+ opts * SearchRepoOptions
67
+ count int
68
+ }{
69
+ {name : "PublicRepositoriesByName" ,
70
+ opts : & SearchRepoOptions {Keyword : "big_test_" , Page : 1 , PageSize : 10 },
71
+ count : 4 },
72
+ {name : "PublicAndPrivateRepositoriesByName" ,
73
+ opts : & SearchRepoOptions {Keyword : "big_test_" , Page : 1 , PageSize : 10 , Private : true },
74
+ count : 8 },
75
+ {name : "PublicAndPrivateRepositoriesByNameWithPagesizeLimitFirstPage" ,
76
+ opts : & SearchRepoOptions {Keyword : "big_test_" , Page : 1 , PageSize : 5 , Private : true },
77
+ count : 8 },
78
+ {name : "PublicAndPrivateRepositoriesByNameWithPagesizeLimitSecondPage" ,
79
+ opts : & SearchRepoOptions {Keyword : "big_test_" , Page : 2 , PageSize : 5 , Private : true },
80
+ count : 8 },
81
+ {name : "PublicRepositoriesOfUser" ,
82
+ opts : & SearchRepoOptions {Page : 1 , PageSize : 10 , OwnerID : 15 },
83
+ count : 2 },
84
+ {name : "PublicAndPrivateRepositoriesOfUser" ,
85
+ opts : & SearchRepoOptions {Page : 1 , PageSize : 10 , OwnerID : 15 , Private : true },
86
+ count : 4 },
87
+ {name : "PublicRepositoriesOfUserIncludingCollaborative" ,
88
+ opts : & SearchRepoOptions {Page : 1 , PageSize : 10 , OwnerID : 15 , Collaborate : true },
89
+ count : 4 },
90
+ {name : "PublicAndPrivateRepositoriesOfUserIncludingCollaborative" ,
91
+ opts : & SearchRepoOptions {Page : 1 , PageSize : 10 , OwnerID : 15 , Private : true , Collaborate : true },
92
+ count : 8 },
93
+ {name : "PublicRepositoriesOfOrganization" ,
94
+ opts : & SearchRepoOptions {Page : 1 , PageSize : 10 , OwnerID : 17 },
95
+ count : 1 },
96
+ {name : "PublicAndPrivateRepositoriesOfOrganization" ,
97
+ opts : & SearchRepoOptions {Page : 1 , PageSize : 10 , OwnerID : 17 , Private : true },
98
+ count : 2 },
99
+ }
177
100
178
- assert .NoError (t , err )
179
- assert .Equal (t , int64 (2 ), count )
180
- assert .Len (t , repos , 2 )
101
+ for _ , testCase := range testCases {
102
+ t .Run (testCase .name , func (t * testing.T ) {
103
+ repos , count , err := SearchRepositoryByName (testCase .opts )
104
+
105
+ assert .NoError (t , err )
106
+ assert .Equal (t , int64 (testCase .count ), count )
107
+
108
+ var expectedLen int
109
+ if testCase .opts .PageSize * testCase .opts .Page > testCase .count {
110
+ expectedLen = testCase .count % testCase .opts .PageSize
111
+ } else {
112
+ expectedLen = testCase .opts .PageSize
113
+ }
114
+ assert .Len (t , repos , expectedLen )
115
+ })
116
+ }
181
117
}
0 commit comments