github.com/crosbymichael/octokat@v0.0.0-20160826194511-076a32289ed5/client_test.go (about) 1 package octokat 2 3 import ( 4 "bytes" 5 "github.com/bmizerany/assert" 6 "net/http" 7 "testing" 8 ) 9 10 func TestGet(t *testing.T) { 11 setup() 12 defer tearDown() 13 14 mux.HandleFunc("/foo", func(w http.ResponseWriter, r *http.Request) { 15 testMethod(t, r, "GET") 16 testHeader(t, r, "Accept", MediaType) 17 testHeader(t, r, "User-Agent", UserAgent) 18 testHeader(t, r, "Content-Type", DefaultContentType) 19 respondWith(w, "ok") 20 }) 21 22 client.get("foo", nil) 23 } 24 25 func TestPost(t *testing.T) { 26 setup() 27 defer tearDown() 28 29 content := "content" 30 mux.HandleFunc("/foo", func(w http.ResponseWriter, r *http.Request) { 31 testMethod(t, r, "POST") 32 testHeader(t, r, "Accept", MediaType) 33 testHeader(t, r, "User-Agent", UserAgent) 34 testHeader(t, r, "Content-Type", DefaultContentType) 35 testBody(t, r, content) 36 respondWith(w, "ok") 37 }) 38 39 client.post("foo", nil, bytes.NewBufferString(content)) 40 } 41 42 func TestJSONPost(t *testing.T) { 43 setup() 44 defer tearDown() 45 46 mux.HandleFunc("/foo", func(w http.ResponseWriter, r *http.Request) { 47 testMethod(t, r, "POST") 48 testHeader(t, r, "Accept", MediaType) 49 testHeader(t, r, "User-Agent", UserAgent) 50 testHeader(t, r, "Content-Type", DefaultContentType) 51 testBody(t, r, "") 52 respondWith(w, `{"ok": "foo"}`) 53 }) 54 55 m := make(map[string]interface{}) 56 client.jsonPost("foo", nil, &m) 57 58 assert.Equal(t, "foo", m["ok"]) 59 } 60 61 func TestBuildURL(t *testing.T) { 62 url, _ := client.buildURL("https://api.github.com") 63 assert.Equal(t, "https://api.github.com", url.String()) 64 65 url, _ = client.buildURL("repos") 66 assert.Equal(t, testURLOf("repos"), url.String()) 67 }