2016-06-15 05:20:34 +02:00
|
|
|
package HarborAPItest
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/vmware/harbor/tests/apitests/apilib"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestRepositoryDelete(t *testing.T) {
|
2016-06-20 08:38:55 +02:00
|
|
|
fmt.Println("Test for Project Delete (ProjectDelete) API")
|
2016-06-15 05:20:34 +02:00
|
|
|
assert := assert.New(t)
|
|
|
|
|
|
|
|
//prepare for test
|
|
|
|
adminEr := &HarborAPI.UsrInfo{"admin", "Harbor1234"}
|
|
|
|
admin := &HarborAPI.UsrInfo{"admin", "Harbor12345"}
|
|
|
|
prjUsr := &HarborAPI.UsrInfo{"unknown", "unknown"}
|
|
|
|
|
2016-06-20 08:38:55 +02:00
|
|
|
fmt.Println("Checking repository status...")
|
2016-06-15 05:20:34 +02:00
|
|
|
apiTest := HarborAPI.NewHarborAPI()
|
|
|
|
var searchResault HarborAPI.Search
|
|
|
|
searchResault, err := apiTest.SearchGet("library")
|
|
|
|
//fmt.Printf("%+v\n", resault)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
t.Error("Error while search project or repository", err.Error())
|
|
|
|
t.Log(err)
|
|
|
|
} else {
|
|
|
|
//assert.Equal(searchResault.Repositories[0].RepoName, "library/docker", "1st repo name should be")
|
|
|
|
if !assert.Equal(searchResault.Repositories[0].RepoName, "library/docker", "1st repo name should be") {
|
|
|
|
t.Error("fail to find repo 'library/docker'", err.Error())
|
|
|
|
t.Log(err)
|
|
|
|
} else {
|
2016-06-20 08:38:55 +02:00
|
|
|
fmt.Println("repo 'library/docker' exit")
|
2016-06-15 05:20:34 +02:00
|
|
|
}
|
|
|
|
//assert.Equal(searchResault.Repositories[1].RepoName, "library/hello-world", "2nd repo name should be")
|
|
|
|
if !assert.Equal(searchResault.Repositories[1].RepoName, "library/hello-world", "2nd repo name should be") {
|
|
|
|
t.Error("fail to find repo 'library/hello-world'", err.Error())
|
|
|
|
t.Log(err)
|
|
|
|
} else {
|
2016-06-20 08:38:55 +02:00
|
|
|
fmt.Println("repo 'library/hello-world' exit")
|
2016-06-15 05:20:34 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
//t.Log(resault)
|
|
|
|
}
|
|
|
|
|
|
|
|
//case 1: admin login fail, expect repo delete fail.
|
|
|
|
fmt.Println("case 1: admin login fail, expect repo delete fail.")
|
|
|
|
|
|
|
|
resault, err := apiTest.HarborLogin(*adminEr)
|
|
|
|
if err != nil {
|
|
|
|
t.Error("Error while admin login", err.Error())
|
|
|
|
t.Log(err)
|
|
|
|
} else {
|
|
|
|
assert.Equal(resault, int(401), "Admin login status should be 401")
|
|
|
|
//t.Log(resault)
|
|
|
|
}
|
|
|
|
if resault != 401 {
|
|
|
|
t.Log(resault)
|
|
|
|
} else {
|
|
|
|
prjUsr = adminEr
|
|
|
|
}
|
|
|
|
|
|
|
|
resault, err = apiTest.RepositoriesDelete(*prjUsr, "library/docker", "")
|
|
|
|
if err != nil {
|
|
|
|
t.Error("Error while delete repository", err.Error())
|
|
|
|
t.Log(err)
|
|
|
|
} else {
|
|
|
|
assert.Equal(resault, int(401), "Case 1: Repository delete status should be 401")
|
|
|
|
//t.Log(resault)
|
|
|
|
}
|
|
|
|
|
|
|
|
//case 2: admin successful login, expect repository delete success.
|
|
|
|
fmt.Println("case 2: admin successful login, expect repository delete success.")
|
|
|
|
resault, err = apiTest.HarborLogin(*admin)
|
|
|
|
if err != nil {
|
|
|
|
t.Error("Error while admin login", err.Error())
|
|
|
|
t.Log(err)
|
|
|
|
} else {
|
|
|
|
assert.Equal(resault, int(200), "Admin login status should be 200")
|
|
|
|
//t.Log(resault)
|
|
|
|
}
|
|
|
|
if resault != 200 {
|
|
|
|
t.Log(resault)
|
|
|
|
} else {
|
|
|
|
prjUsr = admin
|
|
|
|
}
|
|
|
|
|
|
|
|
resault, err = apiTest.RepositoriesDelete(*prjUsr, "library/docker", "")
|
|
|
|
if err != nil {
|
|
|
|
t.Error("Error while delete repository", err.Error())
|
|
|
|
t.Log(err)
|
|
|
|
} else {
|
|
|
|
if assert.Equal(resault, int(200), "Case 2: Repository delete status should be 200") {
|
|
|
|
fmt.Println("Repository 'library/docker' delete success.")
|
|
|
|
}
|
|
|
|
//t.Log(resault)
|
|
|
|
}
|
|
|
|
|
|
|
|
resault, err = apiTest.RepositoriesDelete(*prjUsr, "library/hello-world", "")
|
|
|
|
if err != nil {
|
|
|
|
t.Error("Error while delete repository", err.Error())
|
|
|
|
t.Log(err)
|
|
|
|
} else {
|
|
|
|
if assert.Equal(resault, int(200), "Case 2: Repository delete status should be 200") {
|
|
|
|
fmt.Println("Repository 'hello-world' delete success.")
|
|
|
|
}
|
|
|
|
//t.Log(resault)
|
|
|
|
}
|
|
|
|
|
|
|
|
//case 3: delete one repo not exit, expect repo delete fail.
|
|
|
|
fmt.Println("case 3: delete one repo not exit, expect repo delete fail.")
|
|
|
|
|
|
|
|
resault, err = apiTest.RepositoriesDelete(*prjUsr, "library/hello-world", "")
|
|
|
|
if err != nil {
|
|
|
|
t.Error("Error while delete repository", err.Error())
|
|
|
|
t.Log(err)
|
|
|
|
} else {
|
|
|
|
if assert.Equal(resault, int(404), "Case 3: Repository delete status should be 404") {
|
|
|
|
fmt.Println("Repository 'hello-world' not exit.")
|
|
|
|
}
|
|
|
|
//t.Log(resault)
|
|
|
|
}
|
|
|
|
|
|
|
|
//if resault.Response.StatusCode != 200 {
|
|
|
|
// t.Log(resault.Response)
|
|
|
|
//}
|
|
|
|
|
|
|
|
}
|