mirror of
https://github.com/aclindsa/moneygo.git
synced 2024-10-31 16:00:05 -04:00
testing: Test Lua accounts
This commit is contained in:
parent
fb67ab586f
commit
985270f190
77
internal/handlers/accounts_lua_test.go
Normal file
77
internal/handlers/accounts_lua_test.go
Normal file
@ -0,0 +1,77 @@
|
||||
package handlers_test
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestLuaAccounts(t *testing.T) {
|
||||
RunWith(t, &data[0], func(t *testing.T, d *TestData) {
|
||||
accounts, err := getAccounts(d.clients[0])
|
||||
if err != nil {
|
||||
t.Fatalf("Error getting accounts: %s", err)
|
||||
}
|
||||
accountids := make(Int64Slice, len(*accounts.Accounts))
|
||||
for i, s := range *accounts.Accounts {
|
||||
accountids[i] = s.AccountId
|
||||
}
|
||||
accountids.Sort()
|
||||
|
||||
equalityString := ""
|
||||
for i, _ := range accountids {
|
||||
for j, _ := range accountids {
|
||||
if i == j {
|
||||
equalityString += "true"
|
||||
} else {
|
||||
equalityString += "false"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
id := d.accounts[3].AccountId
|
||||
simpleLuaTest(t, d.clients[0], []LuaTest{
|
||||
{"SecurityId", fmt.Sprintf("return get_accounts()[%d].SecurityId", id), strconv.FormatInt(d.accounts[3].SecurityId, 10)},
|
||||
{"Security", fmt.Sprintf("return get_accounts()[%d].Security.SecurityId", id), strconv.FormatInt(d.accounts[3].SecurityId, 10)},
|
||||
{"Parent", fmt.Sprintf("return get_accounts()[%d].Parent.AccountId", id), strconv.FormatInt(d.accounts[3].ParentAccountId, 10)},
|
||||
{"Name", fmt.Sprintf("return get_accounts()[%d].Name", id), d.accounts[3].Name},
|
||||
{"Type", fmt.Sprintf("return get_accounts()[%d].Type", id), strconv.FormatInt(int64(d.accounts[3].Type), 10)},
|
||||
{"TypeName", fmt.Sprintf("return get_accounts()[%d].TypeName", id), d.accounts[3].Type.String()},
|
||||
{"typename", fmt.Sprintf("return get_accounts()[%d].typename", id), strings.ToLower(d.accounts[3].Type.String())},
|
||||
{"Balance()", fmt.Sprintf("return get_accounts()[%d]:Balance().Amount", id), "87.19"},
|
||||
{"Balance(1)", fmt.Sprintf("return get_accounts()[%d]:Balance(date.new('2017-10-30')).Amount", id), "5.6"},
|
||||
{"Balance(2)", fmt.Sprintf("return get_accounts()[%d]:Balance(date.new('2017-10-30'), date.new('2017-11-01')).Amount", id), "81.59"},
|
||||
{"__tostring", fmt.Sprintf("return get_accounts()[%d]", id), "Expenses/Groceries"},
|
||||
{"__eq", `
|
||||
accounts = get_accounts()
|
||||
sorted = {}
|
||||
for id in pairs(accounts) do
|
||||
table.insert(sorted, id)
|
||||
end
|
||||
str = ""
|
||||
table.sort(sorted)
|
||||
for i,idi in ipairs(sorted) do
|
||||
for j,idj in ipairs(sorted) do
|
||||
if accounts[idi] == accounts[idj] then
|
||||
str = str .. "true"
|
||||
else
|
||||
str = str .. "false"
|
||||
end
|
||||
end
|
||||
end
|
||||
return str`, equalityString},
|
||||
{"get_accounts()", `
|
||||
sorted = {}
|
||||
for id in pairs(get_accounts()) do
|
||||
table.insert(sorted, id)
|
||||
end
|
||||
table.sort(sorted)
|
||||
str = "["
|
||||
for i,id in ipairs(sorted) do
|
||||
str = str .. id .. " "
|
||||
end
|
||||
return string.sub(str, 1, -2) .. "]"`, fmt.Sprint(accountids)},
|
||||
})
|
||||
})
|
||||
}
|
Loading…
Reference in New Issue
Block a user