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  }