@ -1,8 +1,7 @@
// Copyright 2013 Google . All rights reserved.
// Copyright 2013 The go-github AUTHORS . All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd
// license that can be found in the LICENSE file.
package github
@ -14,95 +13,67 @@ import (
"testing"
)
func TestGitService_Get_authenticatedUser ( t * testing . T ) {
func TestGitService_GetTree ( t * testing . T ) {
setup ( )
defer teardown ( )
url_ := fmt . Sprintf ( "/repos/%v/%v/git/trees/%v" , "user" , "repo" , "coffebabecoffebabecoffebabe" )
mux . HandleFunc ( url_ , func ( w http . ResponseWriter , r * http . Request ) {
mux . HandleFunc ( "/repos/u/r/git/trees/s" , func ( w http . ResponseWriter , r * http . Request ) {
if m := "GET" ; m != r . Method {
t . Errorf ( "Request method = %v, want %v" , r . Method , m )
}
fmt . Fprint ( w , ` {
"sha" : "9fb037999f264ba9a7fc6274d15fa3ae2ab98312" ,
"url" : "https://api.github.com/repos/octocat/Hello-World/trees/9fb037999f264ba9a7fc6274d15fa3ae2ab98312" ,
"tree" : [
{
"path" : "file.rb" ,
"mode" : "100644" ,
"type" : "blob" ,
"size" : 30 ,
"sha" : "44b4fc6d56897b048c772eb4087f854f46256132" ,
"url" : "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132"
} ,
{
"path" : "subdir" ,
"mode" : "040000" ,
"type" : "tree" ,
"sha" : "f484d249c660418515fb01c2b9662073663c242e" ,
"url" : "https://api.github.com/repos/octocat/Hello-World/git/blobs/f484d249c660418515fb01c2b9662073663c242e"
}
]
"sha" : "s" ,
"tree" : [ { "type" : "blob" } ]
} ` )
} )
trees , err := client . Trees . Get ( "user " , "repo " , "coffebabecoffebabecoffebabe " , true )
tree , err := client . Git . GetTree ( "u" , "r" , "s" , true )
if err != nil {
t . Errorf ( "Trees.List returned error: %v" , err )
t . Errorf ( "Git.GetTree returned error: %v" , err )
}
want := Tree {
SHA : ` 9fb037999f264ba9a7fc6274d15fa3ae2ab98312 ` ,
Trees : [ ] GitTree {
GitTree {
Path : "file.rb" ,
Mode : "100644" ,
SHA : "s" ,
Entries : [ ] TreeEntry {
TreeEntry {
Type : "blob" ,
Size : 30 ,
SHA : "44b4fc6d56897b048c772eb4087f854f46256132" ,
} ,
GitTree {
Path : "subdir" ,
Mode : "040000" ,
Type : "tree" ,
SHA : "f484d249c660418515fb01c2b9662073663c242e" ,
} ,
} ,
}
if ! reflect . DeepEqual ( * trees , want ) {
t . Errorf ( "Tree.Lis t returned %+v, want %+v" , * trees , want )
if ! reflect . DeepEqual ( * tree , want ) {
t . Errorf ( "Tree.Get returned %+v, want %+v" , * tree , want )
}
}
func TestGitService_Create_authenticatedUser ( t * testing . T ) {
func TestGitService_CreateTree ( t * testing . T ) {
setup ( )
defer teardown ( )
url_ := fmt . Sprintf ( "/repos/%v/%v/git/trees/%v" , "user" , "repo" , "coffebabecoffebabecoffebabe" )
treesToCreate :=
[ ] GitTree {
GitTree {
Path : "file.rb" ,
Mode : "100644" ,
Type : "blob" ,
SHA : "7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b" ,
} ,
}
mux . HandleFunc ( url_ , func ( w http . ResponseWriter , r * http . Request ) {
v := new ( struct {
BaseTree string ` json:base_tree `
Tree [ ] GitTree ` json:tree `
} )
input := [ ] TreeEntry {
TreeEntry {
Path : "file.rb" ,
Mode : "100644" ,
Type : "blob" ,
SHA : "7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b" ,
} ,
}
mux . HandleFunc ( "/repos/u/r/git/trees/s" , func ( w http . ResponseWriter , r * http . Request ) {
v := new ( createTree )
json . NewDecoder ( r . Body ) . Decode ( v )
if m := "POST" ; m != r . Method {
t . Errorf ( "Request method = %v, want %v" , r . Method , m )
}
want := & createTree {
BaseTree : "b" ,
Entries : input ,
}
if ! reflect . DeepEqual ( v , want ) {
t . Errorf ( "Git.CreateTree request body: %+v, want %+v" , v , want )
}
fmt . Fprint ( w , ` {
"sha" : "cd8274d15fa3ae2ab983129fb037999f264ba9a7" ,
"tree" : [
@ -117,15 +88,15 @@ func TestGitService_Create_authenticatedUser(t *testing.T) {
} ` )
} )
tree , err := client . Trees . Create ( "user " , "repo " , "coffebabecoffebabecoffebabe " , "basebasebase " , treesToCreate )
tree , err := client . Git . CreateTree ( "u" , "r" , "s " , "b" , input )
if err != nil {
t . Errorf ( "Trees.Creat e returned error: %v" , err )
t . Errorf ( "Git.CreateTre e returned error: %v" , err )
}
want := Tree {
"cd8274d15fa3ae2ab983129fb037999f264ba9a7" ,
[ ] Git Tree{
Git Tree{
[ ] TreeEntry {
TreeEntry {
Path : "file.rb" ,
Mode : "100644" ,
Type : "blob" ,
@ -136,6 +107,6 @@ func TestGitService_Create_authenticatedUser(t *testing.T) {
}
if ! reflect . DeepEqual ( * tree , want ) {
t . Errorf ( "Tree.Creat e returned %+v, want %+v" , * tree , want )
t . Errorf ( "Git.CreateTre e returned %+v, want %+v" , * tree , want )
}
}