Unit tests and remove unused functions in models/notification (#796)

* Unit tests and remove unused functions in models/notification

* Read -> Unread
This commit is contained in:
Ethan Koenig 2017-01-30 09:21:49 -05:00 committed by Lunny Xiao
parent 77ab60df83
commit 2eb15f4a61
5 changed files with 108 additions and 11 deletions

View file

@ -0,0 +1,21 @@
-
id: 1
user_id: 1
repo_id: 1
status: 1 # unread
source: 1 # issue
updated_by: 2
issue_id: 1
created_unix: 946684800
updated_unix: 946684800
-
id: 2
user_id: 2
repo_id: 1
status: 2 # read
source: 1 # issue
updated_by: 1
issue_id: 2
created_unix: 946684800
updated_unix: 946684800

View file

@ -0,0 +1,9 @@
-
id: 1
user_id: 1
repo_id: 1
-
id: 2
user_id: 4
repo_id: 1

View file

@ -227,16 +227,6 @@ func (n *Notification) GetIssue() (*Issue, error) {
return n.Issue, err return n.Issue, err
} }
// GetNotificationReadCount returns the notification read count for user
func GetNotificationReadCount(user *User) (int64, error) {
return GetNotificationCount(user, NotificationStatusRead)
}
// GetNotificationUnreadCount returns the notification unread count for user
func GetNotificationUnreadCount(user *User) (int64, error) {
return GetNotificationCount(user, NotificationStatusUnread)
}
// GetNotificationCount returns the notification count for user // GetNotificationCount returns the notification count for user
func GetNotificationCount(user *User, status NotificationStatus) (int64, error) { func GetNotificationCount(user *User, status NotificationStatus) (int64, error) {
return getNotificationCount(x, user, status) return getNotificationCount(x, user, status)

View file

@ -0,0 +1,77 @@
// 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 TestCreateOrUpdateIssueNotifications(t *testing.T) {
assert.NoError(t, PrepareTestDatabase())
issue := AssertExistsAndLoadBean(t, &Issue{ID: 1}).(*Issue)
assert.NoError(t, CreateOrUpdateIssueNotifications(issue, 2))
notf := AssertExistsAndLoadBean(t, &Notification{UserID: 1, IssueID: issue.ID}).(*Notification)
assert.Equal(t, NotificationStatusUnread, notf.Status)
notf = AssertExistsAndLoadBean(t, &Notification{UserID: 4, IssueID: issue.ID}).(*Notification)
assert.Equal(t, NotificationStatusUnread, notf.Status)
}
func TestNotificationsForUser(t *testing.T) {
assert.NoError(t, PrepareTestDatabase())
user := AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
statuses := []NotificationStatus{NotificationStatusRead, NotificationStatusUnread}
notfs, err := NotificationsForUser(user, statuses, 1, 10)
assert.NoError(t, err)
assert.Len(t, notfs, 1)
assert.EqualValues(t, 2, notfs[0].ID)
assert.EqualValues(t, user.ID, notfs[0].UserID)
}
func TestNotification_GetRepo(t *testing.T) {
assert.NoError(t, PrepareTestDatabase())
notf := AssertExistsAndLoadBean(t, &Notification{RepoID: 1}).(*Notification)
repo, err := notf.GetRepo()
assert.NoError(t, err)
assert.Equal(t, repo, notf.Repository)
assert.EqualValues(t, notf.RepoID, repo.ID)
}
func TestNotification_GetIssue(t *testing.T) {
assert.NoError(t, PrepareTestDatabase())
notf := AssertExistsAndLoadBean(t, &Notification{RepoID: 1}).(*Notification)
issue, err := notf.GetIssue()
assert.NoError(t, err)
assert.Equal(t, issue, notf.Issue)
assert.EqualValues(t, notf.IssueID, issue.ID)
}
func TestGetNotificationCount(t *testing.T) {
assert.NoError(t, PrepareTestDatabase())
user := AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
cnt, err := GetNotificationCount(user, NotificationStatusUnread)
assert.NoError(t, err)
assert.EqualValues(t, 0, cnt)
cnt, err = GetNotificationCount(user, NotificationStatusRead)
assert.NoError(t, err)
assert.EqualValues(t, 1, cnt)
}
func TestSetNotificationStatus(t *testing.T) {
assert.NoError(t, PrepareTestDatabase())
user := AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
notf := AssertExistsAndLoadBean(t,
&Notification{UserID: user.ID, Status: NotificationStatusRead}).(*Notification)
assert.NoError(t, SetNotificationStatus(notf.ID, user, NotificationStatusPinned))
AssertExistsAndLoadBean(t,
&Notification{ID: notf.ID, Status: NotificationStatusPinned})
assert.Error(t, SetNotificationStatus(1, user, NotificationStatusRead))
assert.Error(t, SetNotificationStatus(NonexistentID, user, NotificationStatusRead))
}

View file

@ -28,7 +28,7 @@ func GetNotificationCount(c *context.Context) {
return return
} }
count, err := models.GetNotificationUnreadCount(c.User) count, err := models.GetNotificationCount(c.User, models.NotificationStatusUnread)
if err != nil { if err != nil {
c.Handle(500, "GetNotificationCount", err) c.Handle(500, "GetNotificationCount", err)
return return