mirror of
				https://github.com/aclindsa/moneygo.git
				synced 2025-11-04 02:23:26 -05:00 
			
		
		
		
	testing: Test Lua accounts
This commit is contained in:
		
							
								
								
									
										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)},
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user