mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-18 08:15:16 +01:00
125 lines
4.1 KiB
Go
125 lines
4.1 KiB
Go
package api
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/vmware/harbor/tests/apitests/apilib"
|
|
"strconv"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestLogGet(t *testing.T) {
|
|
|
|
fmt.Println("Testing Log API")
|
|
assert := assert.New(t)
|
|
apiTest := newHarborAPI()
|
|
|
|
//prepare for test
|
|
|
|
var project apilib.ProjectReq
|
|
project.ProjectName = "my_project"
|
|
project.Public = 1
|
|
|
|
//add the project first.
|
|
fmt.Println("add the project first.")
|
|
reply, err := apiTest.ProjectsPost(*admin, project)
|
|
if err != nil {
|
|
t.Error("Error while creat project", err.Error())
|
|
t.Log(err)
|
|
} else {
|
|
assert.Equal(int(201), reply, "Case 2: Project creation status should be 201")
|
|
}
|
|
//case 1: right parameters, expect the right output
|
|
now := fmt.Sprintf("%v", time.Now().Unix())
|
|
statusCode, result, err := apiTest.LogGet(*admin, "0", now, "3")
|
|
if err != nil {
|
|
t.Error("Error while get log information", err.Error())
|
|
t.Log(err)
|
|
} else {
|
|
assert.Equal(1, len(result), "lines of logs should be equal")
|
|
assert.Equal(int32(1), result[0].LogId, "LogId should be equal")
|
|
assert.Equal("my_project/", result[0].RepoName, "RepoName should be equal")
|
|
assert.Equal("N/A", result[0].RepoTag, "RepoTag should be equal")
|
|
assert.Equal("create", result[0].Operation, "Operation should be equal")
|
|
}
|
|
|
|
//case 2: wrong format of start_time parameter, expect the wrong output
|
|
now = fmt.Sprintf("%v", time.Now().Unix())
|
|
statusCode, result, err = apiTest.LogGet(*admin, "ss", now, "3")
|
|
if err != nil {
|
|
t.Error("Error occured while get log information since the format of start_time parameter is not right.", err.Error())
|
|
t.Log(err)
|
|
} else {
|
|
assert.Equal(int(400), statusCode, "Http status code should be 400")
|
|
}
|
|
|
|
//case 3: wrong format of end_time parameter, expect the wrong output
|
|
statusCode, result, err = apiTest.LogGet(*admin, "0", "cc", "3")
|
|
if err != nil {
|
|
t.Error("Error occured while get log information since the format of end_time parameter is not right.", err.Error())
|
|
t.Log(err)
|
|
} else {
|
|
assert.Equal(int(400), statusCode, "Http status code should be 400")
|
|
}
|
|
|
|
//case 4: wrong format of lines parameter, expect the wrong output
|
|
now = fmt.Sprintf("%v", time.Now().Unix())
|
|
statusCode, result, err = apiTest.LogGet(*admin, "0", now, "s")
|
|
if err != nil {
|
|
t.Error("Error occured while get log information since the format of lines parameter is not right.", err.Error())
|
|
t.Log(err)
|
|
} else {
|
|
assert.Equal(int(400), statusCode, "Http status code should be 400")
|
|
}
|
|
|
|
//case 5: wrong format of lines parameter, expect the wrong output
|
|
now = fmt.Sprintf("%v", time.Now().Unix())
|
|
statusCode, result, err = apiTest.LogGet(*admin, "0", now, "-5")
|
|
if err != nil {
|
|
t.Error("Error occured while get log information since the format of lines parameter is not right.", err.Error())
|
|
t.Log(err)
|
|
} else {
|
|
assert.Equal(int(400), statusCode, "Http status code should be 400")
|
|
}
|
|
|
|
//case 6: all parameters are null, expect the right output
|
|
statusCode, result, err = apiTest.LogGet(*admin, "", "", "")
|
|
if err != nil {
|
|
t.Error("Error while get log information", err.Error())
|
|
t.Log(err)
|
|
} else {
|
|
assert.Equal(1, len(result), "lines of logs should be equal")
|
|
assert.Equal(int32(1), result[0].LogId, "LogId should be equal")
|
|
assert.Equal("my_project/", result[0].RepoName, "RepoName should be equal")
|
|
assert.Equal("N/A", result[0].RepoTag, "RepoTag should be equal")
|
|
assert.Equal("create", result[0].Operation, "Operation should be equal")
|
|
}
|
|
|
|
//get the project
|
|
var projects []apilib.Project
|
|
var addProjectID int32
|
|
httpStatusCode, projects, err := apiTest.ProjectsGet(project.ProjectName, 1)
|
|
if err != nil {
|
|
t.Error("Error while search project by proName and isPublic", err.Error())
|
|
t.Log(err)
|
|
} else {
|
|
assert.Equal(int(200), httpStatusCode, "httpStatusCode should be 200")
|
|
addProjectID = projects[0].ProjectId
|
|
}
|
|
|
|
//delete the project
|
|
projectID := strconv.Itoa(int(addProjectID))
|
|
httpStatusCode, err = apiTest.ProjectsDelete(*admin, projectID)
|
|
if err != nil {
|
|
t.Error("Error while delete project", err.Error())
|
|
t.Log(err)
|
|
} else {
|
|
assert.Equal(int(200), httpStatusCode, "Case 1: Project creation status should be 200")
|
|
//t.Log(result)
|
|
}
|
|
|
|
fmt.Printf("\n")
|
|
|
|
}
|