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  }