forked from gookit/goutil
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathalias_test.go
46 lines (36 loc) · 1.1 KB
/
alias_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package structs_test
import (
"regexp"
"testing"
"github.com/gookit/goutil/structs"
"github.com/gookit/goutil/testutil/assert"
)
func TestAliases_AddAliases(t *testing.T) {
as := structs.Aliases{}
as.AddAlias("real", "a")
as.AddAliases("real", []string{"b"})
as.AddAliasMap(map[string]string{"a1": "real1"})
assert.True(t, as.HasAlias("a"))
assert.True(t, as.HasAlias("b"))
assert.True(t, as.HasAlias("a1"))
assert.False(t, as.HasAlias("xyz"))
assert.Eq(t, "real", as.ResolveAlias("a"))
assert.Eq(t, "real", as.ResolveAlias("b"))
assert.Eq(t, "real1", as.ResolveAlias("a1"))
assert.Eq(t, "notExist", as.ResolveAlias("notExist"))
assert.NotEmpty(t, as.Mapping())
assert.PanicsMsg(t, func() {
as.AddAlias("real3", "a")
}, "The alias 'a' is already used by 'real'")
}
func TestAliases_AddAlias(t *testing.T) {
as := structs.NewAliases(func(alias string) {
rg := regexp.MustCompile(`^[a-zA-Z][\w-]*$`)
if !rg.MatchString(alias) {
panic("alias must match: ^[a-zA-Z][\\w-]*$")
}
})
assert.PanicsMsg(t, func() {
as.AddAlias("real3", "a:b")
}, "alias must match: ^[a-zA-Z][\\w-]*$")
}