2017-01-25 13:37:10 +03:00
// Copyright 2017 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package models
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestStarRepo ( t * testing . T ) {
assert . NoError ( t , PrepareTestDatabase ( ) )
const userID = 2
const repoID = 1
AssertNotExistsBean ( t , & Star { UID : userID , RepoID : repoID } )
assert . NoError ( t , StarRepo ( userID , repoID , true ) )
AssertExistsAndLoadBean ( t , & Star { UID : userID , RepoID : repoID } )
assert . NoError ( t , StarRepo ( userID , repoID , true ) )
AssertExistsAndLoadBean ( t , & Star { UID : userID , RepoID : repoID } )
assert . NoError ( t , StarRepo ( userID , repoID , false ) )
AssertNotExistsBean ( t , & Star { UID : userID , RepoID : repoID } )
}
func TestIsStaring ( t * testing . T ) {
assert . NoError ( t , PrepareTestDatabase ( ) )
assert . True ( t , IsStaring ( 2 , 4 ) )
assert . False ( t , IsStaring ( 3 , 4 ) )
}
func TestRepository_GetStargazers ( t * testing . T ) {
// repo with stargazers
assert . NoError ( t , PrepareTestDatabase ( ) )
repo := AssertExistsAndLoadBean ( t , & Repository { ID : 4 } ) . ( * Repository )
2020-01-24 22:00:29 +03:00
gazers , err := repo . GetStargazers ( ListOptions { Page : 0 } )
2017-01-25 13:37:10 +03:00
assert . NoError ( t , err )
2017-08-28 12:17:45 +03:00
if assert . Len ( t , gazers , 1 ) {
assert . Equal ( t , int64 ( 2 ) , gazers [ 0 ] . ID )
}
2017-01-25 13:37:10 +03:00
}
func TestRepository_GetStargazers2 ( t * testing . T ) {
// repo with stargazers
assert . NoError ( t , PrepareTestDatabase ( ) )
repo := AssertExistsAndLoadBean ( t , & Repository { ID : 3 } ) . ( * Repository )
2020-01-24 22:00:29 +03:00
gazers , err := repo . GetStargazers ( ListOptions { Page : 0 } )
2017-01-25 13:37:10 +03:00
assert . NoError ( t , err )
assert . Len ( t , gazers , 0 )
}
func TestUser_GetStarredRepos ( t * testing . T ) {
// user who has starred repos
assert . NoError ( t , PrepareTestDatabase ( ) )
user := AssertExistsAndLoadBean ( t , & User { ID : 2 } ) . ( * User )
2017-02-07 14:54:16 +03:00
starred , err := user . GetStarredRepos ( false , 1 , 10 , "" )
2017-01-25 13:37:10 +03:00
assert . NoError ( t , err )
2017-08-28 12:17:45 +03:00
if assert . Len ( t , starred , 1 ) {
assert . Equal ( t , int64 ( 4 ) , starred [ 0 ] . ID )
}
2017-01-25 13:37:10 +03:00
2017-02-07 14:54:16 +03:00
starred , err = user . GetStarredRepos ( true , 1 , 10 , "" )
2017-01-25 13:37:10 +03:00
assert . NoError ( t , err )
2017-08-28 12:17:45 +03:00
if assert . Len ( t , starred , 2 ) {
assert . Equal ( t , int64 ( 2 ) , starred [ 0 ] . ID )
assert . Equal ( t , int64 ( 4 ) , starred [ 1 ] . ID )
}
2017-01-25 13:37:10 +03:00
}
func TestUser_GetStarredRepos2 ( t * testing . T ) {
// user who has no starred repos
assert . NoError ( t , PrepareTestDatabase ( ) )
user := AssertExistsAndLoadBean ( t , & User { ID : 1 } ) . ( * User )
2017-02-07 14:54:16 +03:00
starred , err := user . GetStarredRepos ( false , 1 , 10 , "" )
2017-01-25 13:37:10 +03:00
assert . NoError ( t , err )
assert . Len ( t , starred , 0 )
2017-02-07 14:54:16 +03:00
starred , err = user . GetStarredRepos ( true , 1 , 10 , "" )
2017-01-25 13:37:10 +03:00
assert . NoError ( t , err )
assert . Len ( t , starred , 0 )
}
2017-02-07 14:54:16 +03:00
func TestUserGetStarredRepoCount ( t * testing . T ) {
assert . NoError ( t , PrepareTestDatabase ( ) )
user := AssertExistsAndLoadBean ( t , & User { ID : 2 } ) . ( * User )
counts , err := user . GetStarredRepoCount ( false )
assert . NoError ( t , err )
assert . Equal ( t , int64 ( 1 ) , counts )
counts , err = user . GetStarredRepoCount ( true )
assert . NoError ( t , err )
assert . Equal ( t , int64 ( 2 ) , counts )
}