1// Copyright 2017 The Gogs Authors. All rights reserved. 2// Use of this source code is governed by a MIT-style 3// license that can be found in the LICENSE file. 4 5package models 6 7import ( 8 "testing" 9 10 "code.gitea.io/gitea/models/db" 11 repo_model "code.gitea.io/gitea/models/repo" 12 "code.gitea.io/gitea/models/unittest" 13 14 "github.com/stretchr/testify/assert" 15) 16 17func Test_newIssueUsers(t *testing.T) { 18 assert.NoError(t, unittest.PrepareTestDatabase()) 19 20 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}).(*repo_model.Repository) 21 newIssue := &Issue{ 22 RepoID: repo.ID, 23 PosterID: 4, 24 Index: 6, 25 Title: "newTestIssueTitle", 26 Content: "newTestIssueContent", 27 } 28 29 // artificially insert new issue 30 unittest.AssertSuccessfulInsert(t, newIssue) 31 32 assert.NoError(t, newIssueUsers(db.DefaultContext, repo, newIssue)) 33 34 // issue_user table should now have entries for new issue 35 unittest.AssertExistsAndLoadBean(t, &IssueUser{IssueID: newIssue.ID, UID: newIssue.PosterID}) 36 unittest.AssertExistsAndLoadBean(t, &IssueUser{IssueID: newIssue.ID, UID: repo.OwnerID}) 37} 38 39func TestUpdateIssueUserByRead(t *testing.T) { 40 assert.NoError(t, unittest.PrepareTestDatabase()) 41 issue := unittest.AssertExistsAndLoadBean(t, &Issue{ID: 1}).(*Issue) 42 43 assert.NoError(t, UpdateIssueUserByRead(4, issue.ID)) 44 unittest.AssertExistsAndLoadBean(t, &IssueUser{IssueID: issue.ID, UID: 4}, "is_read=1") 45 46 assert.NoError(t, UpdateIssueUserByRead(4, issue.ID)) 47 unittest.AssertExistsAndLoadBean(t, &IssueUser{IssueID: issue.ID, UID: 4}, "is_read=1") 48 49 assert.NoError(t, UpdateIssueUserByRead(unittest.NonexistentID, unittest.NonexistentID)) 50} 51 52func TestUpdateIssueUsersByMentions(t *testing.T) { 53 assert.NoError(t, unittest.PrepareTestDatabase()) 54 issue := unittest.AssertExistsAndLoadBean(t, &Issue{ID: 1}).(*Issue) 55 56 uids := []int64{2, 5} 57 assert.NoError(t, UpdateIssueUsersByMentions(db.DefaultContext, issue.ID, uids)) 58 for _, uid := range uids { 59 unittest.AssertExistsAndLoadBean(t, &IssueUser{IssueID: issue.ID, UID: uid}, "is_mentioned=1") 60 } 61} 62