From d21557ca8920525494670ab59474dd0c3a3517ad Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 27 Mar 2016 21:23:53 +0200 Subject: Add testing --- server_test.go | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 server_test.go (limited to 'server_test.go') diff --git a/server_test.go b/server_test.go new file mode 100644 index 0000000..f3ad3d8 --- /dev/null +++ b/server_test.go @@ -0,0 +1,60 @@ +package goxy + +import ( + "io" + "io/ioutil" + "net/http" + "net/http/httptest" + "net/rpc" + "testing" +) + +const cannary = "hello from backend" + +func TestNewServer(t *testing.T) { + backendServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + io.WriteString(w, cannary) + })) + defer backendServer.Close() + + server, err := NewServer("data.gob") + if err != nil { + t.Error(err) + } + + errc := make(chan error, 2) + go func() { errc <- server.ListenAndServe() }() + go func() { errc <- http.ListenAndServe(":http-alt", nil) }() + select { + case err := <-errc: + t.Error(err) + default: + } + + client, err := rpc.DialHTTP("tcp", ":http-alt") + if err != nil { + t.Error(err) + } + defer client.Close() + + e := Entry{ + ServerName: "localhost", + Upstream: backendServer.URL, + } + client.Call("GoXY.Add", e, nil) + + resp, err := http.Get("http://localhost") + if err != nil { + t.Error(err) + } + defer resp.Body.Close() + + b, err := ioutil.ReadAll(resp.Body) + if err != nil { + t.Error(err) + } + + if string(b) != cannary { + t.Error("got", string(b), "expected", cannary) + } +} -- cgit v1.2.3