code.gitea.io/gitea@v1.22.3/models/repo/star_test.go (about) 1 // Copyright 2017 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package repo_test 5 6 import ( 7 "testing" 8 9 "code.gitea.io/gitea/models/db" 10 repo_model "code.gitea.io/gitea/models/repo" 11 "code.gitea.io/gitea/models/unittest" 12 user_model "code.gitea.io/gitea/models/user" 13 14 "github.com/stretchr/testify/assert" 15 ) 16 17 func TestStarRepo(t *testing.T) { 18 assert.NoError(t, unittest.PrepareTestDatabase()) 19 20 user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}) 21 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}) 22 23 unittest.AssertNotExistsBean(t, &repo_model.Star{UID: user.ID, RepoID: repo.ID}) 24 assert.NoError(t, repo_model.StarRepo(db.DefaultContext, user, repo, true)) 25 unittest.AssertExistsAndLoadBean(t, &repo_model.Star{UID: user.ID, RepoID: repo.ID}) 26 assert.NoError(t, repo_model.StarRepo(db.DefaultContext, user, repo, true)) 27 unittest.AssertExistsAndLoadBean(t, &repo_model.Star{UID: user.ID, RepoID: repo.ID}) 28 assert.NoError(t, repo_model.StarRepo(db.DefaultContext, user, repo, false)) 29 unittest.AssertNotExistsBean(t, &repo_model.Star{UID: user.ID, RepoID: repo.ID}) 30 } 31 32 func TestIsStaring(t *testing.T) { 33 assert.NoError(t, unittest.PrepareTestDatabase()) 34 assert.True(t, repo_model.IsStaring(db.DefaultContext, 2, 4)) 35 assert.False(t, repo_model.IsStaring(db.DefaultContext, 3, 4)) 36 } 37 38 func TestRepository_GetStargazers(t *testing.T) { 39 // repo with stargazers 40 assert.NoError(t, unittest.PrepareTestDatabase()) 41 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 4}) 42 gazers, err := repo_model.GetStargazers(db.DefaultContext, repo, db.ListOptions{Page: 0}) 43 assert.NoError(t, err) 44 if assert.Len(t, gazers, 1) { 45 assert.Equal(t, int64(2), gazers[0].ID) 46 } 47 } 48 49 func TestRepository_GetStargazers2(t *testing.T) { 50 // repo with stargazers 51 assert.NoError(t, unittest.PrepareTestDatabase()) 52 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 3}) 53 gazers, err := repo_model.GetStargazers(db.DefaultContext, repo, db.ListOptions{Page: 0}) 54 assert.NoError(t, err) 55 assert.Len(t, gazers, 0) 56 } 57 58 func TestClearRepoStars(t *testing.T) { 59 assert.NoError(t, unittest.PrepareTestDatabase()) 60 61 user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}) 62 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}) 63 64 unittest.AssertNotExistsBean(t, &repo_model.Star{UID: user.ID, RepoID: repo.ID}) 65 assert.NoError(t, repo_model.StarRepo(db.DefaultContext, user, repo, true)) 66 unittest.AssertExistsAndLoadBean(t, &repo_model.Star{UID: user.ID, RepoID: repo.ID}) 67 assert.NoError(t, repo_model.StarRepo(db.DefaultContext, user, repo, false)) 68 unittest.AssertNotExistsBean(t, &repo_model.Star{UID: user.ID, RepoID: repo.ID}) 69 assert.NoError(t, repo_model.ClearRepoStars(db.DefaultContext, repo.ID)) 70 unittest.AssertNotExistsBean(t, &repo_model.Star{UID: user.ID, RepoID: repo.ID}) 71 72 gazers, err := repo_model.GetStargazers(db.DefaultContext, repo, db.ListOptions{Page: 0}) 73 assert.NoError(t, err) 74 assert.Len(t, gazers, 0) 75 }