mirror of
https://github.com/interviewstreet/go-jira.git
synced 2024-11-30 08:47:11 +02:00
162 lines
4.1 KiB
Go
162 lines
4.1 KiB
Go
package jira
|
|
|
|
import (
|
|
"fmt"
|
|
"io/ioutil"
|
|
"net/http"
|
|
"testing"
|
|
)
|
|
|
|
func TestProjectService_GetList(t *testing.T) {
|
|
setup()
|
|
defer teardown()
|
|
testAPIEdpoint := "/rest/api/2/project"
|
|
|
|
raw, err := ioutil.ReadFile("./mocks/all_projects.json")
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
}
|
|
testMux.HandleFunc(testAPIEdpoint, func(w http.ResponseWriter, r *http.Request) {
|
|
testMethod(t, r, "GET")
|
|
testRequestURL(t, r, testAPIEdpoint)
|
|
fmt.Fprint(w, string(raw))
|
|
})
|
|
|
|
projects, _, err := testClient.Project.GetList()
|
|
if projects == nil {
|
|
t.Error("Expected project list. Project list is nil")
|
|
}
|
|
if err != nil {
|
|
t.Errorf("Error given: %s", err)
|
|
}
|
|
}
|
|
|
|
func TestProjectService_ListWithOptions(t *testing.T) {
|
|
setup()
|
|
defer teardown()
|
|
testAPIEdpoint := "/rest/api/2/project"
|
|
|
|
raw, err := ioutil.ReadFile("./mocks/all_projects.json")
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
}
|
|
testMux.HandleFunc(testAPIEdpoint, func(w http.ResponseWriter, r *http.Request) {
|
|
testMethod(t, r, "GET")
|
|
testRequestURL(t, r, "/rest/api/2/project?expand=issueTypes")
|
|
fmt.Fprint(w, string(raw))
|
|
})
|
|
|
|
projects, _, err := testClient.Project.ListWithOptions(&GetQueryOptions{Expand: "issueTypes"})
|
|
if projects == nil {
|
|
t.Error("Expected project list. Project list is nil")
|
|
}
|
|
if err != nil {
|
|
t.Errorf("Error given: %s", err)
|
|
}
|
|
}
|
|
|
|
func TestProjectService_Get(t *testing.T) {
|
|
setup()
|
|
defer teardown()
|
|
testAPIEdpoint := "/rest/api/2/project/12310505"
|
|
|
|
raw, err := ioutil.ReadFile("./mocks/project.json")
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
}
|
|
testMux.HandleFunc(testAPIEdpoint, func(w http.ResponseWriter, r *http.Request) {
|
|
testMethod(t, r, "GET")
|
|
testRequestURL(t, r, testAPIEdpoint)
|
|
fmt.Fprint(w, string(raw))
|
|
})
|
|
|
|
projects, _, err := testClient.Project.Get("12310505")
|
|
if projects == nil {
|
|
t.Error("Expected project list. Project list is nil")
|
|
}
|
|
if err != nil {
|
|
t.Errorf("Error given: %s", err)
|
|
}
|
|
if len(projects.Roles) != 9 {
|
|
t.Errorf("Expected 9 roles but got %d", len(projects.Roles))
|
|
}
|
|
}
|
|
|
|
func TestProjectService_Get_NoProject(t *testing.T) {
|
|
setup()
|
|
defer teardown()
|
|
testAPIEdpoint := "/rest/api/2/project/99999999"
|
|
|
|
testMux.HandleFunc(testAPIEdpoint, func(w http.ResponseWriter, r *http.Request) {
|
|
testMethod(t, r, "GET")
|
|
testRequestURL(t, r, testAPIEdpoint)
|
|
fmt.Fprint(w, nil)
|
|
})
|
|
|
|
projects, resp, err := testClient.Project.Get("99999999")
|
|
if projects != nil {
|
|
t.Errorf("Expected nil. Got %+v", projects)
|
|
}
|
|
|
|
if resp.Status == "404" {
|
|
t.Errorf("Expected status 404. Got %s", resp.Status)
|
|
}
|
|
if err == nil {
|
|
t.Errorf("Error given: %s", err)
|
|
}
|
|
}
|
|
|
|
func TestProjectService_GetPermissionScheme_Failure(t *testing.T) {
|
|
setup()
|
|
defer teardown()
|
|
testAPIEdpoint := "/rest/api/2/project/99999999/permissionscheme"
|
|
|
|
testMux.HandleFunc(testAPIEdpoint, func(w http.ResponseWriter, r *http.Request) {
|
|
testMethod(t, r, "GET")
|
|
testRequestURL(t, r, testAPIEdpoint)
|
|
fmt.Fprint(w, nil)
|
|
})
|
|
|
|
permissionScheme, resp, err := testClient.Project.GetPermissionScheme("99999999")
|
|
if permissionScheme != nil {
|
|
t.Errorf("Expected nil. Got %+v", permissionScheme)
|
|
}
|
|
|
|
if resp.Status == "404" {
|
|
t.Errorf("Expected status 404. Got %s", resp.Status)
|
|
}
|
|
if err == nil {
|
|
t.Errorf("Error given: %s", err)
|
|
}
|
|
}
|
|
|
|
func TestProjectService_GetPermissionScheme_Success(t *testing.T) {
|
|
setup()
|
|
defer teardown()
|
|
testAPIEdpoint := "/rest/api/2/project/99999999/permissionscheme"
|
|
|
|
testMux.HandleFunc(testAPIEdpoint, func(w http.ResponseWriter, r *http.Request) {
|
|
testMethod(t, r, "GET")
|
|
testRequestURL(t, r, testAPIEdpoint)
|
|
fmt.Fprint(w, `{
|
|
"expand": "permissions,user,group,projectRole,field,all",
|
|
"id": 10201,
|
|
"self": "https://www.example.com/rest/api/2/permissionscheme/10201",
|
|
"name": "Project for specific-users",
|
|
"description": "Projects that can only see for people belonging to specific-users group"
|
|
}`)
|
|
})
|
|
|
|
permissionScheme, resp, err := testClient.Project.GetPermissionScheme("99999999")
|
|
if permissionScheme.ID != 10201 {
|
|
t.Errorf("Expected Permission Scheme ID. Got %+v", permissionScheme)
|
|
}
|
|
|
|
if resp.Status == "404" {
|
|
t.Errorf("Expected status 404. Got %s", resp.Status)
|
|
}
|
|
if err != nil {
|
|
t.Errorf("Error given: %s", err)
|
|
}
|
|
}
|