2020-04-05 01:20:50 -05:00
// Copyright 2020 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.
2017-03-11 03:46:53 -05:00
package models
import (
"testing"
2021-09-19 19:49:59 +08:00
"code.gitea.io/gitea/models/db"
2017-03-11 03:46:53 -05:00
"github.com/stretchr/testify/assert"
)
func TestIsFollowing ( t * testing . T ) {
2021-09-19 19:49:59 +08:00
assert . NoError ( t , db . PrepareTestDatabase ( ) )
2017-03-11 03:46:53 -05:00
assert . True ( t , IsFollowing ( 4 , 2 ) )
assert . False ( t , IsFollowing ( 2 , 4 ) )
2021-09-19 19:49:59 +08:00
assert . False ( t , IsFollowing ( 5 , db . NonexistentID ) )
assert . False ( t , IsFollowing ( db . NonexistentID , 5 ) )
assert . False ( t , IsFollowing ( db . NonexistentID , db . NonexistentID ) )
2017-03-11 03:46:53 -05:00
}
func TestFollowUser ( t * testing . T ) {
2021-09-19 19:49:59 +08:00
assert . NoError ( t , db . PrepareTestDatabase ( ) )
2017-03-11 03:46:53 -05:00
testSuccess := func ( followerID , followedID int64 ) {
assert . NoError ( t , FollowUser ( followerID , followedID ) )
2021-09-19 19:49:59 +08:00
db . AssertExistsAndLoadBean ( t , & Follow { UserID : followerID , FollowID : followedID } )
2017-03-11 03:46:53 -05:00
}
testSuccess ( 4 , 2 )
testSuccess ( 5 , 2 )
assert . NoError ( t , FollowUser ( 2 , 2 ) )
CheckConsistencyFor ( t , & User { } )
}
func TestUnfollowUser ( t * testing . T ) {
2021-09-19 19:49:59 +08:00
assert . NoError ( t , db . PrepareTestDatabase ( ) )
2017-03-11 03:46:53 -05:00
testSuccess := func ( followerID , followedID int64 ) {
assert . NoError ( t , UnfollowUser ( followerID , followedID ) )
2021-09-19 19:49:59 +08:00
db . AssertNotExistsBean ( t , & Follow { UserID : followerID , FollowID : followedID } )
2017-03-11 03:46:53 -05:00
}
testSuccess ( 4 , 2 )
testSuccess ( 5 , 2 )
testSuccess ( 2 , 2 )
CheckConsistencyFor ( t , & User { } )
}