github.com/wuhuizuo/gomplate@v3.5.0+incompatible/funcs/uuid_test.go (about) 1 package funcs 2 3 import ( 4 "net/url" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 const ( 11 uuidV1Pattern = "^[[:xdigit:]]{8}-[[:xdigit:]]{4}-1[[:xdigit:]]{3}-[89ab][[:xdigit:]]{3}-[[:xdigit:]]{12}$" 12 uuidV4Pattern = "^[[:xdigit:]]{8}-[[:xdigit:]]{4}-4[[:xdigit:]]{3}-[89ab][[:xdigit:]]{3}-[[:xdigit:]]{12}$" 13 ) 14 15 func TestV1(t *testing.T) { 16 u := UUIDNS() 17 i, err := u.V1() 18 assert.NoError(t, err) 19 assert.Regexp(t, uuidV1Pattern, i) 20 } 21 22 func TestV4(t *testing.T) { 23 u := UUIDNS() 24 i, err := u.V4() 25 assert.NoError(t, err) 26 assert.Regexp(t, uuidV4Pattern, i) 27 } 28 29 func TestNil(t *testing.T) { 30 u := UUIDNS() 31 i, err := u.Nil() 32 assert.NoError(t, err) 33 assert.Equal(t, "00000000-0000-0000-0000-000000000000", i) 34 } 35 36 func TestIsValid(t *testing.T) { 37 u := UUIDNS() 38 in := interface{}(false) 39 i, err := u.IsValid(in) 40 assert.NoError(t, err) 41 assert.False(t, i) 42 43 in = 12345 44 i, err = u.IsValid(in) 45 assert.NoError(t, err) 46 assert.False(t, i) 47 48 testdata := []interface{}{ 49 "123456781234123412341234567890ab", 50 "12345678-1234-1234-1234-1234567890ab", 51 "urn:uuid:12345678-1234-1234-1234-1234567890ab", 52 "{12345678-1234-1234-1234-1234567890ab}", 53 } 54 55 for _, d := range testdata { 56 i, err = u.IsValid(d) 57 assert.NoError(t, err) 58 assert.True(t, i) 59 } 60 } 61 62 func TestParse(t *testing.T) { 63 u := UUIDNS() 64 in := interface{}(false) 65 _, err := u.Parse(in) 66 assert.Error(t, err) 67 68 in = 12345 69 _, err = u.Parse(in) 70 assert.Error(t, err) 71 72 in = "12345678-1234-1234-1234-1234567890ab" 73 testdata := []interface{}{ 74 "123456781234123412341234567890ab", 75 "12345678-1234-1234-1234-1234567890ab", 76 "urn:uuid:12345678-1234-1234-1234-1234567890ab", 77 must(url.Parse("urn:uuid:12345678-1234-1234-1234-1234567890ab")), 78 "{12345678-1234-1234-1234-1234567890ab}", 79 } 80 81 for _, d := range testdata { 82 uid, err := u.Parse(d) 83 assert.NoError(t, err) 84 assert.Equal(t, in, uid.String()) 85 } 86 }