2017-04-20 05:31:31 +03:00
// Copyright 2017 The Gitea Authors. All rights reserved.
2022-11-27 21:20:29 +03:00
// SPDX-License-Identifier: MIT
2017-04-20 05:31:31 +03:00
2022-06-06 11:01:49 +03:00
package repo_test
2017-04-20 05:31:31 +03:00
import (
"testing"
2021-09-19 14:49:59 +03:00
"code.gitea.io/gitea/models/db"
2022-06-06 11:01:49 +03:00
repo_model "code.gitea.io/gitea/models/repo"
2021-11-12 17:36:47 +03:00
"code.gitea.io/gitea/models/unittest"
2021-11-17 15:34:35 +03:00
2017-04-20 05:31:31 +03:00
"github.com/stretchr/testify/assert"
)
func TestIncreaseDownloadCount ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2017-04-20 05:31:31 +03:00
2022-06-06 11:01:49 +03:00
attachment , err := repo_model . GetAttachmentByUUID ( db . DefaultContext , "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11" )
2017-04-20 05:31:31 +03:00
assert . NoError ( t , err )
assert . Equal ( t , int64 ( 0 ) , attachment . DownloadCount )
// increase download count
err = attachment . IncreaseDownloadCount ( )
assert . NoError ( t , err )
2022-06-06 11:01:49 +03:00
attachment , err = repo_model . GetAttachmentByUUID ( db . DefaultContext , "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11" )
2017-04-20 05:31:31 +03:00
assert . NoError ( t , err )
assert . Equal ( t , int64 ( 1 ) , attachment . DownloadCount )
}
func TestGetByCommentOrIssueID ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2017-04-20 05:31:31 +03:00
// count of attachments from issue ID
2022-06-06 11:01:49 +03:00
attachments , err := repo_model . GetAttachmentsByIssueID ( db . DefaultContext , 1 )
2017-04-20 05:31:31 +03:00
assert . NoError ( t , err )
2021-06-07 08:27:09 +03:00
assert . Len ( t , attachments , 1 )
2017-04-20 05:31:31 +03:00
2022-06-06 11:01:49 +03:00
attachments , err = repo_model . GetAttachmentsByCommentID ( db . DefaultContext , 1 )
2017-04-20 05:31:31 +03:00
assert . NoError ( t , err )
2021-06-07 08:27:09 +03:00
assert . Len ( t , attachments , 2 )
2017-04-20 05:31:31 +03:00
}
func TestDeleteAttachments ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2017-04-20 05:31:31 +03:00
2022-06-06 11:01:49 +03:00
count , err := repo_model . DeleteAttachmentsByIssue ( 4 , false )
2017-04-20 05:31:31 +03:00
assert . NoError ( t , err )
2020-01-05 02:20:08 +03:00
assert . Equal ( t , 2 , count )
2017-04-20 05:31:31 +03:00
2022-06-06 11:01:49 +03:00
count , err = repo_model . DeleteAttachmentsByComment ( 2 , false )
2017-04-20 05:31:31 +03:00
assert . NoError ( t , err )
assert . Equal ( t , 2 , count )
2022-06-06 11:01:49 +03:00
err = repo_model . DeleteAttachment ( & repo_model . Attachment { ID : 8 } , false )
2017-04-20 05:31:31 +03:00
assert . NoError ( t , err )
2022-06-06 11:01:49 +03:00
attachment , err := repo_model . GetAttachmentByUUID ( db . DefaultContext , "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a18" )
2017-04-20 05:31:31 +03:00
assert . Error ( t , err )
2022-06-06 11:01:49 +03:00
assert . True ( t , repo_model . IsErrAttachmentNotExist ( err ) )
2017-04-20 05:31:31 +03:00
assert . Nil ( t , attachment )
}
2018-03-06 04:22:16 +03:00
func TestGetAttachmentByID ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2018-03-06 04:22:16 +03:00
2022-06-06 11:01:49 +03:00
attach , err := repo_model . GetAttachmentByID ( db . DefaultContext , 1 )
2018-03-06 04:22:16 +03:00
assert . NoError ( t , err )
assert . Equal ( t , "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11" , attach . UUID )
}
func TestAttachment_DownloadURL ( t * testing . T ) {
2022-06-06 11:01:49 +03:00
attach := & repo_model . Attachment {
2018-03-06 04:22:16 +03:00
UUID : "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11" ,
ID : 1 ,
}
assert . Equal ( t , "https://try.gitea.io/attachments/a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11" , attach . DownloadURL ( ) )
}
func TestUpdateAttachment ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2018-03-06 04:22:16 +03:00
2022-06-06 11:01:49 +03:00
attach , err := repo_model . GetAttachmentByID ( db . DefaultContext , 1 )
2018-03-06 04:22:16 +03:00
assert . NoError ( t , err )
assert . Equal ( t , "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11" , attach . UUID )
attach . Name = "new_name"
2022-06-06 11:01:49 +03:00
assert . NoError ( t , repo_model . UpdateAttachment ( db . DefaultContext , attach ) )
2018-03-06 04:22:16 +03:00
2022-06-06 11:01:49 +03:00
unittest . AssertExistsAndLoadBean ( t , & repo_model . Attachment { Name : "new_name" } )
2018-03-06 04:22:16 +03:00
}
2019-12-11 03:01:52 +03:00
func TestGetAttachmentsByUUIDs ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2019-12-11 03:01:52 +03:00
2022-06-06 11:01:49 +03:00
attachList , err := repo_model . GetAttachmentsByUUIDs ( db . DefaultContext , [ ] string { "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11" , "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a17" , "not-existing-uuid" } )
2019-12-11 03:01:52 +03:00
assert . NoError ( t , err )
2021-06-07 08:27:09 +03:00
assert . Len ( t , attachList , 2 )
2019-12-11 03:01:52 +03:00
assert . Equal ( t , "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11" , attachList [ 0 ] . UUID )
assert . Equal ( t , "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a17" , attachList [ 1 ] . UUID )
assert . Equal ( t , int64 ( 1 ) , attachList [ 0 ] . IssueID )
assert . Equal ( t , int64 ( 5 ) , attachList [ 1 ] . IssueID )
}