1- // Copyright 2013 Google . All rights reserved.
1+ // Copyright 2013 The go-github AUTHORS . All rights reserved.
22//
33// Use of this source code is governed by a BSD-style
4- // license that can be found in the LICENSE file or at
5- // https://developers.google.com/open-source/licenses/bsd
4+ // license that can be found in the LICENSE file.
65
76package github
87
@@ -14,95 +13,67 @@ import (
1413 "testing"
1514)
1615
17- func TestGitService_Get_authenticatedUser (t * testing.T ) {
16+ func TestGitService_GetTree (t * testing.T ) {
1817 setup ()
1918 defer teardown ()
2019
21- url_ := fmt .Sprintf ("/repos/%v/%v/git/trees/%v" , "user" , "repo" , "coffebabecoffebabecoffebabe" )
22-
23- mux .HandleFunc (url_ , func (w http.ResponseWriter , r * http.Request ) {
20+ mux .HandleFunc ("/repos/u/r/git/trees/s" , func (w http.ResponseWriter , r * http.Request ) {
2421 if m := "GET" ; m != r .Method {
2522 t .Errorf ("Request method = %v, want %v" , r .Method , m )
2623 }
2724 fmt .Fprint (w , `{
28- "sha": "9fb037999f264ba9a7fc6274d15fa3ae2ab98312",
29- "url": "https://api.github.com/repos/octocat/Hello-World/trees/9fb037999f264ba9a7fc6274d15fa3ae2ab98312",
30- "tree": [
31- {
32- "path": "file.rb",
33- "mode": "100644",
34- "type": "blob",
35- "size": 30,
36- "sha": "44b4fc6d56897b048c772eb4087f854f46256132",
37- "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132"
38- },
39- {
40- "path": "subdir",
41- "mode": "040000",
42- "type": "tree",
43- "sha": "f484d249c660418515fb01c2b9662073663c242e",
44- "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/f484d249c660418515fb01c2b9662073663c242e"
45- }
46- ]
25+ "sha": "s",
26+ "tree": [ { "type": "blob" } ]
4727 }` )
4828 })
4929
50- trees , err := client .Trees . Get ( "user " , "repo " , "coffebabecoffebabecoffebabe " , true )
30+ tree , err := client .Git . GetTree ( "u " , "r " , "s " , true )
5131 if err != nil {
52- t .Errorf ("Trees.List returned error: %v" , err )
32+ t .Errorf ("Git.GetTree returned error: %v" , err )
5333 }
5434
5535 want := Tree {
56- SHA : `9fb037999f264ba9a7fc6274d15fa3ae2ab98312` ,
57- Trees : []GitTree {
58- GitTree {
59- Path : "file.rb" ,
60- Mode : "100644" ,
36+ SHA : "s" ,
37+ Entries : []TreeEntry {
38+ TreeEntry {
6139 Type : "blob" ,
62- Size : 30 ,
63- SHA : "44b4fc6d56897b048c772eb4087f854f46256132" ,
64- },
65- GitTree {
66- Path : "subdir" ,
67- Mode : "040000" ,
68- Type : "tree" ,
69- SHA : "f484d249c660418515fb01c2b9662073663c242e" ,
7040 },
7141 },
7242 }
73- if ! reflect .DeepEqual (* trees , want ) {
74- t .Errorf ("Tree.List returned %+v, want %+v" , * trees , want )
43+ if ! reflect .DeepEqual (* tree , want ) {
44+ t .Errorf ("Tree.Get returned %+v, want %+v" , * tree , want )
7545 }
7646}
7747
78- func TestGitService_Create_authenticatedUser (t * testing.T ) {
48+ func TestGitService_CreateTree (t * testing.T ) {
7949 setup ()
8050 defer teardown ()
8151
82- url_ := fmt .Sprintf ("/repos/%v/%v/git/trees/%v" , "user" , "repo" , "coffebabecoffebabecoffebabe" )
83-
84- treesToCreate :=
85- []GitTree {
86- GitTree {
87- Path : "file.rb" ,
88- Mode : "100644" ,
89- Type : "blob" ,
90- SHA : "7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b" ,
91- },
92- }
93-
94- mux .HandleFunc (url_ , func (w http.ResponseWriter , r * http.Request ) {
95- v := new (struct {
96- BaseTree string `json:base_tree`
97- Tree []GitTree `json:tree`
98- })
52+ input := []TreeEntry {
53+ TreeEntry {
54+ Path : "file.rb" ,
55+ Mode : "100644" ,
56+ Type : "blob" ,
57+ SHA : "7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b" ,
58+ },
59+ }
9960
61+ mux .HandleFunc ("/repos/u/r/git/trees/s" , func (w http.ResponseWriter , r * http.Request ) {
62+ v := new (createTree )
10063 json .NewDecoder (r .Body ).Decode (v )
10164
10265 if m := "POST" ; m != r .Method {
10366 t .Errorf ("Request method = %v, want %v" , r .Method , m )
10467 }
10568
69+ want := & createTree {
70+ BaseTree : "b" ,
71+ Entries : input ,
72+ }
73+ if ! reflect .DeepEqual (v , want ) {
74+ t .Errorf ("Git.CreateTree request body: %+v, want %+v" , v , want )
75+ }
76+
10677 fmt .Fprint (w , `{
10778 "sha": "cd8274d15fa3ae2ab983129fb037999f264ba9a7",
10879 "tree": [
@@ -117,15 +88,15 @@ func TestGitService_Create_authenticatedUser(t *testing.T) {
11788 }` )
11889 })
11990
120- tree , err := client .Trees . Create ( "user " , "repo " , "coffebabecoffebabecoffebabe " , "basebasebase " , treesToCreate )
91+ tree , err := client .Git . CreateTree ( "u " , "r " , "s " , "b " , input )
12192 if err != nil {
122- t .Errorf ("Trees.Create returned error: %v" , err )
93+ t .Errorf ("Git.CreateTree returned error: %v" , err )
12394 }
12495
12596 want := Tree {
12697 "cd8274d15fa3ae2ab983129fb037999f264ba9a7" ,
127- []GitTree {
128- GitTree {
98+ []TreeEntry {
99+ TreeEntry {
129100 Path : "file.rb" ,
130101 Mode : "100644" ,
131102 Type : "blob" ,
@@ -136,6 +107,6 @@ func TestGitService_Create_authenticatedUser(t *testing.T) {
136107 }
137108
138109 if ! reflect .DeepEqual (* tree , want ) {
139- t .Errorf ("Tree.Create returned %+v, want %+v" , * tree , want )
110+ t .Errorf ("Git.CreateTree returned %+v, want %+v" , * tree , want )
140111 }
141112}
0 commit comments