moneygo/internal/handlers/transactions_test.go

59 lines
1.6 KiB
Go
Raw Normal View History

2017-10-16 05:39:41 -04:00
package handlers_test
import (
"github.com/aclindsa/moneygo/internal/handlers"
"net/http"
"strconv"
"testing"
)
func createTransaction(client *http.Client, transaction *handlers.Transaction) (*handlers.Transaction, error) {
var s handlers.Transaction
err := create(client, transaction, &s, "/transaction/", "transaction")
return &s, err
}
func getTransaction(client *http.Client, transactionid int64) (*handlers.Transaction, error) {
var s handlers.Transaction
err := read(client, &s, "/transaction/"+strconv.FormatInt(transactionid, 10), "transaction")
if err != nil {
return nil, err
}
return &s, nil
}
func updateTransaction(client *http.Client, transaction *handlers.Transaction) (*handlers.Transaction, error) {
var s handlers.Transaction
err := update(client, transaction, &s, "/transaction/"+strconv.FormatInt(transaction.TransactionId, 10), "transaction")
if err != nil {
return nil, err
}
return &s, nil
}
func deleteTransaction(client *http.Client, s *handlers.Transaction) error {
err := remove(client, "/transaction/"+strconv.FormatInt(s.TransactionId, 10), "transaction")
if err != nil {
return err
}
return nil
}
func TestCreateTransaction(t *testing.T) {
RunWith(t, &data[0], func(t *testing.T, d *TestData) {
for i, orig := range data[0].transactions {
transaction := d.transactions[i]
if transaction.TransactionId == 0 {
t.Errorf("Unable to create transaction: %+v", transaction)
}
if transaction.Description != orig.Description {
t.Errorf("Description doesn't match")
}
if transaction.Date != orig.Date {
t.Errorf("Date doesn't match")
}
}
})
}