1package name 2 3import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7) 8 9type tt struct { 10 act string 11 exp string 12} 13 14func Test_Name(t *testing.T) { 15 table := []tt{ 16 {"", ""}, 17 {"bob dylan", "BobDylan"}, 18 {"widgetID", "WidgetID"}, 19 {"widget_ID", "WidgetID"}, 20 {"Widget_ID", "WidgetID"}, 21 {"Widget_Id", "WidgetID"}, 22 {"Widget_id", "WidgetID"}, 23 {"Nice to see you today!", "NiceToSeeYouToday"}, 24 {"*hello*", "Hello"}, 25 {"i've read a book! have you read it?", "IveReadABookHaveYouReadIt"}, 26 {"This is `code` ok", "ThisIsCodeOK"}, 27 {"foo_bar", "FooBar"}, 28 {"admin/widget", "AdminWidget"}, 29 {"admin/widgets", "AdminWidget"}, 30 {"widget", "Widget"}, 31 {"widgets", "Widget"}, 32 {"status", "Status"}, 33 {"Statuses", "Status"}, 34 {"statuses", "Status"}, 35 {"People", "Person"}, 36 {"people", "Person"}, 37 } 38 39 for _, tt := range table { 40 t.Run(tt.act, func(st *testing.T) { 41 r := require.New(st) 42 r.Equal(tt.exp, Proper(tt.act)) 43 r.Equal(tt.exp, Proper(tt.exp)) 44 }) 45 } 46} 47 48func Test_Group(t *testing.T) { 49 table := []tt{ 50 {"", ""}, 51 {"Person", "People"}, 52 {"foo_bar", "FooBars"}, 53 {"admin/widget", "AdminWidgets"}, 54 {"widget", "Widgets"}, 55 {"widgets", "Widgets"}, 56 {"greatPerson", "GreatPeople"}, 57 {"great/person", "GreatPeople"}, 58 {"status", "Statuses"}, 59 {"Status", "Statuses"}, 60 {"Statuses", "Statuses"}, 61 {"statuses", "Statuses"}, 62 } 63 64 for _, tt := range table { 65 t.Run(tt.act, func(st *testing.T) { 66 r := require.New(st) 67 r.Equal(tt.exp, Group(tt.act)) 68 r.Equal(tt.exp, Group(tt.exp)) 69 }) 70 } 71} 72 73func Test_MarshalText(t *testing.T) { 74 r := require.New(t) 75 76 n := New("mark") 77 b, err := n.MarshalText() 78 r.NoError(err) 79 r.Equal("mark", string(b)) 80 81 r.NoError((&n).UnmarshalText([]byte("bates"))) 82 r.Equal("bates", n.String()) 83} 84