summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEthan Koenig <ethantkoenig@gmail.com>2017-01-09 13:26:05 -0500
committerKim "BKC" Carlbäcker <kim.carlbacker@gmail.com>2017-01-09 21:49:51 +0100
commitb316b2e7406c5011c37db8f1d0b542bae46762ba (patch)
tree4d7cbf7ce0e60bb1080e2cbc39ecb34b1761a1b5
parent97170916a3268c359476c00865c0369c9dc095bb (diff)
downloadgitea-b316b2e7406c5011c37db8f1d0b542bae46762ba.tar.gz
gitea-b316b2e7406c5011c37db8f1d0b542bae46762ba.zip
Unit tests for models/admin
-rw-r--r--models/admin.go2
-rw-r--r--models/admin_test.go111
-rw-r--r--models/fixtures/notice.yml14
3 files changed, 126 insertions, 1 deletions
diff --git a/models/admin.go b/models/admin.go
index 9447ef67ea..94dc9b7a8c 100644
--- a/models/admin.go
+++ b/models/admin.go
@@ -103,7 +103,7 @@ func CountNotices() int64 {
return count
}
-// Notices returns number of notices in given page.
+// Notices returns notices in given page.
func Notices(page, pageSize int) ([]*Notice, error) {
notices := make([]*Notice, 0, pageSize)
return notices, x.
diff --git a/models/admin_test.go b/models/admin_test.go
new file mode 100644
index 0000000000..7fb8f1d0a0
--- /dev/null
+++ b/models/admin_test.go
@@ -0,0 +1,111 @@
+// 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 TestNotice_TrStr(t *testing.T) {
+ notice := &Notice{
+ Type: NoticeRepository,
+ Description: "test description",
+ }
+ assert.Equal(t, "admin.notices.type_1", notice.TrStr())
+}
+
+func TestCreateNotice(t *testing.T) {
+ assert.NoError(t, PrepareTestDatabase())
+
+ noticeBean := &Notice{
+ Type: NoticeRepository,
+ Description: "test description",
+ }
+ AssertNotExistsBean(t, noticeBean)
+ assert.NoError(t, CreateNotice(noticeBean.Type, noticeBean.Description))
+ AssertExistsAndLoadBean(t, noticeBean)
+}
+
+func TestCreateRepositoryNotice(t *testing.T) {
+ assert.NoError(t, PrepareTestDatabase())
+
+ noticeBean := &Notice{
+ Type: NoticeRepository,
+ Description: "test description",
+ }
+ AssertNotExistsBean(t, noticeBean)
+ assert.NoError(t, CreateRepositoryNotice(noticeBean.Description))
+ AssertExistsAndLoadBean(t, noticeBean)
+}
+
+// TODO TestRemoveAllWithNotice
+
+func TestCountNotices(t *testing.T) {
+ assert.NoError(t, PrepareTestDatabase())
+ assert.Equal(t, int64(3), CountNotices())
+}
+
+func TestNotices(t *testing.T) {
+ assert.NoError(t, PrepareTestDatabase())
+
+ notices, err := Notices(1, 2)
+ assert.NoError(t, err)
+ assert.Len(t, notices, 2)
+ assert.Equal(t, int64(3), notices[0].ID)
+ assert.Equal(t, int64(2), notices[1].ID)
+
+ notices, err = Notices(2, 2)
+ assert.NoError(t, err)
+ assert.Len(t, notices, 1)
+ assert.Equal(t, int64(1), notices[0].ID)
+}
+
+func TestDeleteNotice(t *testing.T) {
+ assert.NoError(t, PrepareTestDatabase())
+
+ AssertExistsAndLoadBean(t, &Notice{ID: 3})
+ assert.NoError(t, DeleteNotice(3))
+ AssertNotExistsBean(t, &Notice{ID: 3})
+}
+
+func TestDeleteNotices(t *testing.T) {
+ // delete a non-empty range
+ assert.NoError(t, PrepareTestDatabase())
+
+ AssertExistsAndLoadBean(t, &Notice{ID: 1})
+ AssertExistsAndLoadBean(t, &Notice{ID: 2})
+ AssertExistsAndLoadBean(t, &Notice{ID: 3})
+ assert.NoError(t, DeleteNotices(1, 2))
+ AssertNotExistsBean(t, &Notice{ID: 1})
+ AssertNotExistsBean(t, &Notice{ID: 2})
+ AssertExistsAndLoadBean(t, &Notice{ID: 3})
+}
+
+func TestDeleteNotices2(t *testing.T) {
+ // delete an empty range
+ assert.NoError(t, PrepareTestDatabase())
+
+ AssertExistsAndLoadBean(t, &Notice{ID: 1})
+ AssertExistsAndLoadBean(t, &Notice{ID: 2})
+ AssertExistsAndLoadBean(t, &Notice{ID: 3})
+ assert.NoError(t, DeleteNotices(3, 2))
+ AssertExistsAndLoadBean(t, &Notice{ID: 1})
+ AssertExistsAndLoadBean(t, &Notice{ID: 2})
+ AssertExistsAndLoadBean(t, &Notice{ID: 3})
+}
+
+func TestDeleteNoticesByIDs(t *testing.T) {
+ assert.NoError(t, PrepareTestDatabase())
+
+ AssertExistsAndLoadBean(t, &Notice{ID: 1})
+ AssertExistsAndLoadBean(t, &Notice{ID: 2})
+ AssertExistsAndLoadBean(t, &Notice{ID: 3})
+ assert.NoError(t, DeleteNoticesByIDs([]int64{1, 3}))
+ AssertNotExistsBean(t, &Notice{ID: 1})
+ AssertExistsAndLoadBean(t, &Notice{ID: 2})
+ AssertNotExistsBean(t, &Notice{ID: 3})
+}
diff --git a/models/fixtures/notice.yml b/models/fixtures/notice.yml
new file mode 100644
index 0000000000..af08f07bfa
--- /dev/null
+++ b/models/fixtures/notice.yml
@@ -0,0 +1,14 @@
+-
+ id: 1
+ type: 1 # NoticeRepository
+ description: description1
+
+-
+ id: 2
+ type: 1 # NoticeRepository
+ description: description2
+
+-
+ id: 3
+ type: 1 # NoticeRepository
+ description: description3