Files
go-utils/bank_card/validator_test.go
2023-10-17 23:06:53 +08:00

107 lines
2.2 KiB
Go

package bank_card
import (
"github.com/stretchr/testify/assert"
"testing"
)
func TestIsValidLuhn(t *testing.T) {
var validBankCards = []string{
"79927398713",
"6226095711989751",
"49927398716",
"1234567812345670",
"356938035643809",
"1111222233334444",
"374652346956782346957823694857692364857368475368",
"6228480402564890018",
"6228480402637874213",
"6228481552887309119",
"6228480801416266113",
"6228481698729890079",
"6222081106004039591",
}
var invalidBankCards = []string{
"49927398717",
"1234567812345678",
"314143525252",
"534618613411236",
"1234567879855431",
"374652346956782346957823694857692364857387456834",
"79927398710",
"79927398711",
"79927398711",
"79927398712",
"79927398714",
"79927398715",
"79927398716",
"79927398717",
"79927398718",
"79927398719",
"621661280000447287",
}
for _, w := range validBankCards {
t.Run("valid bank card: "+w, func(t *testing.T) {
assert.True(t, IsValidLuhn(w))
})
}
for _, w := range invalidBankCards {
t.Run("invalid bank card: "+w, func(t *testing.T) {
assert.False(t, IsValidLuhn(w))
})
}
}
func TestIsValidBankCardNo(t *testing.T) {
var validBankCards = []string{
"6226095711989751",
"6228480402564890018",
"6228480402637874213",
"6228481552887309119",
"6228480801416266113",
"6228481698729890079",
"6222081106004039591",
"1234567812345670",
"356938035643809",
"1111222233334444",
}
var invalidBankCards = []string{
"49927398717",
"1234567812345678",
"314143525252",
"534618613411236",
"1234567879855431",
"374652346956782346957823694857692364857387456834",
"79927398710",
"79927398711",
"79927398711",
"79927398712",
"79927398714",
"79927398715",
"79927398716",
"79927398717",
"79927398718",
"79927398719",
"621661280000447287",
"79927398713",
"49927398716",
"374652346956782346957823694857692364857368475368",
}
for _, w := range validBankCards {
t.Run("valid bank card: "+w, func(t *testing.T) {
assert.True(t, IsValidBankCardNo(w))
})
}
for _, w := range invalidBankCards {
t.Run("invalid bank card: "+w, func(t *testing.T) {
assert.False(t, IsValidBankCardNo(w))
})
}
}