@ -33,6 +33,19 @@ func TestRepository_GetCollaborators(t *testing.T) {
test ( 2 )
test ( 3 )
test ( 4 )
// Test db.ListOptions
repo := unittest . AssertExistsAndLoadBean ( t , & repo_model . Repository { ID : 22 } )
collaborators1 , err := repo_model . GetCollaborators ( db . DefaultContext , repo . ID , db . ListOptions { PageSize : 1 , Page : 1 } )
assert . NoError ( t , err )
assert . Len ( t , collaborators1 , 1 )
collaborators2 , err := repo_model . GetCollaborators ( db . DefaultContext , repo . ID , db . ListOptions { PageSize : 1 , Page : 2 } )
assert . NoError ( t , err )
assert . Len ( t , collaborators2 , 1 )
assert . NotEqualValues ( t , collaborators1 [ 0 ] . ID , collaborators2 [ 0 ] . ID )
}
func TestRepository_IsCollaborator ( t * testing . T ) {
@ -66,5 +79,80 @@ func TestRepository_ChangeCollaborationAccessMode(t *testing.T) {
assert . NoError ( t , repo_model . ChangeCollaborationAccessMode ( db . DefaultContext , repo , unittest . NonexistentID , perm . AccessModeAdmin ) )
// Disvard invalid input.
assert . NoError ( t , repo_model . ChangeCollaborationAccessMode ( db . DefaultContext , repo , 4 , perm . AccessMode ( unittest . NonexistentID ) ) )
unittest . CheckConsistencyFor ( t , & repo_model . Repository { ID : repo . ID } )
}
func TestRepository_CountCollaborators ( t * testing . T ) {
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
repo1 := unittest . AssertExistsAndLoadBean ( t , & repo_model . Repository { ID : 4 } )
count , err := repo_model . CountCollaborators ( repo1 . ID )
assert . NoError ( t , err )
assert . EqualValues ( t , 2 , count )
repo2 := unittest . AssertExistsAndLoadBean ( t , & repo_model . Repository { ID : 22 } )
count , err = repo_model . CountCollaborators ( repo2 . ID )
assert . NoError ( t , err )
assert . EqualValues ( t , 2 , count )
// Non-existent repository.
count , err = repo_model . CountCollaborators ( unittest . NonexistentID )
assert . NoError ( t , err )
assert . EqualValues ( t , 0 , count )
}
func TestRepository_IsOwnerMemberCollaborator ( t * testing . T ) {
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
repo1 := unittest . AssertExistsAndLoadBean ( t , & repo_model . Repository { ID : 3 } )
// Organisation owner.
actual , err := repo_model . IsOwnerMemberCollaborator ( repo1 , 2 )
assert . NoError ( t , err )
assert . True ( t , actual )
// Team member.
actual , err = repo_model . IsOwnerMemberCollaborator ( repo1 , 4 )
assert . NoError ( t , err )
assert . True ( t , actual )
// Normal user.
actual , err = repo_model . IsOwnerMemberCollaborator ( repo1 , 1 )
assert . NoError ( t , err )
assert . False ( t , actual )
repo2 := unittest . AssertExistsAndLoadBean ( t , & repo_model . Repository { ID : 4 } )
// Collaborator.
actual , err = repo_model . IsOwnerMemberCollaborator ( repo2 , 4 )
assert . NoError ( t , err )
assert . True ( t , actual )
repo3 := unittest . AssertExistsAndLoadBean ( t , & repo_model . Repository { ID : 15 } )
// Repository owner.
actual , err = repo_model . IsOwnerMemberCollaborator ( repo3 , 2 )
assert . NoError ( t , err )
assert . True ( t , actual )
}
func TestRepo_GetCollaboration ( t * testing . T ) {
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
repo := unittest . AssertExistsAndLoadBean ( t , & repo_model . Repository { ID : 4 } )
// Existing collaboration.
collab , err := repo_model . GetCollaboration ( db . DefaultContext , repo . ID , 4 )
assert . NoError ( t , err )
assert . NotNil ( t , collab )
assert . EqualValues ( t , 4 , collab . UserID )
assert . EqualValues ( t , 4 , collab . RepoID )
// Non-existing collaboration.
collab , err = repo_model . GetCollaboration ( db . DefaultContext , repo . ID , 1 )
assert . NoError ( t , err )
assert . Nil ( t , collab )
}