package ofx import ( "testing" "github.com/stretchr/testify/assert" "github.com/mayswind/ezbookkeeping/pkg/core" ) func TestCreateNewOFXFileReader_OFX2(t *testing.T) { context := core.NewNullContext() reader, err := createNewOFXFileReader([]byte( "" + "" + "" + " " + " " + " " + " CNY" + " " + " 123" + " " + " " + " " + " DEP" + " 20240901012345.000[+8:CST]" + " 123.45" + " " + " " + " " + " " + " " + "")) assert.Nil(t, err) ofxFile, err := reader.read(context) assert.Nil(t, err) assert.NotNil(t, ofxFile) assert.NotNil(t, ofxFile.BankMessageResponseV1) assert.NotNil(t, ofxFile.BankMessageResponseV1.StatementTransactionResponse) assert.NotNil(t, ofxFile.BankMessageResponseV1.StatementTransactionResponse.StatementResponse) assert.Equal(t, "CNY", ofxFile.BankMessageResponseV1.StatementTransactionResponse.StatementResponse.DefaultCurrency) assert.NotNil(t, ofxFile.BankMessageResponseV1.StatementTransactionResponse.StatementResponse.AccountFrom) assert.Equal(t, "123", ofxFile.BankMessageResponseV1.StatementTransactionResponse.StatementResponse.AccountFrom.AccountId) assert.Equal(t, 1, len(ofxFile.BankMessageResponseV1.StatementTransactionResponse.StatementResponse.TransactionList.StatementTransactions)) assert.Equal(t, ofxDepositTransaction, ofxFile.BankMessageResponseV1.StatementTransactionResponse.StatementResponse.TransactionList.StatementTransactions[0].TransactionType) assert.Equal(t, "20240901012345.000[+8:CST]", ofxFile.BankMessageResponseV1.StatementTransactionResponse.StatementResponse.TransactionList.StatementTransactions[0].PostedDate) assert.Equal(t, "123.45", ofxFile.BankMessageResponseV1.StatementTransactionResponse.StatementResponse.TransactionList.StatementTransactions[0].Amount) } func TestCreateNewOFXFileReader_OFX2WithoutAnyHeader(t *testing.T) { context := core.NewNullContext() reader, err := createNewOFXFileReader([]byte( "" + " " + " " + " " + " CNY" + " " + " 123" + " " + " " + " " + " DEP" + " 20240901012345.000[+8:CST]" + " 123.45" + " " + " " + " " + " " + " " + "")) assert.Nil(t, err) ofxFile, err := reader.read(context) assert.Nil(t, err) assert.NotNil(t, ofxFile) assert.NotNil(t, ofxFile.BankMessageResponseV1) assert.NotNil(t, ofxFile.BankMessageResponseV1.StatementTransactionResponse) assert.NotNil(t, ofxFile.BankMessageResponseV1.StatementTransactionResponse.StatementResponse) assert.Equal(t, "CNY", ofxFile.BankMessageResponseV1.StatementTransactionResponse.StatementResponse.DefaultCurrency) assert.NotNil(t, ofxFile.BankMessageResponseV1.StatementTransactionResponse.StatementResponse.AccountFrom) assert.Equal(t, "123", ofxFile.BankMessageResponseV1.StatementTransactionResponse.StatementResponse.AccountFrom.AccountId) assert.Equal(t, 1, len(ofxFile.BankMessageResponseV1.StatementTransactionResponse.StatementResponse.TransactionList.StatementTransactions)) assert.Equal(t, ofxDepositTransaction, ofxFile.BankMessageResponseV1.StatementTransactionResponse.StatementResponse.TransactionList.StatementTransactions[0].TransactionType) assert.Equal(t, "20240901012345.000[+8:CST]", ofxFile.BankMessageResponseV1.StatementTransactionResponse.StatementResponse.TransactionList.StatementTransactions[0].PostedDate) assert.Equal(t, "123.45", ofxFile.BankMessageResponseV1.StatementTransactionResponse.StatementResponse.TransactionList.StatementTransactions[0].Amount) }