2022-10-17 02:29:26 +03:00
// Copyright 2017 The Gitea Authors. All rights reserved.
2022-11-27 21:20:29 +03:00
// SPDX-License-Identifier: MIT
2022-10-17 02:29:26 +03:00
package system_test
import (
"testing"
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/models/system"
"code.gitea.io/gitea/models/unittest"
"github.com/stretchr/testify/assert"
)
func TestNotice_TrStr ( t * testing . T ) {
notice := & system . Notice {
Type : system . NoticeRepository ,
Description : "test description" ,
}
assert . Equal ( t , "admin.notices.type_1" , notice . TrStr ( ) )
}
func TestCreateNotice ( t * testing . T ) {
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
noticeBean := & system . Notice {
Type : system . NoticeRepository ,
Description : "test description" ,
}
unittest . AssertNotExistsBean ( t , noticeBean )
assert . NoError ( t , system . CreateNotice ( db . DefaultContext , noticeBean . Type , noticeBean . Description ) )
unittest . AssertExistsAndLoadBean ( t , noticeBean )
}
func TestCreateRepositoryNotice ( t * testing . T ) {
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
noticeBean := & system . Notice {
Type : system . NoticeRepository ,
Description : "test description" ,
}
unittest . AssertNotExistsBean ( t , noticeBean )
assert . NoError ( t , system . CreateRepositoryNotice ( noticeBean . Description ) )
unittest . AssertExistsAndLoadBean ( t , noticeBean )
}
// TODO TestRemoveAllWithNotice
func TestCountNotices ( t * testing . T ) {
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2023-10-03 13:30:41 +03:00
assert . Equal ( t , int64 ( 3 ) , system . CountNotices ( db . DefaultContext ) )
2022-10-17 02:29:26 +03:00
}
func TestNotices ( t * testing . T ) {
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2023-09-25 16:17:37 +03:00
notices , err := system . Notices ( db . DefaultContext , 1 , 2 )
2022-10-17 02:29:26 +03:00
assert . NoError ( t , err )
if assert . Len ( t , notices , 2 ) {
assert . Equal ( t , int64 ( 3 ) , notices [ 0 ] . ID )
assert . Equal ( t , int64 ( 2 ) , notices [ 1 ] . ID )
}
2023-09-25 16:17:37 +03:00
notices , err = system . Notices ( db . DefaultContext , 2 , 2 )
2022-10-17 02:29:26 +03:00
assert . NoError ( t , err )
if assert . Len ( t , notices , 1 ) {
assert . Equal ( t , int64 ( 1 ) , notices [ 0 ] . ID )
}
}
func TestDeleteNotices ( t * testing . T ) {
// delete a non-empty range
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
unittest . AssertExistsAndLoadBean ( t , & system . Notice { ID : 1 } )
unittest . AssertExistsAndLoadBean ( t , & system . Notice { ID : 2 } )
unittest . AssertExistsAndLoadBean ( t , & system . Notice { ID : 3 } )
2023-09-25 16:17:37 +03:00
assert . NoError ( t , system . DeleteNotices ( db . DefaultContext , 1 , 2 ) )
2022-10-17 02:29:26 +03:00
unittest . AssertNotExistsBean ( t , & system . Notice { ID : 1 } )
unittest . AssertNotExistsBean ( t , & system . Notice { ID : 2 } )
unittest . AssertExistsAndLoadBean ( t , & system . Notice { ID : 3 } )
}
func TestDeleteNotices2 ( t * testing . T ) {
// delete an empty range
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
unittest . AssertExistsAndLoadBean ( t , & system . Notice { ID : 1 } )
unittest . AssertExistsAndLoadBean ( t , & system . Notice { ID : 2 } )
unittest . AssertExistsAndLoadBean ( t , & system . Notice { ID : 3 } )
2023-09-25 16:17:37 +03:00
assert . NoError ( t , system . DeleteNotices ( db . DefaultContext , 3 , 2 ) )
2022-10-17 02:29:26 +03:00
unittest . AssertExistsAndLoadBean ( t , & system . Notice { ID : 1 } )
unittest . AssertExistsAndLoadBean ( t , & system . Notice { ID : 2 } )
unittest . AssertExistsAndLoadBean ( t , & system . Notice { ID : 3 } )
}
func TestDeleteNoticesByIDs ( t * testing . T ) {
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
unittest . AssertExistsAndLoadBean ( t , & system . Notice { ID : 1 } )
unittest . AssertExistsAndLoadBean ( t , & system . Notice { ID : 2 } )
unittest . AssertExistsAndLoadBean ( t , & system . Notice { ID : 3 } )
2023-12-25 23:25:29 +03:00
err := db . DeleteByIDs [ system . Notice ] ( db . DefaultContext , 1 , 3 )
assert . NoError ( t , err )
2022-10-17 02:29:26 +03:00
unittest . AssertNotExistsBean ( t , & system . Notice { ID : 1 } )
unittest . AssertExistsAndLoadBean ( t , & system . Notice { ID : 2 } )
unittest . AssertNotExistsBean ( t , & system . Notice { ID : 3 } )
}