Commit 421dc697 authored by santiaago's avatar santiaago
Browse files

test cache for space invader route.

parent 565036b4
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ package spaceinvaders

import (
	"net/http"
	"net/http/httptest"
	"testing"

	"github.com/taironas/route"
@@ -28,3 +29,30 @@ func TestSpaceInvaders(t *testing.T) {
		}
	}
}

func TestSpaceInvadersCache(t *testing.T) {
	t.Parallel()
	r := new(route.Router)
	r.HandleFunc("/spaceinvaders/:key", SpaceInvaders)
	var etag string
	test := tgTesting.GenerateHandlerFunc(t, SpaceInvaders)

	if recorder := test("/spaceinvaders/somekey", "GET", nil, r); recorder != nil {
		if recorder.Code != http.StatusOK {
			t.Errorf("returned %v. Expected %v.", recorder.Code, http.StatusOK)
		}
		etag = recorder.Header().Get("Etag")
	}

	// test caching
	if req, err := http.NewRequest("GET", "/spaceinvaders/somekey", nil); err != nil {
		t.Errorf("%v", err)
	} else {
		req.Header.Set("If-None-Match", etag)
		recorder := httptest.NewRecorder()
		r.ServeHTTP(recorder, req)
		if recorder.Code != http.StatusNotModified {
			t.Errorf("returned %v. Expected %v.", recorder.Code, http.StatusNotModified)
		}
	}
}