code.gitea.io/gitea@v1.21.7/models/system/notice_test.go (about)

     1  // Copyright 2017 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package system_test
     5  
     6  import (
     7  	"testing"
     8  
     9  	"code.gitea.io/gitea/models/db"
    10  	"code.gitea.io/gitea/models/system"
    11  	"code.gitea.io/gitea/models/unittest"
    12  
    13  	"github.com/stretchr/testify/assert"
    14  )
    15  
    16  func TestNotice_TrStr(t *testing.T) {
    17  	notice := &system.Notice{
    18  		Type:        system.NoticeRepository,
    19  		Description: "test description",
    20  	}
    21  	assert.Equal(t, "admin.notices.type_1", notice.TrStr())
    22  }
    23  
    24  func TestCreateNotice(t *testing.T) {
    25  	assert.NoError(t, unittest.PrepareTestDatabase())
    26  
    27  	noticeBean := &system.Notice{
    28  		Type:        system.NoticeRepository,
    29  		Description: "test description",
    30  	}
    31  	unittest.AssertNotExistsBean(t, noticeBean)
    32  	assert.NoError(t, system.CreateNotice(db.DefaultContext, noticeBean.Type, noticeBean.Description))
    33  	unittest.AssertExistsAndLoadBean(t, noticeBean)
    34  }
    35  
    36  func TestCreateRepositoryNotice(t *testing.T) {
    37  	assert.NoError(t, unittest.PrepareTestDatabase())
    38  
    39  	noticeBean := &system.Notice{
    40  		Type:        system.NoticeRepository,
    41  		Description: "test description",
    42  	}
    43  	unittest.AssertNotExistsBean(t, noticeBean)
    44  	assert.NoError(t, system.CreateRepositoryNotice(noticeBean.Description))
    45  	unittest.AssertExistsAndLoadBean(t, noticeBean)
    46  }
    47  
    48  // TODO TestRemoveAllWithNotice
    49  
    50  func TestCountNotices(t *testing.T) {
    51  	assert.NoError(t, unittest.PrepareTestDatabase())
    52  	assert.Equal(t, int64(3), system.CountNotices())
    53  }
    54  
    55  func TestNotices(t *testing.T) {
    56  	assert.NoError(t, unittest.PrepareTestDatabase())
    57  
    58  	notices, err := system.Notices(db.DefaultContext, 1, 2)
    59  	assert.NoError(t, err)
    60  	if assert.Len(t, notices, 2) {
    61  		assert.Equal(t, int64(3), notices[0].ID)
    62  		assert.Equal(t, int64(2), notices[1].ID)
    63  	}
    64  
    65  	notices, err = system.Notices(db.DefaultContext, 2, 2)
    66  	assert.NoError(t, err)
    67  	if assert.Len(t, notices, 1) {
    68  		assert.Equal(t, int64(1), notices[0].ID)
    69  	}
    70  }
    71  
    72  func TestDeleteNotice(t *testing.T) {
    73  	assert.NoError(t, unittest.PrepareTestDatabase())
    74  
    75  	unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 3})
    76  	assert.NoError(t, system.DeleteNotice(db.DefaultContext, 3))
    77  	unittest.AssertNotExistsBean(t, &system.Notice{ID: 3})
    78  }
    79  
    80  func TestDeleteNotices(t *testing.T) {
    81  	// delete a non-empty range
    82  	assert.NoError(t, unittest.PrepareTestDatabase())
    83  
    84  	unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 1})
    85  	unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 2})
    86  	unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 3})
    87  	assert.NoError(t, system.DeleteNotices(db.DefaultContext, 1, 2))
    88  	unittest.AssertNotExistsBean(t, &system.Notice{ID: 1})
    89  	unittest.AssertNotExistsBean(t, &system.Notice{ID: 2})
    90  	unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 3})
    91  }
    92  
    93  func TestDeleteNotices2(t *testing.T) {
    94  	// delete an empty range
    95  	assert.NoError(t, unittest.PrepareTestDatabase())
    96  
    97  	unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 1})
    98  	unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 2})
    99  	unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 3})
   100  	assert.NoError(t, system.DeleteNotices(db.DefaultContext, 3, 2))
   101  	unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 1})
   102  	unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 2})
   103  	unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 3})
   104  }
   105  
   106  func TestDeleteNoticesByIDs(t *testing.T) {
   107  	assert.NoError(t, unittest.PrepareTestDatabase())
   108  
   109  	unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 1})
   110  	unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 2})
   111  	unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 3})
   112  	assert.NoError(t, system.DeleteNoticesByIDs(db.DefaultContext, []int64{1, 3}))
   113  	unittest.AssertNotExistsBean(t, &system.Notice{ID: 1})
   114  	unittest.AssertExistsAndLoadBean(t, &system.Notice{ID: 2})
   115  	unittest.AssertNotExistsBean(t, &system.Notice{ID: 3})
   116  }