2017-12-09 19:55:34 -05:00
|
|
|
package integration_test
|
2017-11-06 21:16:04 -05:00
|
|
|
|
|
|
|
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 := ""
|
2017-11-25 21:01:48 -05:00
|
|
|
for i := range accountids {
|
|
|
|
for j := range accountids {
|
2017-11-06 21:16:04 -05:00
|
|
|
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"},
|
2017-11-06 21:22:01 -05:00
|
|
|
{"Balance(2)", fmt.Sprintf("return get_accounts()[%d]:Balance(date.new(2017, 10, 30), date.new('2017-11-01')).Amount", id), "81.59"},
|
2017-11-06 21:16:04 -05:00
|
|
|
{"__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)},
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|