From c44bf73b425d9f6019a7c9456434ff057f698931 Mon Sep 17 00:00:00 2001 From: MaysWind Date: Mon, 28 Oct 2024 22:59:46 +0800 Subject: [PATCH] add unit test --- ...ofx_transaction_data_file_importer_test.go | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 pkg/converters/ofx/ofx_transaction_data_file_importer_test.go diff --git a/pkg/converters/ofx/ofx_transaction_data_file_importer_test.go b/pkg/converters/ofx/ofx_transaction_data_file_importer_test.go new file mode 100644 index 00000000..24fcc3af --- /dev/null +++ b/pkg/converters/ofx/ofx_transaction_data_file_importer_test.go @@ -0,0 +1,102 @@ +package ofx + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/mayswind/ezbookkeeping/pkg/core" + "github.com/mayswind/ezbookkeeping/pkg/models" + "github.com/mayswind/ezbookkeeping/pkg/utils" +) + +func TestOFXTransactionDataFileParseImportedData_MinimumValidData(t *testing.T) { + converter := OFXTransactionDataImporter + context := core.NewNullContext() + + user := &models.User{ + Uid: 1234567890, + DefaultCurrency: "CNY", + } + + allNewTransactions, allNewAccounts, allNewSubExpenseCategories, allNewSubIncomeCategories, allNewSubTransferCategories, allNewTags, err := converter.ParseImportedData(context, user, []byte( + ""+ + " "+ + " "+ + " "+ + " CNY"+ + " "+ + " 123"+ + " "+ + " "+ + " "+ + " DEP"+ + " 20240901012345.000[+8:CST]"+ + " 123.45"+ + " "+ + " "+ + " CHECK"+ + " 20240901123456.000[+8:CST]"+ + " -0.12"+ + " "+ + " "+ + " XFER"+ + " 20240901235959.000[+8:CST]"+ + " -1.00"+ + " "+ + " "+ + " "+ + " "+ + " "+ + ""), 0, nil, nil, nil, nil, nil) + + assert.Nil(t, err) + + assert.Equal(t, 3, len(allNewTransactions)) + assert.Equal(t, 2, len(allNewAccounts)) + assert.Equal(t, 1, len(allNewSubExpenseCategories)) + assert.Equal(t, 1, len(allNewSubIncomeCategories)) + assert.Equal(t, 1, len(allNewSubTransferCategories)) + assert.Equal(t, 0, len(allNewTags)) + + assert.Equal(t, int64(1234567890), allNewTransactions[0].Uid) + assert.Equal(t, models.TRANSACTION_DB_TYPE_INCOME, allNewTransactions[0].Type) + assert.Equal(t, int64(1725125025), utils.GetUnixTimeFromTransactionTime(allNewTransactions[0].TransactionTime)) + assert.Equal(t, int64(12345), allNewTransactions[0].Amount) + assert.Equal(t, "123", allNewTransactions[0].OriginalSourceAccountName) + assert.Equal(t, "CNY", allNewTransactions[0].OriginalSourceAccountCurrency) + assert.Equal(t, "", allNewTransactions[0].OriginalCategoryName) + + assert.Equal(t, int64(1234567890), allNewTransactions[1].Uid) + assert.Equal(t, models.TRANSACTION_DB_TYPE_EXPENSE, allNewTransactions[1].Type) + assert.Equal(t, int64(1725165296), utils.GetUnixTimeFromTransactionTime(allNewTransactions[1].TransactionTime)) + assert.Equal(t, int64(12), allNewTransactions[1].Amount) + assert.Equal(t, "123", allNewTransactions[1].OriginalSourceAccountName) + assert.Equal(t, "CNY", allNewTransactions[1].OriginalSourceAccountCurrency) + assert.Equal(t, "", allNewTransactions[1].OriginalCategoryName) + + assert.Equal(t, int64(1234567890), allNewTransactions[2].Uid) + assert.Equal(t, models.TRANSACTION_DB_TYPE_TRANSFER_OUT, allNewTransactions[2].Type) + assert.Equal(t, int64(1725206399), utils.GetUnixTimeFromTransactionTime(allNewTransactions[2].TransactionTime)) + assert.Equal(t, int64(100), allNewTransactions[2].Amount) + assert.Equal(t, "123", allNewTransactions[2].OriginalSourceAccountName) + assert.Equal(t, "", allNewTransactions[2].OriginalDestinationAccountName) + assert.Equal(t, "", allNewTransactions[2].OriginalCategoryName) + + assert.Equal(t, int64(1234567890), allNewAccounts[0].Uid) + assert.Equal(t, "123", allNewAccounts[0].Name) + assert.Equal(t, "CNY", allNewAccounts[0].Currency) + + assert.Equal(t, int64(1234567890), allNewAccounts[1].Uid) + assert.Equal(t, "", allNewAccounts[1].Name) + assert.Equal(t, "CNY", allNewAccounts[1].Currency) + + assert.Equal(t, int64(1234567890), allNewSubExpenseCategories[0].Uid) + assert.Equal(t, "", allNewSubExpenseCategories[0].Name) + + assert.Equal(t, int64(1234567890), allNewSubIncomeCategories[0].Uid) + assert.Equal(t, "", allNewSubIncomeCategories[0].Name) + + assert.Equal(t, int64(1234567890), allNewSubTransferCategories[0].Uid) + assert.Equal(t, "", allNewSubTransferCategories[0].Name) +}