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",
var testMemberAdmin = struct {
Member
Password string `json:"password"`
}{
Member: Member{
Num: 20,
Name: "bar",
Email: "bar@example.com",
Role: "admin",
Balance: 5000,
},
Password: "password",
}
tapi := newTestAPI(t)
defer tapi.close()
if resp.StatusCode != http.StatusOK {
t.Fatal("Can't get members:", resp.Status)
}
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()
if resp.StatusCode != http.StatusNotFound {
t.Error("Expected not found:", resp.Status, resp.Body)
}
resp = tapi.doAdmin("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)
}
if resp.StatusCode != http.StatusOK {
t.Error("Can't find the member:", resp.Status)
}
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.doAdmin("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)
}
}
resp := tapi.doAdmin("POST", "/member", testMember, nil)
if resp.StatusCode != http.StatusCreated {
tapi.t.Fatal("Can't create member:", resp.Status)
}
resp = tapi.doAdmin("POST", "/member", testMemberAdmin, nil)