|
|
@ -10,6 +10,7 @@ import ( |
|
|
"fmt" |
|
|
"fmt" |
|
|
"net/http" |
|
|
"net/http" |
|
|
"reflect" |
|
|
"reflect" |
|
|
|
|
|
"strings" |
|
|
"testing" |
|
|
"testing" |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
@ -17,13 +18,13 @@ func TestRepositoriesService_ListReleases(t *testing.T) { |
|
|
setup() |
|
|
setup() |
|
|
defer teardown() |
|
|
defer teardown() |
|
|
|
|
|
|
|
|
mux.HandleFunc("/repos/o/u/releases", func(w http.ResponseWriter, r *http.Request) { |
|
|
|
|
|
|
|
|
mux.HandleFunc("/repos/o/r/releases", func(w http.ResponseWriter, r *http.Request) { |
|
|
testMethod(t, r, "GET") |
|
|
testMethod(t, r, "GET") |
|
|
testHeader(t, r, "Accept", mimeReleasePreview) |
|
|
testHeader(t, r, "Accept", mimeReleasePreview) |
|
|
fmt.Fprint(w, `[{"id":1}]`) |
|
|
fmt.Fprint(w, `[{"id":1}]`) |
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
|
releases, _, err := client.Repositories.ListReleases("o", "u") |
|
|
|
|
|
|
|
|
releases, _, err := client.Repositories.ListReleases("o", "r") |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
t.Errorf("Repositories.ListReleases returned error: %v", err) |
|
|
t.Errorf("Repositories.ListReleases returned error: %v", err) |
|
|
} |
|
|
} |
|
|
@ -37,13 +38,13 @@ func TestRepositoriesService_GetRelease(t *testing.T) { |
|
|
setup() |
|
|
setup() |
|
|
defer teardown() |
|
|
defer teardown() |
|
|
|
|
|
|
|
|
mux.HandleFunc("/repos/o/u/releases/1", func(w http.ResponseWriter, r *http.Request) { |
|
|
|
|
|
|
|
|
mux.HandleFunc("/repos/o/r/releases/1", func(w http.ResponseWriter, r *http.Request) { |
|
|
testMethod(t, r, "GET") |
|
|
testMethod(t, r, "GET") |
|
|
testHeader(t, r, "Accept", mimeReleasePreview) |
|
|
testHeader(t, r, "Accept", mimeReleasePreview) |
|
|
fmt.Fprint(w, `{"id":1}`) |
|
|
fmt.Fprint(w, `{"id":1}`) |
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
|
release, resp, err := client.Repositories.GetRelease("o", "u", 1) |
|
|
|
|
|
|
|
|
release, resp, err := client.Repositories.GetRelease("o", "r", 1) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
t.Errorf("Repositories.GetRelease returned error: %v\n%v", err, resp.Body) |
|
|
t.Errorf("Repositories.GetRelease returned error: %v\n%v", err, resp.Body) |
|
|
} |
|
|
} |
|
|
@ -60,7 +61,7 @@ func TestRepositoriesService_CreateRelease(t *testing.T) { |
|
|
|
|
|
|
|
|
input := &RepositoryRelease{Name: String("v1.0")} |
|
|
input := &RepositoryRelease{Name: String("v1.0")} |
|
|
|
|
|
|
|
|
mux.HandleFunc("/repos/o/u/releases", func(w http.ResponseWriter, r *http.Request) { |
|
|
|
|
|
|
|
|
mux.HandleFunc("/repos/o/r/releases", func(w http.ResponseWriter, r *http.Request) { |
|
|
v := new(RepositoryRelease) |
|
|
v := new(RepositoryRelease) |
|
|
json.NewDecoder(r.Body).Decode(v) |
|
|
json.NewDecoder(r.Body).Decode(v) |
|
|
|
|
|
|
|
|
@ -72,7 +73,7 @@ func TestRepositoriesService_CreateRelease(t *testing.T) { |
|
|
fmt.Fprint(w, `{"id":1}`) |
|
|
fmt.Fprint(w, `{"id":1}`) |
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
|
release, _, err := client.Repositories.CreateRelease("o", "u", input) |
|
|
|
|
|
|
|
|
release, _, err := client.Repositories.CreateRelease("o", "r", input) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
t.Errorf("Repositories.CreateRelease returned error: %v", err) |
|
|
t.Errorf("Repositories.CreateRelease returned error: %v", err) |
|
|
} |
|
|
} |
|
|
@ -89,7 +90,7 @@ func TestRepositoriesService_EditRelease(t *testing.T) { |
|
|
|
|
|
|
|
|
input := &RepositoryRelease{Name: String("n")} |
|
|
input := &RepositoryRelease{Name: String("n")} |
|
|
|
|
|
|
|
|
mux.HandleFunc("/repos/o/u/releases/1", func(w http.ResponseWriter, r *http.Request) { |
|
|
|
|
|
|
|
|
mux.HandleFunc("/repos/o/r/releases/1", func(w http.ResponseWriter, r *http.Request) { |
|
|
v := new(RepositoryRelease) |
|
|
v := new(RepositoryRelease) |
|
|
json.NewDecoder(r.Body).Decode(v) |
|
|
json.NewDecoder(r.Body).Decode(v) |
|
|
|
|
|
|
|
|
@ -101,7 +102,7 @@ func TestRepositoriesService_EditRelease(t *testing.T) { |
|
|
fmt.Fprint(w, `{"id":1}`) |
|
|
fmt.Fprint(w, `{"id":1}`) |
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
|
release, _, err := client.Repositories.EditRelease("o", "u", 1, input) |
|
|
|
|
|
|
|
|
release, _, err := client.Repositories.EditRelease("o", "r", 1, input) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
t.Errorf("Repositories.EditRelease returned error: %v", err) |
|
|
t.Errorf("Repositories.EditRelease returned error: %v", err) |
|
|
} |
|
|
} |
|
|
@ -115,13 +116,121 @@ func TestRepositoriesService_DeleteRelease(t *testing.T) { |
|
|
setup() |
|
|
setup() |
|
|
defer teardown() |
|
|
defer teardown() |
|
|
|
|
|
|
|
|
mux.HandleFunc("/repos/o/u/releases/1", func(w http.ResponseWriter, r *http.Request) { |
|
|
|
|
|
|
|
|
mux.HandleFunc("/repos/o/r/releases/1", func(w http.ResponseWriter, r *http.Request) { |
|
|
testMethod(t, r, "DELETE") |
|
|
testMethod(t, r, "DELETE") |
|
|
testHeader(t, r, "Accept", mimeReleasePreview) |
|
|
testHeader(t, r, "Accept", mimeReleasePreview) |
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
|
_, err := client.Repositories.DeleteRelease("o", "u", 1) |
|
|
|
|
|
|
|
|
_, err := client.Repositories.DeleteRelease("o", "r", 1) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
t.Errorf("Repositories.DeleteRelease returned error: %v", err) |
|
|
t.Errorf("Repositories.DeleteRelease returned error: %v", err) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func TestRepositoriesService_ListReleaseAssets(t *testing.T) { |
|
|
|
|
|
setup() |
|
|
|
|
|
defer teardown() |
|
|
|
|
|
|
|
|
|
|
|
mux.HandleFunc("/repos/o/r/releases/1/assets", func(w http.ResponseWriter, r *http.Request) { |
|
|
|
|
|
testMethod(t, r, "GET") |
|
|
|
|
|
testHeader(t, r, "Accept", mimeReleasePreview) |
|
|
|
|
|
fmt.Fprint(w, `[{"id":1}]`) |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
assets, _, err := client.Repositories.ListReleaseAssets("o", "r", 1) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
t.Errorf("Repositories.ListReleaseAssets returned error: %v", err) |
|
|
|
|
|
} |
|
|
|
|
|
want := []ReleaseAsset{{ID: Int(1)}} |
|
|
|
|
|
if !reflect.DeepEqual(assets, want) { |
|
|
|
|
|
t.Errorf("Repositories.ListReleaseAssets returned %+v, want %+v", assets, want) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func TestRepositoriesService_GetReleaseAsset(t *testing.T) { |
|
|
|
|
|
setup() |
|
|
|
|
|
defer teardown() |
|
|
|
|
|
|
|
|
|
|
|
mux.HandleFunc("/repos/o/r/releases/assets/1", func(w http.ResponseWriter, r *http.Request) { |
|
|
|
|
|
testMethod(t, r, "GET") |
|
|
|
|
|
testHeader(t, r, "Accept", mimeReleasePreview) |
|
|
|
|
|
fmt.Fprint(w, `{"id":1}`) |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
asset, _, err := client.Repositories.GetReleaseAsset("o", "r", 1) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
t.Errorf("Repositories.GetReleaseAsset returned error: %v", err) |
|
|
|
|
|
} |
|
|
|
|
|
want := &ReleaseAsset{ID: Int(1)} |
|
|
|
|
|
if !reflect.DeepEqual(asset, want) { |
|
|
|
|
|
t.Errorf("Repositories.GetReleaseAsset returned %+v, want %+v", asset, want) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func TestRepositoriesService_EditReleaseAsset(t *testing.T) { |
|
|
|
|
|
setup() |
|
|
|
|
|
defer teardown() |
|
|
|
|
|
|
|
|
|
|
|
input := &ReleaseAsset{Name: String("n")} |
|
|
|
|
|
|
|
|
|
|
|
mux.HandleFunc("/repos/o/r/releases/assets/1", func(w http.ResponseWriter, r *http.Request) { |
|
|
|
|
|
v := new(ReleaseAsset) |
|
|
|
|
|
json.NewDecoder(r.Body).Decode(v) |
|
|
|
|
|
|
|
|
|
|
|
testMethod(t, r, "PATCH") |
|
|
|
|
|
testHeader(t, r, "Accept", mimeReleasePreview) |
|
|
|
|
|
if !reflect.DeepEqual(v, input) { |
|
|
|
|
|
t.Errorf("Request body = %+v, want %+v", v, input) |
|
|
|
|
|
} |
|
|
|
|
|
fmt.Fprint(w, `{"id":1}`) |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
asset, _, err := client.Repositories.EditReleaseAsset("o", "r", 1, input) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
t.Errorf("Repositories.EditReleaseAsset returned error: %v", err) |
|
|
|
|
|
} |
|
|
|
|
|
want := &ReleaseAsset{ID: Int(1)} |
|
|
|
|
|
if !reflect.DeepEqual(asset, want) { |
|
|
|
|
|
t.Errorf("Repositories.EditReleaseAsset returned = %+v, want %+v", asset, want) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func TestRepositoriesService_DeleteReleaseAsset(t *testing.T) { |
|
|
|
|
|
setup() |
|
|
|
|
|
defer teardown() |
|
|
|
|
|
|
|
|
|
|
|
mux.HandleFunc("/repos/o/r/releases/assets/1", func(w http.ResponseWriter, r *http.Request) { |
|
|
|
|
|
testMethod(t, r, "DELETE") |
|
|
|
|
|
testHeader(t, r, "Accept", mimeReleasePreview) |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
_, err := client.Repositories.DeleteReleaseAsset("o", "r", 1) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
t.Errorf("Repositories.DeleteReleaseAsset returned error: %v", err) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func TestRepositoriesService_UploadReleaseAsset(t *testing.T) { |
|
|
|
|
|
setup() |
|
|
|
|
|
defer teardown() |
|
|
|
|
|
|
|
|
|
|
|
mux.HandleFunc("/repos/o/r/releases/1/assets", func(w http.ResponseWriter, r *http.Request) { |
|
|
|
|
|
testMethod(t, r, "POST") |
|
|
|
|
|
testHeader(t, r, "Accept", mimeReleasePreview) |
|
|
|
|
|
testHeader(t, r, "Content-Type", "application/zip") |
|
|
|
|
|
testFormValues(t, r, values{"name": "n"}) |
|
|
|
|
|
|
|
|
|
|
|
fmt.Fprintf(w, `{"id":1}`) |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
opt := &UploadOptions{Name: "n"} |
|
|
|
|
|
data := strings.NewReader("data") |
|
|
|
|
|
asset, _, err := client.Repositories.UploadReleaseAsset("o", "r", 1, opt, data, "application/zip") |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
t.Errorf("Repositories.UploadReleaseAssert returned error: %v", err) |
|
|
|
|
|
} |
|
|
|
|
|
want := &ReleaseAsset{ID: Int(1)} |
|
|
|
|
|
if !reflect.DeepEqual(asset, want) { |
|
|
|
|
|
t.Errorf("Repositories.UploadReleaseAssert returned %+v, want %+v", asset, want) |
|
|
|
|
|
} |
|
|
|
|
|
} |