diff options
author | Ben Burwell <ben@benburwell.com> | 2019-09-16 15:56:31 -0400 |
---|---|---|
committer | Ben Burwell <ben@benburwell.com> | 2019-09-16 16:29:16 -0400 |
commit | 679a62a9407c09be0cfb4e22455dca5ae694ce01 (patch) | |
tree | a99e8d61ada1677aee6f63a78545463308c5badd /client/client_test.go | |
parent | 528352cddbe0290653c56a27a4134637ad0624e5 (diff) |
Flesh out
Diffstat (limited to 'client/client_test.go')
-rw-r--r-- | client/client_test.go | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/client/client_test.go b/client/client_test.go new file mode 100644 index 0000000..fb1701c --- /dev/null +++ b/client/client_test.go @@ -0,0 +1,66 @@ +package client + +import ( + "io/ioutil" + "net/http" + "net/http/httptest" + "strings" + "testing" +) + +func TestBadAuth(t *testing.T) { + var hf http.HandlerFunc = func(w http.ResponseWriter, r *http.Request) { + if r.Header.Get("authorization") != "token TEST-TOKEN" { + w.WriteHeader(http.StatusUnauthorized) + return + } + w.Write([]byte("encoded yay")) + } + tests := []struct { + name string + tok string + expectErr bool + expectBody bool + }{ + {"valid token", "TEST-TOKEN", false, true}, + {"empty token", "", true, false}, + {"invalid token", "bad token", true, false}, + } + server := httptest.NewServer(hf) + defer server.Close() + c := CaesarClient{Endpoint: server.URL} + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + r, err := c.EncodeMessage(strings.NewReader("secret message")) + if err == nil { + t.Errorf("should have gotten error") + } + if r != nil { + t.Errorf("should not have gotten a reader") + } + }) + } +} + +func TestEncode(t *testing.T) { + var hf http.HandlerFunc = func(w http.ResponseWriter, r *http.Request) { + w.Write([]byte("response")) + } + server := httptest.NewServer(hf) + defer server.Close() + c := CaesarClient{Endpoint: server.URL} + r, err := c.EncodeMessage(strings.NewReader("secret message")) + if err != nil { + t.Errorf("should not have gotten error: %v", err) + } + if r == nil { + t.Errorf("should have gotten a reader") + } + resp, err := ioutil.ReadAll(r) + if err != nil { + t.Fatalf("could not read message: %v", err) + } + if string(resp) != "response" { + t.Errorf("expected 'response' but got '%s'", resp) + } +} |