github.com/fanux/shipyard@v0.0.0-20161009071005-6515ce223235/controller/api/events_test.go (about)

     1  package api
     2  
     3  import (
     4  	"encoding/json"
     5  	"net/http"
     6  	"net/http/httptest"
     7  	"testing"
     8  
     9  	"github.com/shipyard/shipyard"
    10  	"github.com/stretchr/testify/assert"
    11  )
    12  
    13  func TestApiGetEvents(t *testing.T) {
    14  	api, err := getTestApi()
    15  	if err != nil {
    16  		t.Fatal(err)
    17  	}
    18  
    19  	ts := httptest.NewServer(http.HandlerFunc(api.events))
    20  	defer ts.Close()
    21  
    22  	res, err := http.Get(ts.URL)
    23  	if err != nil {
    24  		t.Fatal(err)
    25  	}
    26  
    27  	assert.Equal(t, res.StatusCode, 200, "expected response code 200")
    28  	events := []*shipyard.Event{}
    29  
    30  	if err := json.NewDecoder(res.Body).Decode(&events); err != nil {
    31  		t.Fatal(err)
    32  	}
    33  
    34  	assert.NotEqual(t, len(events), 0, "expected events; received none")
    35  }
    36  
    37  func TestApiPurgeEvents(t *testing.T) {
    38  	api, err := getTestApi()
    39  	if err != nil {
    40  		t.Fatal(err)
    41  	}
    42  
    43  	transport := &http.Transport{}
    44  	client := &http.Client{Transport: transport}
    45  
    46  	ts := httptest.NewServer(http.HandlerFunc(api.purgeEvents))
    47  	defer ts.Close()
    48  
    49  	req, err := http.NewRequest("DELETE", ts.URL, nil)
    50  	if err != nil {
    51  		t.Fatal(err)
    52  	}
    53  
    54  	res, err := client.Do(req)
    55  	if err != nil {
    56  		t.Fatal(err)
    57  	}
    58  
    59  	assert.Equal(t, res.StatusCode, 204, "expected response code 204")
    60  }