mirror of
https://github.com/goharbor/harbor.git
synced 2024-10-31 23:59:32 +01:00
253c242535
add member delete API test add member and repos test
190 lines
5.7 KiB
Go
190 lines
5.7 KiB
Go
package api
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/vmware/harbor/tests/apitests/apilib"
|
|
"strconv"
|
|
)
|
|
|
|
func TestMemGet(t *testing.T) {
|
|
var result []apilib.User
|
|
var httpStatusCode int
|
|
var err error
|
|
|
|
assert := assert.New(t)
|
|
apiTest := newHarborAPI()
|
|
projectID := "1"
|
|
|
|
fmt.Println("Testing Member Get API")
|
|
//-------------------case 1 : response code = 200------------------------//
|
|
httpStatusCode, result, err = apiTest.GetProjectMembersByProID(*admin, projectID)
|
|
if err != nil {
|
|
t.Error("Error whihle get members by projectID", err.Error())
|
|
t.Log(err)
|
|
} else {
|
|
assert.Equal(int(200), httpStatusCode, "httpStatusCode should be 200")
|
|
assert.Equal(int(1), result[0].UserId, "User Id should be 1")
|
|
assert.Equal("admin", result[0].Username, "User name should be admin")
|
|
}
|
|
|
|
//---------case 2: Response Code=401,User need to log in first.----------//
|
|
fmt.Println("case 2: Response Code=401,User need to log in first.")
|
|
httpStatusCode, result, err = apiTest.GetProjectMembersByProID(*unknownUsr, projectID)
|
|
if err != nil {
|
|
t.Error("Error while get members by projectID", err.Error())
|
|
t.Log(err)
|
|
} else {
|
|
assert.Equal(int(401), httpStatusCode, "Case 2: Project creation status should be 401")
|
|
}
|
|
|
|
//------------case 3: Response Code=404,Project does not exist-----------//
|
|
fmt.Println("case 3: Response Code=404,Project does not exist")
|
|
projectID = "11"
|
|
httpStatusCode, result, err = apiTest.GetProjectMembersByProID(*admin, projectID)
|
|
if err != nil {
|
|
t.Error("Error while get members by projectID", err.Error())
|
|
t.Log(err)
|
|
} else {
|
|
assert.Equal(int(404), httpStatusCode, "Case 3: Project creation status should be 404")
|
|
}
|
|
|
|
fmt.Printf("\n")
|
|
|
|
}
|
|
|
|
/**
|
|
* Add project role member accompany with projectID
|
|
* role_id = 1 : ProjectAdmin
|
|
* role_id = 2 : Developer
|
|
* role_id = 3 : Guest
|
|
*/
|
|
|
|
func TestMemPost(t *testing.T) {
|
|
var httpStatusCode int
|
|
var err error
|
|
|
|
assert := assert.New(t)
|
|
apiTest := newHarborAPI()
|
|
projectID := "1"
|
|
CommonAddUser()
|
|
roles := &apilib.RoleParam{[]int32{1}, TestUserName}
|
|
fmt.Printf("Add User \"%s\" successfully!\n", TestUserName)
|
|
|
|
fmt.Println("Testing Member Post API")
|
|
//-------------------case 1 : response code = 200------------------------//
|
|
fmt.Println("case 1: response code = 200")
|
|
httpStatusCode, err = apiTest.AddProjectMember(*admin, projectID, *roles)
|
|
if err != nil {
|
|
t.Error("Error whihle add project role member", err.Error())
|
|
t.Log(err)
|
|
} else {
|
|
assert.Equal(int(200), httpStatusCode, "httpStatusCode should be 200")
|
|
}
|
|
|
|
//---------case 2: Response Code=409,User is ready in project.----------//
|
|
fmt.Println("case 2: Response Code=409,User is ready in project.")
|
|
httpStatusCode, err = apiTest.AddProjectMember(*admin, projectID, *roles)
|
|
if err != nil {
|
|
t.Error("Error while add project role member", err.Error())
|
|
t.Log(err)
|
|
} else {
|
|
assert.Equal(int(409), httpStatusCode, "Case 2: httpStatusCode should be 409")
|
|
}
|
|
|
|
//---------case 3: Response Code=404,User does not exist.----------//
|
|
fmt.Println("case 3: Response Code=404,User does not exist.")
|
|
|
|
errorRoles := &apilib.RoleParam{[]int32{1}, "T"}
|
|
httpStatusCode, err = apiTest.AddProjectMember(*admin, projectID, *errorRoles)
|
|
if err != nil {
|
|
t.Error("Error while add project role member", err.Error())
|
|
t.Log(err)
|
|
} else {
|
|
assert.Equal(int(404), httpStatusCode, "Case 3: httpStatusCode status should be 404")
|
|
}
|
|
/*
|
|
//---------case 4: Response Code=403,User in session does not have permission to the project..----------//
|
|
fmt.Println("case 4:User in session does not have permission to the project.")
|
|
|
|
httpStatusCode, err = apiTest.AddProjectMember(*testUser, projectID, *roles)
|
|
if err != nil {
|
|
t.Error("Error while add project role member", err.Error())
|
|
t.Log(err)
|
|
} else {
|
|
assert.Equal(int(403), httpStatusCode, "Case 3: httpStatusCode status should be 403")
|
|
}
|
|
|
|
*/
|
|
}
|
|
|
|
func TestGetMemByPIDUID(t *testing.T) {
|
|
var httpStatusCode int
|
|
var err error
|
|
|
|
assert := assert.New(t)
|
|
apiTest := newHarborAPI()
|
|
projectID := "1"
|
|
userID := strconv.Itoa(CommonGetUserID())
|
|
fmt.Println("Testing Member Get API by PID and UID")
|
|
//-------------------case 1 : response code = 200------------------------//
|
|
fmt.Println("case 1: response code = 200")
|
|
httpStatusCode, err = apiTest.GetMemByPIDUID(*admin, projectID, userID)
|
|
if err != nil {
|
|
t.Error("Error whihle get project role member", err.Error())
|
|
t.Log(err)
|
|
} else {
|
|
assert.Equal(int(200), httpStatusCode, "httpStatusCode should be 200")
|
|
}
|
|
|
|
}
|
|
|
|
func TestPutMem(t *testing.T) {
|
|
var httpStatusCode int
|
|
var err error
|
|
|
|
assert := assert.New(t)
|
|
apiTest := newHarborAPI()
|
|
projectID := "1"
|
|
userID := strconv.Itoa(CommonGetUserID())
|
|
|
|
roles := &apilib.RoleParam{[]int32{3}, TestUserName}
|
|
fmt.Println("Testing Member Put API")
|
|
//-------------------case 1 : response code = 200------------------------//
|
|
fmt.Println("case 1: response code = 200")
|
|
httpStatusCode, err = apiTest.PutProjectMember(*admin, projectID, userID, *roles)
|
|
if err != nil {
|
|
t.Error("Error whihle put project role member", err.Error())
|
|
t.Log(err)
|
|
} else {
|
|
assert.Equal(int(200), httpStatusCode, "httpStatusCode should be 200")
|
|
}
|
|
|
|
}
|
|
|
|
func TestDeleteMemUser(t *testing.T) {
|
|
var httpStatusCode int
|
|
var err error
|
|
|
|
assert := assert.New(t)
|
|
apiTest := newHarborAPI()
|
|
projectID := "1"
|
|
|
|
fmt.Println("Testing Member Delete API")
|
|
//-------------------case 1 : response code = 200------------------------//
|
|
fmt.Println("case 1: response code = 200")
|
|
|
|
id := strconv.Itoa(CommonGetUserID())
|
|
|
|
httpStatusCode, err = apiTest.DeleteProjectMember(*admin, projectID, id)
|
|
if err != nil {
|
|
t.Error("Error whihle add project role member", err.Error())
|
|
t.Log(err)
|
|
} else {
|
|
assert.Equal(int(200), httpStatusCode, "httpStatusCode should be 200")
|
|
}
|
|
CommonDelUser()
|
|
}
|