Newer
Older
package api
import (
"net/http"
"testing"
)
var testMember = struct {
Member
Password string `json:"password"`
}{
Member: Member{
Num: 10,
Name: "foo",
Email: "foo@example.com",
Role: "admin",
Balance: 10000,
},
Password: "password",
tapi := newTestAPI(t)
defer tapi.close()
if resp.StatusCode != http.StatusOK {
t.Fatal("Can't get members:", resp.Status)
}
if len(members) != 1 {
t.Fatal("Wrong number of members", len(members), members)
}
if members[0].Name != "foo" {
t.Error("Wrong name:", members[0].Name)
}
if members[0].Email != "foo@example.com" {
t.Error("Wrong email:", members[0].Email)
}
}
tapi := newTestAPI(t)
defer tapi.close()
resp := tapi.do("GET", "/member/10", nil, nil)
if resp.StatusCode != http.StatusNotFound {
t.Error("Expected not found:", resp.Status, resp.Body)
}
var gotMember Member
resp = tapi.do("GET", "/member/10", nil, &gotMember)
if resp.StatusCode != http.StatusOK {
t.Error("Can't find the member:", resp.Status)
}
if gotMember.Num != 10 {
t.Error("Wrong member:", gotMember.Num)
}
resp = tapi.do("DELETE", "/member/10", nil, nil)
if resp.StatusCode != http.StatusOK {
t.Error("Can't find the member:", resp.Status)
}
resp = tapi.do("GET", "/member/10", nil, nil)
if resp.StatusCode != http.StatusNotFound {
t.Error("Expected not found after delete:", resp.Status, resp.Body)
}
tapi := newTestAPI(t)
defer tapi.close()
if resp.StatusCode != http.StatusAccepted {
t.Fatal("Can't update member:", resp.Status)
}
var gotMember Member
resp = tapi.do("GET", "/member/10", nil, &gotMember)
if resp.StatusCode != http.StatusOK {
t.Error("Can't find the member:", resp.Status)
}
if gotMember.Balance != 1000 {
t.Error("Wrong balance:", gotMember)
}
}