@ -5,6 +5,7 @@ import (
"strings"
"strings"
"testing"
"testing"
"code.gitea.io/git"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/setting"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/assert"
@ -202,55 +203,116 @@ func TestUpdateIssuesCommit(t *testing.T) {
CheckConsistencyFor ( t , & Action { } )
CheckConsistencyFor ( t , & Action { } )
}
}
func TestCommi tRepoAction( t * testing . T ) {
func testCorrec tRepoAction( t * testing . T , opts CommitRepoActionOptions , actionBean * Action ) {
assert . NoError ( t , PrepareTestDatabase ( ) )
AssertNotExistsBean ( t , actionBean )
assert . NoError ( t , CommitRepoAction ( opts ) )
user := AssertExistsAndLoadBean ( t , & User { ID : 2 } ) . ( * User )
AssertExistsAndLoadBean ( t , actionBean )
repo := AssertExistsAndLoadBean ( t , & Repository { ID : 2 , OwnerID : user . ID } ) . ( * Repository )
CheckConsistencyFor ( t , & Action { } )
repo . Owner = user
}
pushCommits := NewPushCommits ( )
func TestCommitRepoAction ( t * testing . T ) {
pushCommits . Commits = [ ] * PushCommit {
samples := [ ] struct {
userID int64
repositoryID int64
commitRepoActionOptions CommitRepoActionOptions
action Action
} {
{
{
Sha1 : "abcdef1" ,
userID : 2 ,
CommitterEmail : "user2@example.com" ,
repositoryID : 2 ,
CommitterName : "User Two" ,
commitRepoActionOptions : CommitRepoActionOptions {
AuthorEmail : "user4@example.com" ,
RefFullName : "refName" ,
AuthorName : "User Four" ,
OldCommitID : "oldCommitID" ,
Message : "message1" ,
NewCommitID : "newCommitID" ,
Commits : & PushCommits {
avatars : make ( map [ string ] string ) ,
Commits : [ ] * PushCommit {
{
Sha1 : "abcdef1" ,
CommitterEmail : "user2@example.com" ,
CommitterName : "User Two" ,
AuthorEmail : "user4@example.com" ,
AuthorName : "User Four" ,
Message : "message1" ,
} ,
{
Sha1 : "abcdef2" ,
CommitterEmail : "user2@example.com" ,
CommitterName : "User Two" ,
AuthorEmail : "user2@example.com" ,
AuthorName : "User Two" ,
Message : "message2" ,
} ,
} ,
Len : 2 ,
} ,
} ,
action : Action {
OpType : ActionCommitRepo ,
RefName : "refName" ,
} ,
} ,
} ,
{
{
Sha1 : "abcdef2" ,
userID : 2 ,
CommitterEmail : "user2@example.com" ,
repositoryID : 1 ,
CommitterName : "User Two" ,
commitRepoActionOptions : CommitRepoActionOptions {
AuthorEmail : "user2@example.com" ,
RefFullName : git . TagPrefix + "v1.1" ,
AuthorName : "User Two" ,
OldCommitID : git . EmptySHA ,
Message : "message2" ,
NewCommitID : "newCommitID" ,
Commits : & PushCommits { } ,
} ,
action : Action {
OpType : ActionPushTag ,
RefName : "v1.1" ,
} ,
} ,
{
userID : 2 ,
repositoryID : 1 ,
commitRepoActionOptions : CommitRepoActionOptions {
RefFullName : git . TagPrefix + "v1.1" ,
OldCommitID : "oldCommitID" ,
NewCommitID : git . EmptySHA ,
Commits : & PushCommits { } ,
} ,
action : Action {
OpType : ActionDeleteTag ,
RefName : "v1.1" ,
} ,
} ,
{
userID : 2 ,
repositoryID : 1 ,
commitRepoActionOptions : CommitRepoActionOptions {
RefFullName : git . BranchPrefix + "feature/1" ,
OldCommitID : "oldCommitID" ,
NewCommitID : git . EmptySHA ,
Commits : & PushCommits { } ,
} ,
action : Action {
OpType : ActionDeleteBranch ,
RefName : "feature/1" ,
} ,
} ,
} ,
}
}
pushCommits . Len = len ( pushCommits . Commits )
actionBean := & Action {
for _ , s := range samples {
OpType : ActionCommitRepo ,
prepareTestEnv ( t )
ActUserID : user . ID ,
ActUser : user ,
user := AssertExistsAndLoadBean ( t , & User { ID : s . userID } ) . ( * User )
RepoID : repo . ID ,
repo := AssertExistsAndLoadBean ( t , & Repository { ID : s . repositoryID , OwnerID : user . ID } ) . ( * Repository )
Repo : repo ,
repo . Owner = user
RefName : "refName" ,
IsPrivate : repo . IsPrivate ,
s . commitRepoActionOptions . PusherName = user . Name
s . commitRepoActionOptions . RepoOwnerID = user . ID
s . commitRepoActionOptions . RepoName = repo . Name
s . action . ActUserID = user . ID
s . action . RepoID = repo . ID
s . action . IsPrivate = repo . IsPrivate
testCorrectRepoAction ( t , s . commitRepoActionOptions , & s . action )
}
}
AssertNotExistsBean ( t , actionBean )
assert . NoError ( t , CommitRepoAction ( CommitRepoActionOptions {
PusherName : user . Name ,
RepoOwnerID : user . ID ,
RepoName : repo . Name ,
RefFullName : "refName" ,
OldCommitID : "oldCommitID" ,
NewCommitID : "newCommitID" ,
Commits : pushCommits ,
} ) )
AssertExistsAndLoadBean ( t , actionBean )
CheckConsistencyFor ( t , & Action { } )
}
}
func TestTransferRepoAction ( t * testing . T ) {
func TestTransferRepoAction ( t * testing . T ) {