From 98e3c6ebfd280225a3d442b0dbcc923dadfb279c Mon Sep 17 00:00:00 2001 From: MaysWind Date: Wed, 30 Oct 2024 00:30:52 +0800 Subject: [PATCH] add unit test --- ...transaction_data_csv_file_importer_test.go | 65 +++++++++++++++- ...transaction_data_csv_file_importer_test.go | 74 ++++++++++++++++++- 2 files changed, 136 insertions(+), 3 deletions(-) diff --git a/pkg/converters/alipay/alipay_transaction_data_csv_file_importer_test.go b/pkg/converters/alipay/alipay_transaction_data_csv_file_importer_test.go index 03ecb004..cb86551e 100644 --- a/pkg/converters/alipay/alipay_transaction_data_csv_file_importer_test.go +++ b/pkg/converters/alipay/alipay_transaction_data_csv_file_importer_test.go @@ -454,6 +454,70 @@ func TestAlipayCsvFileImporterParseImportedData_ParseDescription(t *testing.T) { assert.Equal(t, "test", allNewTransactions[0].Comment) } +func TestAlipayCsvFileImporterParseImportedData_SkipClosedIncomeOrTransferTransaction(t *testing.T) { + converter := AlipayWebTransactionDataCsvFileImporter + context := core.NewNullContext() + + user := &models.User{ + Uid: 1234567890, + DefaultCurrency: "CNY", + } + + data, err := simplifiedchinese.GB18030.NewEncoder().String("支付宝交易记录明细查询\n" + + "账号:[xxx@xxx.xxx]\n" + + "起始日期:[2024-01-01 00:00:00] 终止日期:[2024-09-01 23:59:59]\n" + + "---------------------------------交易记录明细列表------------------------------------\n" + + "交易创建时间 ,商品名称 ,金额(元),收/支 ,交易状态 ,\n" + + "2024-09-01 01:23:45 ,xxxx ,0.12 ,收入 ,交易关闭 ,\n" + + "2024-09-01 23:59:59 ,充值-普通充值 ,0.05 ,不计收支 ,交易关闭 ,\n" + + "------------------------------------------------------------------------------------\n") + assert.Nil(t, err) + _, _, _, _, _, _, err = converter.ParseImportedData(context, user, []byte(data), 0, nil, nil, nil, nil, nil) + assert.EqualError(t, err, errs.ErrNotFoundTransactionDataInFile.Message) +} + +func TestAlipayCsvFileImporterParseImportedData_SkipUnknownProductTransferTransaction(t *testing.T) { + converter := AlipayWebTransactionDataCsvFileImporter + context := core.NewNullContext() + + user := &models.User{ + Uid: 1234567890, + DefaultCurrency: "CNY", + } + + data, err := simplifiedchinese.GB18030.NewEncoder().String("支付宝交易记录明细查询\n" + + "账号:[xxx@xxx.xxx]\n" + + "起始日期:[2024-01-01 00:00:00] 终止日期:[2024-09-01 23:59:59]\n" + + "---------------------------------交易记录明细列表------------------------------------\n" + + "交易创建时间 ,商品名称 ,金额(元),收/支 ,交易状态 ,\n" + + "2024-09-01 23:59:59 ,xxxx ,0.05 ,不计收支 ,交易成功 ,\n" + + "------------------------------------------------------------------------------------\n") + assert.Nil(t, err) + _, _, _, _, _, _, err = converter.ParseImportedData(context, user, []byte(data), 0, nil, nil, nil, nil, nil) + assert.EqualError(t, err, errs.ErrNotFoundTransactionDataInFile.Message) +} + +func TestAlipayCsvFileImporterParseImportedData_SkipUnknownStatusTransaction(t *testing.T) { + converter := AlipayWebTransactionDataCsvFileImporter + context := core.NewNullContext() + + user := &models.User{ + Uid: 1234567890, + DefaultCurrency: "CNY", + } + + data, err := simplifiedchinese.GB18030.NewEncoder().String("支付宝交易记录明细查询\n" + + "账号:[xxx@xxx.xxx]\n" + + "起始日期:[2024-01-01 00:00:00] 终止日期:[2024-09-01 23:59:59]\n" + + "---------------------------------交易记录明细列表------------------------------------\n" + + "交易创建时间 ,商品名称 ,金额(元),收/支 ,交易状态 ,\n" + + "2024-09-01 01:23:45 ,xxxx ,0.12 ,收入 ,xxxx ,\n" + + "------------------------------------------------------------------------------------\n") + assert.Nil(t, err) + _, _, _, _, _, _, err = converter.ParseImportedData(context, user, []byte(data), 0, nil, nil, nil, nil, nil) + assert.EqualError(t, err, errs.ErrNotFoundTransactionDataInFile.Message) +} + func TestAlipayCsvFileImporterParseImportedData_MissingFileHeader(t *testing.T) { converter := AlipayWebTransactionDataCsvFileImporter context := core.NewNullContext() @@ -539,7 +603,6 @@ func TestAlipayCsvFileImporterParseImportedData_NoTransactionData(t *testing.T) DefaultCurrency: "CNY", } - // Missing Time Column data1, err := simplifiedchinese.GB18030.NewEncoder().String("支付宝交易记录明细查询\n" + "账号:[xxx@xxx.xxx]\n" + "起始日期:[2024-01-01 00:00:00] 终止日期:[2024-09-01 23:59:59]\n" + diff --git a/pkg/converters/wechat/wechat_pay_transaction_data_csv_file_importer_test.go b/pkg/converters/wechat/wechat_pay_transaction_data_csv_file_importer_test.go index 3728e695..f8913ca6 100644 --- a/pkg/converters/wechat/wechat_pay_transaction_data_csv_file_importer_test.go +++ b/pkg/converters/wechat/wechat_pay_transaction_data_csv_file_importer_test.go @@ -169,6 +169,26 @@ func TestWeChatPayCsvFileImporterParseImportedData_ParseInvalidType(t *testing.T assert.EqualError(t, err, errs.ErrNotFoundTransactionDataInFile.Message) } +func TestWeChatPayCsvFileImporterParseImportedData_ParseInvalidAmount(t *testing.T) { + converter := WeChatPayTransactionDataCsvFileImporter + context := core.NewNullContext() + + user := &models.User{ + Uid: 1234567890, + DefaultCurrency: "CNY", + } + + data := "微信支付账单明细,,,,\n" + + "微信昵称:[xxx],,,,\n" + + "起始时间:[2024-01-01 00:00:00] 终止时间:[2024-09-01 23:59:59],,,,\n" + + ",,,,\n" + + "----------------------微信支付账单明细列表--------------------,,,,\n" + + "交易时间,交易类型,收/支,金额(元),当前状态\n" + + "2024-09-01 01:23:45,二维码收款,收入,¥,已收钱\n" + _, _, _, _, _, _, err := converter.ParseImportedData(context, user, []byte(data), 0, nil, nil, nil, nil, nil) + assert.EqualError(t, err, errs.ErrAmountInvalid.Message) +} + func TestWeChatPayCsvFileImporterParseImportedData_ParseAccountName(t *testing.T) { converter := WeChatPayTransactionDataCsvFileImporter context := core.NewNullContext() @@ -270,11 +290,42 @@ func TestWeChatPayCsvFileImporterParseImportedData_ParseDescription(t *testing.T "起始时间:[2024-01-01 00:00:00] 终止时间:[2024-09-01 23:59:59],,,,\n" + ",,,,\n" + "----------------------微信支付账单明细列表--------------------,,,,\n" + - "交易时间,交易类型,收/支,金额(元),当前状态,备注\n" + - "2024-09-01 01:23:45,二维码收款,收入,¥0.12,已收钱,\"foo\"\"bar,\ntest\"\n" + "交易时间,交易类型,商品,收/支,金额(元),当前状态,备注\n" + + "2024-09-01 01:23:45,二维码收款,Test,收入,¥0.12,已收钱,\"foo\"\"bar,\ntest\"\n" allNewTransactions, _, _, _, _, _, err = converter.ParseImportedData(context, user, []byte(data2), 0, nil, nil, nil, nil, nil) assert.Equal(t, 1, len(allNewTransactions)) assert.Equal(t, "foo\"bar,\ntest", allNewTransactions[0].Comment) + + data3 := "微信支付账单明细,,,,\n" + + "微信昵称:[xxx],,,,\n" + + "起始时间:[2024-01-01 00:00:00] 终止时间:[2024-09-01 23:59:59],,,,\n" + + ",,,,\n" + + "----------------------微信支付账单明细列表--------------------,,,,\n" + + "交易时间,交易类型,商品,收/支,金额(元),当前状态,备注\n" + + "2024-09-01 01:23:45,二维码收款,Test,收入,¥0.12,已收钱,\"\"\n" + allNewTransactions, _, _, _, _, _, err = converter.ParseImportedData(context, user, []byte(data3), 0, nil, nil, nil, nil, nil) + assert.Equal(t, 1, len(allNewTransactions)) + assert.Equal(t, "Test", allNewTransactions[0].Comment) +} + +func TestWeChatPayCsvFileImporterParseImportedData_SkipUnknownTransferTransaction(t *testing.T) { + converter := WeChatPayTransactionDataCsvFileImporter + context := core.NewNullContext() + + user := &models.User{ + Uid: 1234567890, + DefaultCurrency: "CNY", + } + + data := "微信支付账单明细,,,,\n" + + "微信昵称:[xxx],,,,\n" + + "起始时间:[2024-01-01 00:00:00] 终止时间:[2024-09-01 23:59:59],,,,\n" + + ",,,,\n" + + "----------------------微信支付账单明细列表--------------------,,,,\n" + + "交易时间,交易类型,收/支,金额(元),当前状态\n" + + "2024-09-01 23:59:59,/,/,¥0.05,充值完成\n" + _, _, _, _, _, _, err := converter.ParseImportedData(context, user, []byte(data), 0, nil, nil, nil, nil, nil) + assert.EqualError(t, err, errs.ErrNotFoundTransactionDataInFile.Message) } func TestWeChatPayCsvFileImporterParseImportedData_MissingFileHeader(t *testing.T) { @@ -359,3 +410,22 @@ func TestWeChatPayCsvFileImporterParseImportedData_MissingRequiredColumn(t *test _, _, _, _, _, _, err = converter.ParseImportedData(context, user, []byte(data5), 0, nil, nil, nil, nil, nil) assert.EqualError(t, err, errs.ErrMissingRequiredFieldInHeaderRow.Message) } + +func TestWeChatPayCsvFileImporterParseImportedData_NoTransactionData(t *testing.T) { + converter := WeChatPayTransactionDataCsvFileImporter + context := core.NewNullContext() + + user := &models.User{ + Uid: 1234567890, + DefaultCurrency: "CNY", + } + + data := "微信支付账单明细,,,,\n" + + "微信昵称:[xxx],,,,\n" + + "起始时间:[2024-01-01 00:00:00] 终止时间:[2024-09-01 23:59:59],,,,\n" + + ",,,,\n" + + "----------------------微信支付账单明细列表--------------------,,,,\n" + + "交易时间,交易类型,收/支,金额(元),当前状态\n" + _, _, _, _, _, _, err := converter.ParseImportedData(context, user, []byte(data), 0, nil, nil, nil, nil, nil) + assert.EqualError(t, err, errs.ErrNotFoundTransactionDataInFile.Message) +}