mirror of
https://github.com/jhillyerd/inbucket.git
synced 2025-12-17 17:47:03 +00:00
rest: Rewrite client tests using httptest server.
This commit is contained in:
@@ -1,183 +1,259 @@
|
|||||||
package client
|
package client_test
|
||||||
|
|
||||||
import "testing"
|
import (
|
||||||
|
"github.com/gorilla/mux"
|
||||||
|
"net/http"
|
||||||
|
"net/http/httptest"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/jhillyerd/inbucket/pkg/rest/client"
|
||||||
|
)
|
||||||
|
|
||||||
func TestClientV1ListMailbox(t *testing.T) {
|
func TestClientV1ListMailbox(t *testing.T) {
|
||||||
var want, got string
|
// Setup.
|
||||||
|
c, router, teardown := setup()
|
||||||
|
defer teardown()
|
||||||
|
|
||||||
c, err := New(baseURLStr)
|
listHandler := &jsonHandler{json: `[
|
||||||
|
{
|
||||||
|
"mailbox": "testbox",
|
||||||
|
"id": "1",
|
||||||
|
"from": "fromuser",
|
||||||
|
"subject": "test subject",
|
||||||
|
"date": "2013-10-15T16:12:02.231532239-07:00",
|
||||||
|
"size": 264,
|
||||||
|
"seen": true
|
||||||
|
}
|
||||||
|
]`}
|
||||||
|
|
||||||
|
router.Path("/api/v1/mailbox/testbox").Methods("GET").Handler(listHandler)
|
||||||
|
|
||||||
|
// Method under test.
|
||||||
|
headers, err := c.ListMailbox("testbox")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
mth := &mockHTTPClient{}
|
|
||||||
c.client = mth
|
|
||||||
|
|
||||||
// Method under test
|
if len(headers) != 1 {
|
||||||
_, _ = c.ListMailbox("testbox")
|
t.Fatalf("Got %v headers, want 1", len(headers))
|
||||||
|
}
|
||||||
|
h := headers[0]
|
||||||
|
|
||||||
want = "GET"
|
got := h.Mailbox
|
||||||
got = mth.req.Method
|
want := "testbox"
|
||||||
if got != want {
|
if got != want {
|
||||||
t.Errorf("req.Method == %q, want %q", got, want)
|
t.Errorf("Mailbox got %q, want %q", got, want)
|
||||||
}
|
}
|
||||||
|
|
||||||
want = baseURLStr + "/api/v1/mailbox/testbox"
|
got = h.ID
|
||||||
got = mth.req.URL.String()
|
want = "1"
|
||||||
if got != want {
|
if got != want {
|
||||||
t.Errorf("req.URL == %q, want %q", got, want)
|
t.Errorf("ID got %q, want %q", got, want)
|
||||||
|
}
|
||||||
|
|
||||||
|
got = h.From
|
||||||
|
want = "fromuser"
|
||||||
|
if got != want {
|
||||||
|
t.Errorf("From got %q, want %q", got, want)
|
||||||
|
}
|
||||||
|
|
||||||
|
got = h.Subject
|
||||||
|
want = "test subject"
|
||||||
|
if got != want {
|
||||||
|
t.Errorf("Subject got %q, want %q", got, want)
|
||||||
|
}
|
||||||
|
|
||||||
|
gotTime := h.Date
|
||||||
|
wantTime := time.Date(2013, 10, 15, 16, 12, 02, 231532239, time.FixedZone("UTC-7", -7*60*60))
|
||||||
|
if !wantTime.Equal(gotTime) {
|
||||||
|
t.Errorf("Date got %v, want %v", gotTime, wantTime)
|
||||||
|
}
|
||||||
|
|
||||||
|
gotInt := h.Size
|
||||||
|
wantInt := int64(264)
|
||||||
|
if gotInt != wantInt {
|
||||||
|
t.Errorf("Size got %v, want %v", gotInt, wantInt)
|
||||||
|
}
|
||||||
|
|
||||||
|
wantBool := true
|
||||||
|
gotBool := h.Seen
|
||||||
|
if gotBool != wantBool {
|
||||||
|
t.Errorf("Seen got %v, want %v", gotBool, wantBool)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClientV1GetMessage(t *testing.T) {
|
func TestClientV1GetMessage(t *testing.T) {
|
||||||
var want, got string
|
// Setup.
|
||||||
|
c, router, teardown := setup()
|
||||||
|
defer teardown()
|
||||||
|
|
||||||
c, err := New(baseURLStr)
|
messageHandler := &jsonHandler{json: `{
|
||||||
|
"mailbox": "testbox",
|
||||||
|
"id": "20170107T224128-0000",
|
||||||
|
"from": "fromuser",
|
||||||
|
"subject": "test subject",
|
||||||
|
"date": "2013-10-15T16:12:02.231532239-07:00",
|
||||||
|
"size": 264,
|
||||||
|
"seen": true,
|
||||||
|
"body": {
|
||||||
|
"text": "Plain text",
|
||||||
|
"html": "<html>"
|
||||||
|
}
|
||||||
|
}`}
|
||||||
|
|
||||||
|
router.Path("/api/v1/mailbox/testbox/20170107T224128-0000").Methods("GET").Handler(messageHandler)
|
||||||
|
|
||||||
|
// Method under test.
|
||||||
|
m, err := c.GetMessage("testbox", "20170107T224128-0000")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
mth := &mockHTTPClient{}
|
if m == nil {
|
||||||
c.client = mth
|
t.Fatalf("message was nil, wanted a value")
|
||||||
|
|
||||||
// Method under test
|
|
||||||
_, _ = c.GetMessage("testbox", "20170107T224128-0000")
|
|
||||||
|
|
||||||
want = "GET"
|
|
||||||
got = mth.req.Method
|
|
||||||
if got != want {
|
|
||||||
t.Errorf("req.Method == %q, want %q", got, want)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
want = baseURLStr + "/api/v1/mailbox/testbox/20170107T224128-0000"
|
got := m.Mailbox
|
||||||
got = mth.req.URL.String()
|
want := "testbox"
|
||||||
if got != want {
|
if got != want {
|
||||||
t.Errorf("req.URL == %q, want %q", got, want)
|
t.Errorf("Mailbox got %q, want %q", got, want)
|
||||||
|
}
|
||||||
|
|
||||||
|
got = m.ID
|
||||||
|
want = "20170107T224128-0000"
|
||||||
|
if got != want {
|
||||||
|
t.Errorf("ID got %q, want %q", got, want)
|
||||||
|
}
|
||||||
|
|
||||||
|
got = m.From
|
||||||
|
want = "fromuser"
|
||||||
|
if got != want {
|
||||||
|
t.Errorf("From got %q, want %q", got, want)
|
||||||
|
}
|
||||||
|
|
||||||
|
got = m.Subject
|
||||||
|
want = "test subject"
|
||||||
|
if got != want {
|
||||||
|
t.Errorf("Subject got %q, want %q", got, want)
|
||||||
|
}
|
||||||
|
|
||||||
|
gotTime := m.Date
|
||||||
|
wantTime := time.Date(2013, 10, 15, 16, 12, 02, 231532239, time.FixedZone("UTC-7", -7*60*60))
|
||||||
|
if !wantTime.Equal(gotTime) {
|
||||||
|
t.Errorf("Date got %v, want %v", gotTime, wantTime)
|
||||||
|
}
|
||||||
|
|
||||||
|
gotInt := m.Size
|
||||||
|
wantInt := int64(264)
|
||||||
|
if gotInt != wantInt {
|
||||||
|
t.Errorf("Size got %v, want %v", gotInt, wantInt)
|
||||||
|
}
|
||||||
|
|
||||||
|
gotBool := m.Seen
|
||||||
|
wantBool := true
|
||||||
|
if gotBool != wantBool {
|
||||||
|
t.Errorf("Seen got %v, want %v", gotBool, wantBool)
|
||||||
|
}
|
||||||
|
|
||||||
|
got = m.Body.Text
|
||||||
|
want = "Plain text"
|
||||||
|
if got != want {
|
||||||
|
t.Errorf("Body Text got %q, want %q", got, want)
|
||||||
|
}
|
||||||
|
|
||||||
|
got = m.Body.HTML
|
||||||
|
want = "<html>"
|
||||||
|
if got != want {
|
||||||
|
t.Errorf("Body HTML got %q, want %q", got, want)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClientV1MarkSeen(t *testing.T) {
|
func TestClientV1MarkSeen(t *testing.T) {
|
||||||
var want, got string
|
// Setup.
|
||||||
|
c, router, teardown := setup()
|
||||||
|
defer teardown()
|
||||||
|
|
||||||
c, err := New(baseURLStr)
|
handler := &jsonHandler{}
|
||||||
|
router.Path("/api/v1/mailbox/testbox/20170107T224128-0000").Methods("PATCH").
|
||||||
|
Handler(handler)
|
||||||
|
|
||||||
|
// Method under test.
|
||||||
|
err := c.MarkSeen("testbox", "20170107T224128-0000")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
mth := &mockHTTPClient{}
|
|
||||||
c.client = mth
|
|
||||||
|
|
||||||
// Method under test
|
if !handler.called {
|
||||||
_ = c.MarkSeen("testbox", "20170107T224128-0000")
|
t.Error("Wanted HTTP handler to be called, but it was not")
|
||||||
|
|
||||||
want = "PATCH"
|
|
||||||
got = mth.req.Method
|
|
||||||
if got != want {
|
|
||||||
t.Errorf("req.Method == %q, want %q", got, want)
|
|
||||||
}
|
|
||||||
|
|
||||||
want = baseURLStr + "/api/v1/mailbox/testbox/20170107T224128-0000"
|
|
||||||
got = mth.req.URL.String()
|
|
||||||
if got != want {
|
|
||||||
t.Errorf("req.URL == %q, want %q", got, want)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClientV1GetMessageSource(t *testing.T) {
|
func TestClientV1GetMessageSource(t *testing.T) {
|
||||||
var want, got string
|
// Setup.
|
||||||
|
c, router, teardown := setup()
|
||||||
|
defer teardown()
|
||||||
|
|
||||||
c, err := New(baseURLStr)
|
router.Path("/api/v1/mailbox/testbox/20170107T224128-0000/source").Methods("GET").
|
||||||
if err != nil {
|
Handler(&jsonHandler{json: `message source`})
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
mth := &mockHTTPClient{
|
|
||||||
body: "message source",
|
|
||||||
}
|
|
||||||
c.client = mth
|
|
||||||
|
|
||||||
// Method under test
|
// Method under test.
|
||||||
source, err := c.GetMessageSource("testbox", "20170107T224128-0000")
|
source, err := c.GetMessageSource("testbox", "20170107T224128-0000")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
want = "GET"
|
want := "message source"
|
||||||
got = mth.req.Method
|
got := source.String()
|
||||||
if got != want {
|
if got != want {
|
||||||
t.Errorf("req.Method == %q, want %q", got, want)
|
t.Errorf("Source got %q, want %q", got, want)
|
||||||
}
|
|
||||||
|
|
||||||
want = baseURLStr + "/api/v1/mailbox/testbox/20170107T224128-0000/source"
|
|
||||||
got = mth.req.URL.String()
|
|
||||||
if got != want {
|
|
||||||
t.Errorf("req.URL == %q, want %q", got, want)
|
|
||||||
}
|
|
||||||
|
|
||||||
want = "message source"
|
|
||||||
got = source.String()
|
|
||||||
if got != want {
|
|
||||||
t.Errorf("Source == %q, want: %q", got, want)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClientV1DeleteMessage(t *testing.T) {
|
func TestClientV1DeleteMessage(t *testing.T) {
|
||||||
var want, got string
|
// Setup.
|
||||||
|
c, router, teardown := setup()
|
||||||
|
defer teardown()
|
||||||
|
|
||||||
c, err := New(baseURLStr)
|
handler := &jsonHandler{}
|
||||||
if err != nil {
|
router.Path("/api/v1/mailbox/testbox/20170107T224128-0000").Methods("DELETE").
|
||||||
t.Fatal(err)
|
Handler(handler)
|
||||||
}
|
|
||||||
mth := &mockHTTPClient{}
|
|
||||||
c.client = mth
|
|
||||||
|
|
||||||
// Method under test
|
// Method under test.
|
||||||
err = c.DeleteMessage("testbox", "20170107T224128-0000")
|
err := c.DeleteMessage("testbox", "20170107T224128-0000")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
want = "DELETE"
|
if !handler.called {
|
||||||
got = mth.req.Method
|
t.Error("Wanted HTTP handler to be called, but it was not")
|
||||||
if got != want {
|
|
||||||
t.Errorf("req.Method == %q, want %q", got, want)
|
|
||||||
}
|
|
||||||
|
|
||||||
want = baseURLStr + "/api/v1/mailbox/testbox/20170107T224128-0000"
|
|
||||||
got = mth.req.URL.String()
|
|
||||||
if got != want {
|
|
||||||
t.Errorf("req.URL == %q, want %q", got, want)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClientV1PurgeMailbox(t *testing.T) {
|
func TestClientV1PurgeMailbox(t *testing.T) {
|
||||||
var want, got string
|
// Setup.
|
||||||
|
c, router, teardown := setup()
|
||||||
|
defer teardown()
|
||||||
|
|
||||||
c, err := New(baseURLStr)
|
handler := &jsonHandler{}
|
||||||
if err != nil {
|
router.Path("/api/v1/mailbox/testbox").Methods("DELETE").Handler(handler)
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
mth := &mockHTTPClient{}
|
|
||||||
c.client = mth
|
|
||||||
|
|
||||||
// Method under test
|
// Method under test.
|
||||||
err = c.PurgeMailbox("testbox")
|
err := c.PurgeMailbox("testbox")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
want = "DELETE"
|
if !handler.called {
|
||||||
got = mth.req.Method
|
t.Error("Wanted HTTP handler to be called, but it was not")
|
||||||
if got != want {
|
|
||||||
t.Errorf("req.Method == %q, want %q", got, want)
|
|
||||||
}
|
|
||||||
|
|
||||||
want = baseURLStr + "/api/v1/mailbox/testbox"
|
|
||||||
got = mth.req.URL.String()
|
|
||||||
if got != want {
|
|
||||||
t.Errorf("req.URL == %q, want %q", got, want)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClientV1MessageHeader(t *testing.T) {
|
func TestClientV1MessageHeader(t *testing.T) {
|
||||||
var want, got string
|
// Setup.
|
||||||
response := `[
|
c, router, teardown := setup()
|
||||||
|
defer teardown()
|
||||||
|
|
||||||
|
listHandler := &jsonHandler{json: `[
|
||||||
{
|
{
|
||||||
"mailbox":"mailbox1",
|
"mailbox":"mailbox1",
|
||||||
"id":"id1",
|
"id":"id1",
|
||||||
@@ -187,115 +263,52 @@ func TestClientV1MessageHeader(t *testing.T) {
|
|||||||
"size":100,
|
"size":100,
|
||||||
"seen":true
|
"seen":true
|
||||||
}
|
}
|
||||||
]`
|
]`}
|
||||||
|
router.Path("/api/v1/mailbox/testbox").Methods("GET").Handler(listHandler)
|
||||||
|
|
||||||
c, err := New(baseURLStr)
|
// Method under test.
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
mth := &mockHTTPClient{body: response}
|
|
||||||
c.client = mth
|
|
||||||
|
|
||||||
// Method under test
|
|
||||||
headers, err := c.ListMailbox("testbox")
|
headers, err := c.ListMailbox("testbox")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
want = "GET"
|
|
||||||
got = mth.req.Method
|
|
||||||
if got != want {
|
|
||||||
t.Errorf("req.Method == %q, want %q", got, want)
|
|
||||||
}
|
|
||||||
|
|
||||||
want = baseURLStr + "/api/v1/mailbox/testbox"
|
|
||||||
got = mth.req.URL.String()
|
|
||||||
if got != want {
|
|
||||||
t.Errorf("req.URL == %q, want %q", got, want)
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(headers) != 1 {
|
if len(headers) != 1 {
|
||||||
t.Fatalf("len(headers) == %v, want 1", len(headers))
|
t.Fatalf("len(headers) == %v, want 1", len(headers))
|
||||||
}
|
}
|
||||||
header := headers[0]
|
header := headers[0]
|
||||||
|
|
||||||
want = "mailbox1"
|
// Test MessageHeader.Delete().
|
||||||
got = header.Mailbox
|
handler := &jsonHandler{}
|
||||||
if got != want {
|
router.Path("/api/v1/mailbox/mailbox1/id1").Methods("DELETE").Handler(handler)
|
||||||
t.Errorf("Mailbox == %q, want %q", got, want)
|
|
||||||
}
|
|
||||||
|
|
||||||
want = "id1"
|
|
||||||
got = header.ID
|
|
||||||
if got != want {
|
|
||||||
t.Errorf("ID == %q, want %q", got, want)
|
|
||||||
}
|
|
||||||
|
|
||||||
want = "from1"
|
|
||||||
got = header.From
|
|
||||||
if got != want {
|
|
||||||
t.Errorf("From == %q, want %q", got, want)
|
|
||||||
}
|
|
||||||
|
|
||||||
want = "subject1"
|
|
||||||
got = header.Subject
|
|
||||||
if got != want {
|
|
||||||
t.Errorf("Subject == %q, want %q", got, want)
|
|
||||||
}
|
|
||||||
|
|
||||||
wantb := true
|
|
||||||
gotb := header.Seen
|
|
||||||
if gotb != wantb {
|
|
||||||
t.Errorf("Seen == %v, want %v", gotb, wantb)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Test MessageHeader.Delete()
|
|
||||||
mth.body = ""
|
|
||||||
err = header.Delete()
|
err = header.Delete()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
want = "DELETE"
|
// Test MessageHeader.GetSource().
|
||||||
got = mth.req.Method
|
router.Path("/api/v1/mailbox/mailbox1/id1/source").Methods("GET").
|
||||||
if got != want {
|
Handler(&jsonHandler{json: `source1`})
|
||||||
t.Errorf("req.Method == %q, want %q", got, want)
|
buf, err := header.GetSource()
|
||||||
}
|
|
||||||
|
|
||||||
want = baseURLStr + "/api/v1/mailbox/mailbox1/id1"
|
|
||||||
got = mth.req.URL.String()
|
|
||||||
if got != want {
|
|
||||||
t.Errorf("req.URL == %q, want %q", got, want)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Test MessageHeader.GetSource()
|
|
||||||
mth.body = "source1"
|
|
||||||
_, err = header.GetSource()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
want = "GET"
|
want := "source1"
|
||||||
got = mth.req.Method
|
got := buf.String()
|
||||||
if got != want {
|
if got != want {
|
||||||
t.Errorf("req.Method == %q, want %q", got, want)
|
t.Errorf("Got source %q, want %q", got, want)
|
||||||
}
|
}
|
||||||
|
|
||||||
want = baseURLStr + "/api/v1/mailbox/mailbox1/id1/source"
|
// Test MessageHeader.GetMessage().
|
||||||
got = mth.req.URL.String()
|
messageHandler := &jsonHandler{json: `{
|
||||||
if got != want {
|
|
||||||
t.Errorf("req.URL == %q, want %q", got, want)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Test MessageHeader.GetMessage()
|
|
||||||
mth.body = `{
|
|
||||||
"mailbox":"mailbox1",
|
"mailbox":"mailbox1",
|
||||||
"id":"id1",
|
"id":"id1",
|
||||||
"from":"from1",
|
"from":"from1",
|
||||||
"subject":"subject1",
|
"subject":"subject1",
|
||||||
"date":"2017-01-01T00:00:00.000-07:00",
|
"date":"2017-01-01T00:00:00.000-07:00",
|
||||||
"size":100
|
"size":100
|
||||||
}`
|
}`}
|
||||||
|
router.Path("/api/v1/mailbox/mailbox1/id1").Methods("GET").Handler(messageHandler)
|
||||||
message, err := header.GetMessage()
|
message, err := header.GetMessage()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -304,53 +317,45 @@ func TestClientV1MessageHeader(t *testing.T) {
|
|||||||
t.Fatalf("message was nil, wanted a value")
|
t.Fatalf("message was nil, wanted a value")
|
||||||
}
|
}
|
||||||
|
|
||||||
want = "GET"
|
// Test Message.Delete().
|
||||||
got = mth.req.Method
|
|
||||||
if got != want {
|
|
||||||
t.Errorf("req.Method == %q, want %q", got, want)
|
|
||||||
}
|
|
||||||
|
|
||||||
want = baseURLStr + "/api/v1/mailbox/mailbox1/id1"
|
|
||||||
got = mth.req.URL.String()
|
|
||||||
if got != want {
|
|
||||||
t.Errorf("req.URL == %q, want %q", got, want)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Test Message.Delete()
|
|
||||||
mth.body = ""
|
|
||||||
err = message.Delete()
|
err = message.Delete()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
want = "DELETE"
|
// Test Message.GetSource().
|
||||||
got = mth.req.Method
|
buf, err = message.GetSource()
|
||||||
if got != want {
|
|
||||||
t.Errorf("req.Method == %q, want %q", got, want)
|
|
||||||
}
|
|
||||||
|
|
||||||
want = baseURLStr + "/api/v1/mailbox/mailbox1/id1"
|
|
||||||
got = mth.req.URL.String()
|
|
||||||
if got != want {
|
|
||||||
t.Errorf("req.URL == %q, want %q", got, want)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Test MessageHeader.GetSource()
|
|
||||||
mth.body = "source1"
|
|
||||||
_, err = message.GetSource()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
want = "GET"
|
want = "source1"
|
||||||
got = mth.req.Method
|
got = buf.String()
|
||||||
if got != want {
|
if got != want {
|
||||||
t.Errorf("req.Method == %q, want %q", got, want)
|
t.Errorf("Got source %q, want %q", got, want)
|
||||||
}
|
|
||||||
|
|
||||||
want = baseURLStr + "/api/v1/mailbox/mailbox1/id1/source"
|
|
||||||
got = mth.req.URL.String()
|
|
||||||
if got != want {
|
|
||||||
t.Errorf("req.URL == %q, want %q", got, want)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// setup returns a client, router and server for API testing.
|
||||||
|
func setup() (c *client.Client, router *mux.Router, teardown func()) {
|
||||||
|
router = mux.NewRouter()
|
||||||
|
server := httptest.NewServer(router)
|
||||||
|
c, err := client.New(server.URL)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
return c, router, func() {
|
||||||
|
server.Close()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// jsonHandler returns the string in json when servicing a request.
|
||||||
|
type jsonHandler struct {
|
||||||
|
json string
|
||||||
|
called bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func (j *jsonHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
|
j.called = true
|
||||||
|
w.Write([]byte(j.json))
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user