@ -119,90 +119,146 @@ func TestSearchRepository(t *testing.T) {
opts * SearchRepoOptions
opts * SearchRepoOptions
count int
count int
} {
} {
{ name : "PublicRepositoriesByName" ,
{
name : "PublicRepositoriesByName" ,
opts : & SearchRepoOptions { Keyword : "big_test_" , ListOptions : ListOptions { PageSize : 10 } , Collaborate : util . OptionalBoolFalse } ,
opts : & SearchRepoOptions { Keyword : "big_test_" , ListOptions : ListOptions { PageSize : 10 } , Collaborate : util . OptionalBoolFalse } ,
count : 7 } ,
count : 7 ,
{ name : "PublicAndPrivateRepositoriesByName" ,
} ,
{
name : "PublicAndPrivateRepositoriesByName" ,
opts : & SearchRepoOptions { Keyword : "big_test_" , ListOptions : ListOptions { Page : 1 , PageSize : 10 } , Private : true , Collaborate : util . OptionalBoolFalse } ,
opts : & SearchRepoOptions { Keyword : "big_test_" , ListOptions : ListOptions { Page : 1 , PageSize : 10 } , Private : true , Collaborate : util . OptionalBoolFalse } ,
count : 14 } ,
count : 14 ,
{ name : "PublicAndPrivateRepositoriesByNameWithPagesizeLimitFirstPage" ,
} ,
{
name : "PublicAndPrivateRepositoriesByNameWithPagesizeLimitFirstPage" ,
opts : & SearchRepoOptions { Keyword : "big_test_" , ListOptions : ListOptions { Page : 1 , PageSize : 5 } , Private : true , Collaborate : util . OptionalBoolFalse } ,
opts : & SearchRepoOptions { Keyword : "big_test_" , ListOptions : ListOptions { Page : 1 , PageSize : 5 } , Private : true , Collaborate : util . OptionalBoolFalse } ,
count : 14 } ,
count : 14 ,
{ name : "PublicAndPrivateRepositoriesByNameWithPagesizeLimitSecondPage" ,
} ,
{
name : "PublicAndPrivateRepositoriesByNameWithPagesizeLimitSecondPage" ,
opts : & SearchRepoOptions { Keyword : "big_test_" , ListOptions : ListOptions { Page : 2 , PageSize : 5 } , Private : true , Collaborate : util . OptionalBoolFalse } ,
opts : & SearchRepoOptions { Keyword : "big_test_" , ListOptions : ListOptions { Page : 2 , PageSize : 5 } , Private : true , Collaborate : util . OptionalBoolFalse } ,
count : 14 } ,
count : 14 ,
{ name : "PublicAndPrivateRepositoriesByNameWithPagesizeLimitThirdPage" ,
} ,
{
name : "PublicAndPrivateRepositoriesByNameWithPagesizeLimitThirdPage" ,
opts : & SearchRepoOptions { Keyword : "big_test_" , ListOptions : ListOptions { Page : 3 , PageSize : 5 } , Private : true , Collaborate : util . OptionalBoolFalse } ,
opts : & SearchRepoOptions { Keyword : "big_test_" , ListOptions : ListOptions { Page : 3 , PageSize : 5 } , Private : true , Collaborate : util . OptionalBoolFalse } ,
count : 14 } ,
count : 14 ,
{ name : "PublicAndPrivateRepositoriesByNameWithPagesizeLimitFourthPage" ,
} ,
{
name : "PublicAndPrivateRepositoriesByNameWithPagesizeLimitFourthPage" ,
opts : & SearchRepoOptions { Keyword : "big_test_" , ListOptions : ListOptions { Page : 3 , PageSize : 5 } , Private : true , Collaborate : util . OptionalBoolFalse } ,
opts : & SearchRepoOptions { Keyword : "big_test_" , ListOptions : ListOptions { Page : 3 , PageSize : 5 } , Private : true , Collaborate : util . OptionalBoolFalse } ,
count : 14 } ,
count : 14 ,
{ name : "PublicRepositoriesOfUser" ,
} ,
{
name : "PublicRepositoriesOfUser" ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 15 , Collaborate : util . OptionalBoolFalse } ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 15 , Collaborate : util . OptionalBoolFalse } ,
count : 2 } ,
count : 2 ,
{ name : "PublicRepositoriesOfUser2" ,
} ,
{
name : "PublicRepositoriesOfUser2" ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 18 , Collaborate : util . OptionalBoolFalse } ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 18 , Collaborate : util . OptionalBoolFalse } ,
count : 0 } ,
count : 0 ,
{ name : "PublicRepositoriesOfUser3" ,
} ,
{
name : "PublicRepositoriesOfUser3" ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 20 , Collaborate : util . OptionalBoolFalse } ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 20 , Collaborate : util . OptionalBoolFalse } ,
count : 2 } ,
count : 2 ,
{ name : "PublicAndPrivateRepositoriesOfUser" ,
} ,
{
name : "PublicAndPrivateRepositoriesOfUser" ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 15 , Private : true , Collaborate : util . OptionalBoolFalse } ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 15 , Private : true , Collaborate : util . OptionalBoolFalse } ,
count : 4 } ,
count : 4 ,
{ name : "PublicAndPrivateRepositoriesOfUser2" ,
} ,
{
name : "PublicAndPrivateRepositoriesOfUser2" ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 18 , Private : true , Collaborate : util . OptionalBoolFalse } ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 18 , Private : true , Collaborate : util . OptionalBoolFalse } ,
count : 0 } ,
count : 0 ,
{ name : "PublicAndPrivateRepositoriesOfUser3" ,
} ,
{
name : "PublicAndPrivateRepositoriesOfUser3" ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 20 , Private : true , Collaborate : util . OptionalBoolFalse } ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 20 , Private : true , Collaborate : util . OptionalBoolFalse } ,
count : 4 } ,
count : 4 ,
{ name : "PublicRepositoriesOfUserIncludingCollaborative" ,
} ,
{
name : "PublicRepositoriesOfUserIncludingCollaborative" ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 15 } ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 15 } ,
count : 5 } ,
count : 5 ,
{ name : "PublicRepositoriesOfUser2IncludingCollaborative" ,
} ,
{
name : "PublicRepositoriesOfUser2IncludingCollaborative" ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 18 } ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 18 } ,
count : 1 } ,
count : 1 ,
{ name : "PublicRepositoriesOfUser3IncludingCollaborative" ,
} ,
{
name : "PublicRepositoriesOfUser3IncludingCollaborative" ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 20 } ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 20 } ,
count : 3 } ,
count : 3 ,
{ name : "PublicAndPrivateRepositoriesOfUserIncludingCollaborative" ,
} ,
{
name : "PublicAndPrivateRepositoriesOfUserIncludingCollaborative" ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 15 , Private : true } ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 15 , Private : true } ,
count : 9 } ,
count : 9 ,
{ name : "PublicAndPrivateRepositoriesOfUser2IncludingCollaborative" ,
} ,
{
name : "PublicAndPrivateRepositoriesOfUser2IncludingCollaborative" ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 18 , Private : true } ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 18 , Private : true } ,
count : 4 } ,
count : 4 ,
{ name : "PublicAndPrivateRepositoriesOfUser3IncludingCollaborative" ,
} ,
{
name : "PublicAndPrivateRepositoriesOfUser3IncludingCollaborative" ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 20 , Private : true } ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 20 , Private : true } ,
count : 7 } ,
count : 7 ,
{ name : "PublicRepositoriesOfOrganization" ,
} ,
{
name : "PublicRepositoriesOfOrganization" ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 17 , Collaborate : util . OptionalBoolFalse } ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 17 , Collaborate : util . OptionalBoolFalse } ,
count : 1 } ,
count : 1 ,
{ name : "PublicAndPrivateRepositoriesOfOrganization" ,
} ,
{
name : "PublicAndPrivateRepositoriesOfOrganization" ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 17 , Private : true , Collaborate : util . OptionalBoolFalse } ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 17 , Private : true , Collaborate : util . OptionalBoolFalse } ,
count : 2 } ,
count : 2 ,
{ name : "AllPublic/PublicRepositoriesByName" ,
} ,
{
name : "AllPublic/PublicRepositoriesByName" ,
opts : & SearchRepoOptions { Keyword : "big_test_" , ListOptions : ListOptions { PageSize : 10 } , AllPublic : true , Collaborate : util . OptionalBoolFalse } ,
opts : & SearchRepoOptions { Keyword : "big_test_" , ListOptions : ListOptions { PageSize : 10 } , AllPublic : true , Collaborate : util . OptionalBoolFalse } ,
count : 7 } ,
count : 7 ,
{ name : "AllPublic/PublicAndPrivateRepositoriesByName" ,
} ,
{
name : "AllPublic/PublicAndPrivateRepositoriesByName" ,
opts : & SearchRepoOptions { Keyword : "big_test_" , ListOptions : ListOptions { Page : 1 , PageSize : 10 } , Private : true , AllPublic : true , Collaborate : util . OptionalBoolFalse } ,
opts : & SearchRepoOptions { Keyword : "big_test_" , ListOptions : ListOptions { Page : 1 , PageSize : 10 } , Private : true , AllPublic : true , Collaborate : util . OptionalBoolFalse } ,
count : 14 } ,
count : 14 ,
{ name : "AllPublic/PublicRepositoriesOfUserIncludingCollaborative" ,
} ,
{
name : "AllPublic/PublicRepositoriesOfUserIncludingCollaborative" ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 15 , AllPublic : true , Template : util . OptionalBoolFalse } ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 15 , AllPublic : true , Template : util . OptionalBoolFalse } ,
count : 28 } ,
count : 28 ,
{ name : "AllPublic/PublicAndPrivateRepositoriesOfUserIncludingCollaborative" ,
} ,
{
name : "AllPublic/PublicAndPrivateRepositoriesOfUserIncludingCollaborative" ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 15 , Private : true , AllPublic : true , AllLimited : true , Template : util . OptionalBoolFalse } ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 15 , Private : true , AllPublic : true , AllLimited : true , Template : util . OptionalBoolFalse } ,
count : 33 } ,
count : 33 ,
{ name : "AllPublic/PublicAndPrivateRepositoriesOfUserIncludingCollaborativeByName" ,
} ,
{
name : "AllPublic/PublicAndPrivateRepositoriesOfUserIncludingCollaborativeByName" ,
opts : & SearchRepoOptions { Keyword : "test" , ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 15 , Private : true , AllPublic : true } ,
opts : & SearchRepoOptions { Keyword : "test" , ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 15 , Private : true , AllPublic : true } ,
count : 15 } ,
count : 15 ,
{ name : "AllPublic/PublicAndPrivateRepositoriesOfUser2IncludingCollaborativeByName" ,
} ,
{
name : "AllPublic/PublicAndPrivateRepositoriesOfUser2IncludingCollaborativeByName" ,
opts : & SearchRepoOptions { Keyword : "test" , ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 18 , Private : true , AllPublic : true } ,
opts : & SearchRepoOptions { Keyword : "test" , ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 18 , Private : true , AllPublic : true } ,
count : 13 } ,
count : 13 ,
{ name : "AllPublic/PublicRepositoriesOfOrganization" ,
} ,
{
name : "AllPublic/PublicRepositoriesOfOrganization" ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 17 , AllPublic : true , Collaborate : util . OptionalBoolFalse , Template : util . OptionalBoolFalse } ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , OwnerID : 17 , AllPublic : true , Collaborate : util . OptionalBoolFalse , Template : util . OptionalBoolFalse } ,
count : 28 } ,
count : 28 ,
{ name : "AllTemplates" ,
} ,
{
name : "AllTemplates" ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , Template : util . OptionalBoolTrue } ,
opts : & SearchRepoOptions { ListOptions : ListOptions { Page : 1 , PageSize : 10 } , Template : util . OptionalBoolTrue } ,
count : 2 } ,
count : 2 ,
} ,
}
}
for _ , testCase := range testCases {
for _ , testCase := range testCases {
@ -216,7 +272,7 @@ func TestSearchRepository(t *testing.T) {
if page <= 0 {
if page <= 0 {
page = 1
page = 1
}
}
var expectedLen = testCase . opts . PageSize
expectedLen : = testCase . opts . PageSize
if testCase . opts . PageSize * page > testCase . count + testCase . opts . PageSize {
if testCase . opts . PageSize * page > testCase . count + testCase . opts . PageSize {
expectedLen = 0
expectedLen = 0
} else if testCase . opts . PageSize * page > testCase . count {
} else if testCase . opts . PageSize * page > testCase . count {
@ -274,15 +330,21 @@ func TestSearchRepositoryByTopicName(t *testing.T) {
opts * SearchRepoOptions
opts * SearchRepoOptions
count int
count int
} {
} {
{ name : "AllPublic/SearchPublicRepositoriesFromTopicAndName" ,
{
name : "AllPublic/SearchPublicRepositoriesFromTopicAndName" ,
opts : & SearchRepoOptions { OwnerID : 21 , AllPublic : true , Keyword : "graphql" } ,
opts : & SearchRepoOptions { OwnerID : 21 , AllPublic : true , Keyword : "graphql" } ,
count : 2 } ,
count : 2 ,
{ name : "AllPublic/OnlySearchPublicRepositoriesFromTopic" ,
} ,
{
name : "AllPublic/OnlySearchPublicRepositoriesFromTopic" ,
opts : & SearchRepoOptions { OwnerID : 21 , AllPublic : true , Keyword : "graphql" , TopicOnly : true } ,
opts : & SearchRepoOptions { OwnerID : 21 , AllPublic : true , Keyword : "graphql" , TopicOnly : true } ,
count : 1 } ,
count : 1 ,
{ name : "AllPublic/OnlySearchMultipleKeywordPublicRepositoriesFromTopic" ,
} ,
{
name : "AllPublic/OnlySearchMultipleKeywordPublicRepositoriesFromTopic" ,
opts : & SearchRepoOptions { OwnerID : 21 , AllPublic : true , Keyword : "graphql,golang" , TopicOnly : true } ,
opts : & SearchRepoOptions { OwnerID : 21 , AllPublic : true , Keyword : "graphql,golang" , TopicOnly : true } ,
count : 2 } ,
count : 2 ,
} ,
}
}
for _ , testCase := range testCases {
for _ , testCase := range testCases {