123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- package namer
- import (
- "reflect"
- "testing"
- "go-common/app/tool/gengo/types"
- )
- func TestNameStrategy(t *testing.T) {
- u := types.Universe{}
- // Add some types.
- base := u.Type(types.Name{Package: "foo/bar", Name: "Baz"})
- base.Kind = types.Struct
- tmp := u.Type(types.Name{Package: "", Name: "[]bar.Baz"})
- tmp.Kind = types.Slice
- tmp.Elem = base
- tmp = u.Type(types.Name{Package: "", Name: "map[string]bar.Baz"})
- tmp.Kind = types.Map
- tmp.Key = types.String
- tmp.Elem = base
- tmp = u.Type(types.Name{Package: "foo/other", Name: "Baz"})
- tmp.Kind = types.Struct
- tmp.Members = []types.Member{{
- Embedded: true,
- Type: base,
- }}
- tmp = u.Type(types.Name{Package: "", Name: "chan Baz"})
- tmp.Kind = types.Chan
- tmp.Elem = base
- u.Type(types.Name{Package: "", Name: "string"})
- o := Orderer{NewPublicNamer(0)}
- order := o.OrderUniverse(u)
- orderedNames := make([]string, len(order))
- for i, t := range order {
- orderedNames[i] = o.Name(t)
- }
- expect := []string{"Baz", "Baz", "ChanBaz", "MapStringToBaz", "SliceBaz", "String"}
- if e, a := expect, orderedNames; !reflect.DeepEqual(e, a) {
- t.Errorf("Wanted %#v, got %#v", e, a)
- }
- o = Orderer{NewRawNamer("my/package", nil)}
- order = o.OrderUniverse(u)
- orderedNames = make([]string, len(order))
- for i, t := range order {
- orderedNames[i] = o.Name(t)
- }
- expect = []string{"[]bar.Baz", "bar.Baz", "chan bar.Baz", "map[string]bar.Baz", "other.Baz", "string"}
- if e, a := expect, orderedNames; !reflect.DeepEqual(e, a) {
- t.Errorf("Wanted %#v, got %#v", e, a)
- }
- o = Orderer{NewRawNamer("foo/bar", nil)}
- order = o.OrderUniverse(u)
- orderedNames = make([]string, len(order))
- for i, t := range order {
- orderedNames[i] = o.Name(t)
- }
- expect = []string{"Baz", "[]Baz", "chan Baz", "map[string]Baz", "other.Baz", "string"}
- if e, a := expect, orderedNames; !reflect.DeepEqual(e, a) {
- t.Errorf("Wanted %#v, got %#v", e, a)
- }
- o = Orderer{NewPublicNamer(1)}
- order = o.OrderUniverse(u)
- orderedNames = make([]string, len(order))
- for i, t := range order {
- orderedNames[i] = o.Name(t)
- }
- expect = []string{"BarBaz", "ChanBarBaz", "MapStringToBarBaz", "OtherBaz", "SliceBarBaz", "String"}
- if e, a := expect, orderedNames; !reflect.DeepEqual(e, a) {
- t.Errorf("Wanted %#v, got %#v", e, a)
- }
- }
|