Files
go-utils/bank_card/bank_card_test.go

130 lines
2.6 KiB
Go

package common
import (
"fmt"
"testing"
"github.com/stretchr/testify/assert"
)
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))
})
}
}
func TestGetNameOfBank(t *testing.T) {
var validBankCards = []string{
"6226095711989751",
"6228480402564890018",
"6228480402637874213",
"6228481552887309119",
"6228480801416266113",
"6228481698729890079",
"621661280000447287",
"6222081106004039591",
}
for _, w := range validBankCards {
t.Run("get bank card of name: "+w, func(t *testing.T) {
name := GetNameOfBank(w)
fmt.Println(w, name)
assert.True(t, len(name) > 0)
})
}
}