github.com/fanux/shipyard@v0.0.0-20161009071005-6515ce223235/controller/api/servicekeys_test.go (about) 1 package api 2 3 import ( 4 "bytes" 5 "encoding/json" 6 "net/http" 7 "net/http/httptest" 8 "testing" 9 10 "github.com/shipyard/shipyard/auth" 11 "github.com/stretchr/testify/assert" 12 ) 13 14 func TestApiGetSerivceKeys(t *testing.T) { 15 api, err := getTestApi() 16 if err != nil { 17 t.Fatal(err) 18 } 19 20 ts := httptest.NewServer(http.HandlerFunc(api.serviceKeys)) 21 defer ts.Close() 22 23 res, err := http.Get(ts.URL) 24 if err != nil { 25 t.Fatal(err) 26 } 27 28 assert.Equal(t, res.StatusCode, 200, "expected response code 200") 29 keys := []*auth.ServiceKey{} 30 31 if err := json.NewDecoder(res.Body).Decode(&keys); err != nil { 32 t.Fatal(err) 33 } 34 35 assert.NotEqual(t, len(keys), 0, "expected keys; received none") 36 } 37 38 func TestApiRemoveServiceKey(t *testing.T) { 39 api, err := getTestApi() 40 if err != nil { 41 t.Fatal(err) 42 } 43 44 transport := &http.Transport{} 45 client := &http.Client{Transport: transport} 46 47 ts := httptest.NewServer(http.HandlerFunc(api.removeServiceKey)) 48 defer ts.Close() 49 50 data := []byte(`{"key": "test-key"}`) 51 52 req, err := http.NewRequest("DELETE", ts.URL, bytes.NewBuffer(data)) 53 if err != nil { 54 t.Fatal(err) 55 } 56 57 res, err := client.Do(req) 58 if err != nil { 59 t.Fatal(err) 60 } 61 62 assert.Equal(t, res.StatusCode, 204, "expected response code 204") 63 }