From b316b2e7406c5011c37db8f1d0b542bae46762ba Mon Sep 17 00:00:00 2001 From: Ethan Koenig Date: Mon, 9 Jan 2017 13:26:05 -0500 Subject: [PATCH] Unit tests for models/admin --- models/admin.go | 2 +- models/admin_test.go | 111 +++++++++++++++++++++++++++++++++++++ models/fixtures/notice.yml | 14 +++++ 3 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 models/admin_test.go create mode 100644 models/fixtures/notice.yml diff --git a/models/admin.go b/models/admin.go index 9447ef67e..94dc9b7a8 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 000000000..7fb8f1d0a --- /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 000000000..af08f07bf --- /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