111 lines
3.6 KiB
Go
111 lines
3.6 KiB
Go
package converter
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestParseImporterOptions(t *testing.T) {
|
|
actualValue := ParseImporterOptions("payeeAsTag,memberAsTag")
|
|
expectedValue := TransactionDataImporterOptions{
|
|
payeeAsTag: true,
|
|
memberAsTag: true,
|
|
projectAsTag: false,
|
|
merchantAsTag: false,
|
|
}
|
|
assert.Equal(t, expectedValue, actualValue)
|
|
assert.Equal(t, true, actualValue.IsPayeeAsTag())
|
|
assert.Equal(t, true, actualValue.IsMemberAsTag())
|
|
assert.Equal(t, false, actualValue.IsProjectAsTag())
|
|
assert.Equal(t, false, actualValue.IsMerchantAsTag())
|
|
|
|
actualValue = ParseImporterOptions("")
|
|
expectedValue = TransactionDataImporterOptions{
|
|
payeeAsTag: false,
|
|
memberAsTag: false,
|
|
projectAsTag: false,
|
|
merchantAsTag: false,
|
|
}
|
|
assert.Equal(t, expectedValue, actualValue)
|
|
assert.Equal(t, false, actualValue.IsPayeeAsTag())
|
|
assert.Equal(t, false, actualValue.IsMemberAsTag())
|
|
assert.Equal(t, false, actualValue.IsProjectAsTag())
|
|
assert.Equal(t, false, actualValue.IsMerchantAsTag())
|
|
}
|
|
|
|
func TestParseImporterOptions_WithAllOptions(t *testing.T) {
|
|
actualValue := ParseImporterOptions("payeeAsTag,payeeAsDescription,memberAsTag,projectAsTag,merchantAsTag")
|
|
expectedValue := TransactionDataImporterOptions{
|
|
payeeAsTag: true,
|
|
payeeAsDescription: true,
|
|
memberAsTag: true,
|
|
projectAsTag: true,
|
|
merchantAsTag: true,
|
|
}
|
|
assert.Equal(t, expectedValue, actualValue)
|
|
assert.Equal(t, true, actualValue.IsPayeeAsTag())
|
|
assert.Equal(t, true, actualValue.IsPayeeAsDescription())
|
|
assert.Equal(t, true, actualValue.IsMemberAsTag())
|
|
assert.Equal(t, true, actualValue.IsProjectAsTag())
|
|
assert.Equal(t, true, actualValue.IsMerchantAsTag())
|
|
}
|
|
|
|
func TestParseImporterOptions_WithInvalidOptions(t *testing.T) {
|
|
actualValue := ParseImporterOptions("invalidOption,payeeAsTag,memberAsTag")
|
|
expectedValue := TransactionDataImporterOptions{
|
|
payeeAsTag: true,
|
|
memberAsTag: true,
|
|
projectAsTag: false,
|
|
merchantAsTag: false,
|
|
}
|
|
assert.Equal(t, expectedValue, actualValue)
|
|
assert.Equal(t, true, actualValue.IsPayeeAsTag())
|
|
assert.Equal(t, true, actualValue.IsMemberAsTag())
|
|
assert.Equal(t, false, actualValue.IsProjectAsTag())
|
|
assert.Equal(t, false, actualValue.IsMerchantAsTag())
|
|
|
|
actualValue = ParseImporterOptions("invalidOption")
|
|
expectedValue = TransactionDataImporterOptions{
|
|
payeeAsTag: false,
|
|
memberAsTag: false,
|
|
projectAsTag: false,
|
|
merchantAsTag: false,
|
|
}
|
|
assert.Equal(t, expectedValue, actualValue)
|
|
assert.Equal(t, false, actualValue.IsPayeeAsTag())
|
|
assert.Equal(t, false, actualValue.IsMemberAsTag())
|
|
assert.Equal(t, false, actualValue.IsProjectAsTag())
|
|
assert.Equal(t, false, actualValue.IsMerchantAsTag())
|
|
}
|
|
|
|
func TestParseImporterOptions_Clone(t *testing.T) {
|
|
original := TransactionDataImporterOptions{
|
|
payeeAsTag: true,
|
|
payeeAsDescription: false,
|
|
memberAsTag: false,
|
|
projectAsTag: true,
|
|
merchantAsTag: false,
|
|
}
|
|
|
|
cloned := original.Clone()
|
|
assert.Equal(t, original, cloned)
|
|
|
|
// Modify cloned options and verify original options are not affected
|
|
cloned.payeeAsTag = false
|
|
cloned.payeeAsDescription = true
|
|
cloned.memberAsTag = true
|
|
|
|
assert.Equal(t, true, original.payeeAsTag)
|
|
assert.Equal(t, false, original.payeeAsDescription)
|
|
assert.Equal(t, false, original.memberAsTag)
|
|
assert.Equal(t, true, original.projectAsTag)
|
|
assert.Equal(t, false, original.merchantAsTag)
|
|
|
|
assert.Equal(t, false, cloned.payeeAsTag)
|
|
assert.Equal(t, true, cloned.payeeAsDescription)
|
|
assert.Equal(t, true, cloned.memberAsTag)
|
|
assert.Equal(t, true, cloned.projectAsTag)
|
|
assert.Equal(t, false, cloned.merchantAsTag)
|
|
}
|