| package structs |
| |
| import "testing" |
| |
| func TestParseTag_Name(t *testing.T) { |
| tags := []struct { |
| tag string |
| has bool |
| }{ |
| {"", false}, |
| {"name", true}, |
| {"name,opt", true}, |
| {"name , opt, opt2", false}, // has a single whitespace |
| {", opt, opt2", false}, |
| } |
| |
| for _, tag := range tags { |
| name, _ := parseTag(tag.tag) |
| |
| if (name != "name") && tag.has { |
| t.Errorf("Parse tag should return name: %#v", tag) |
| } |
| } |
| } |
| |
| func TestParseTag_Opts(t *testing.T) { |
| tags := []struct { |
| opts string |
| has bool |
| }{ |
| {"name", false}, |
| {"name,opt", true}, |
| {"name , opt, opt2", false}, // has a single whitespace |
| {",opt, opt2", true}, |
| {", opt3, opt4", false}, |
| } |
| |
| // search for "opt" |
| for _, tag := range tags { |
| _, opts := parseTag(tag.opts) |
| |
| if opts.Has("opt") != tag.has { |
| t.Errorf("Tag opts should have opt: %#v", tag) |
| } |
| } |
| } |