Skip to content

Commit 76e3d48

Browse files
committed
Simplify TestSearchRepositoryByName code
1 parent 11ef70a commit 76e3d48

File tree

1 file changed

+52
-116
lines changed

1 file changed

+52
-116
lines changed

models/repo_list_test.go

Lines changed: 52 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -61,121 +61,57 @@ func TestSearchRepositoryByName(t *testing.T) {
6161
assert.Equal(t, int64(3), count)
6262
assert.Len(t, repos, 3)
6363

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+
}
177100

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+
}
181117
}

0 commit comments

Comments
 (0)