2017-11-01 21:03:07 -04:00
|
|
|
package handlers_test
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/aclindsa/moneygo/internal/handlers"
|
|
|
|
"net/http"
|
|
|
|
"strconv"
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
|
|
|
func createReport(client *http.Client, report *handlers.Report) (*handlers.Report, error) {
|
|
|
|
var r handlers.Report
|
|
|
|
err := create(client, report, &r, "/report/", "report")
|
|
|
|
return &r, err
|
|
|
|
}
|
|
|
|
|
|
|
|
func getReport(client *http.Client, reportid int64) (*handlers.Report, error) {
|
|
|
|
var r handlers.Report
|
|
|
|
err := read(client, &r, "/report/"+strconv.FormatInt(reportid, 10), "report")
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return &r, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func getReports(client *http.Client) (*handlers.ReportList, error) {
|
|
|
|
var rl handlers.ReportList
|
|
|
|
err := read(client, &rl, "/report/", "reports")
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return &rl, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func updateReport(client *http.Client, report *handlers.Report) (*handlers.Report, error) {
|
|
|
|
var r handlers.Report
|
|
|
|
err := update(client, report, &r, "/report/"+strconv.FormatInt(report.ReportId, 10), "report")
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return &r, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func deleteReport(client *http.Client, r *handlers.Report) error {
|
|
|
|
err := remove(client, "/report/"+strconv.FormatInt(r.ReportId, 10), "report")
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestCreateReport(t *testing.T) {
|
|
|
|
RunWith(t, &data[0], func(t *testing.T, d *TestData) {
|
|
|
|
for i := 1; i < len(data[0].reports); i++ {
|
|
|
|
orig := data[0].reports[i]
|
|
|
|
r := d.reports[i]
|
|
|
|
|
|
|
|
if r.ReportId == 0 {
|
|
|
|
t.Errorf("Unable to create report: %+v", r)
|
|
|
|
}
|
|
|
|
if r.Name != orig.Name {
|
|
|
|
t.Errorf("Name doesn't match")
|
|
|
|
}
|
|
|
|
if r.Lua != orig.Lua {
|
|
|
|
t.Errorf("Lua doesn't match")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
2017-11-02 21:20:43 -04:00
|
|
|
|
|
|
|
func TestGetReport(t *testing.T) {
|
|
|
|
RunWith(t, &data[0], func(t *testing.T, d *TestData) {
|
|
|
|
for i := 1; i < len(data[0].reports); i++ {
|
|
|
|
orig := data[0].reports[i]
|
|
|
|
curr := d.reports[i]
|
|
|
|
|
|
|
|
r, err := getReport(d.clients[orig.UserId], curr.ReportId)
|
|
|
|
if err != nil {
|
|
|
|
t.Fatalf("Error fetching reports: %s\n", err)
|
|
|
|
}
|
|
|
|
if r.Name != orig.Name {
|
|
|
|
t.Errorf("Name doesn't match")
|
|
|
|
}
|
|
|
|
if r.Lua != orig.Lua {
|
|
|
|
t.Errorf("Lua doesn't match")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestUpdateReport(t *testing.T) {
|
|
|
|
RunWith(t, &data[0], func(t *testing.T, d *TestData) {
|
|
|
|
for i := 1; i < len(data[0].reports); i++ {
|
|
|
|
orig := data[0].reports[i]
|
|
|
|
curr := d.reports[i]
|
|
|
|
|
|
|
|
curr.Name = "blah"
|
|
|
|
curr.Lua = "empty"
|
|
|
|
|
|
|
|
r, err := updateReport(d.clients[orig.UserId], &curr)
|
|
|
|
if err != nil {
|
|
|
|
t.Fatalf("Error updating report: %s\n", err)
|
|
|
|
}
|
|
|
|
|
|
|
|
if r.ReportId != curr.ReportId {
|
|
|
|
t.Errorf("ReportId doesn't match")
|
|
|
|
}
|
|
|
|
if r.Name != curr.Name {
|
|
|
|
t.Errorf("Name doesn't match")
|
|
|
|
}
|
|
|
|
if r.Lua != curr.Lua {
|
|
|
|
t.Errorf("Lua doesn't match")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestDeleteReport(t *testing.T) {
|
|
|
|
RunWith(t, &data[0], func(t *testing.T, d *TestData) {
|
|
|
|
for i := 1; i < len(data[0].reports); i++ {
|
|
|
|
orig := data[0].reports[i]
|
|
|
|
curr := d.reports[i]
|
|
|
|
|
|
|
|
err := deleteReport(d.clients[orig.UserId], &curr)
|
|
|
|
if err != nil {
|
|
|
|
t.Fatalf("Error deleting report: %s\n", err)
|
|
|
|
}
|
|
|
|
|
|
|
|
_, err = getReport(d.clients[orig.UserId], curr.ReportId)
|
|
|
|
if err == nil {
|
|
|
|
t.Fatalf("Expected error fetching deleted report")
|
|
|
|
}
|
|
|
|
if herr, ok := err.(*handlers.Error); ok {
|
|
|
|
if herr.ErrorId != 3 { // Invalid requeset
|
|
|
|
t.Fatalf("Unexpected API error fetching deleted report: %s", herr)
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
t.Fatalf("Unexpected error fetching deleted report")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|