You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
1.5 KiB
107 lines
1.5 KiB
package namer |
|
|
|
import ( |
|
"testing" |
|
|
|
"go-common/app/tool/gengo/types" |
|
) |
|
|
|
func TestPluralNamer(t *testing.T) { |
|
exceptions := map[string]string{ |
|
// The type name is already in the plural form |
|
"Endpoints": "endpoints", |
|
} |
|
public := NewPublicPluralNamer(exceptions) |
|
private := NewPrivatePluralNamer(exceptions) |
|
|
|
cases := []struct { |
|
typeName string |
|
expectedPrivate string |
|
expectedPublic string |
|
}{ |
|
{ |
|
"I", |
|
"i", |
|
"I", |
|
}, |
|
{ |
|
"Pod", |
|
"pods", |
|
"Pods", |
|
}, |
|
{ |
|
"Entry", |
|
"entries", |
|
"Entries", |
|
}, |
|
{ |
|
"Endpoints", |
|
"endpoints", |
|
"Endpoints", |
|
}, |
|
{ |
|
"Bus", |
|
"buses", |
|
"Buses", |
|
}, |
|
{ |
|
"Fizz", |
|
"fizzes", |
|
"Fizzes", |
|
}, |
|
{ |
|
"Search", |
|
"searches", |
|
"Searches", |
|
}, |
|
{ |
|
"Autograph", |
|
"autographs", |
|
"Autographs", |
|
}, |
|
{ |
|
"Dispatch", |
|
"dispatches", |
|
"Dispatches", |
|
}, |
|
{ |
|
"Earth", |
|
"earths", |
|
"Earths", |
|
}, |
|
{ |
|
"City", |
|
"cities", |
|
"Cities", |
|
}, |
|
{ |
|
"Ray", |
|
"rays", |
|
"Rays", |
|
}, |
|
{ |
|
"Fountain", |
|
"fountains", |
|
"Fountains", |
|
}, |
|
{ |
|
"Life", |
|
"lives", |
|
"Lives", |
|
}, |
|
{ |
|
"Leaf", |
|
"leaves", |
|
"Leaves", |
|
}, |
|
} |
|
for _, c := range cases { |
|
testType := &types.Type{Name: types.Name{Name: c.typeName}} |
|
if e, a := c.expectedPrivate, private.Name(testType); e != a { |
|
t.Errorf("Unexpected result from private plural namer. Expected: %s, Got: %s", e, a) |
|
} |
|
if e, a := c.expectedPublic, public.Name(testType); e != a { |
|
t.Errorf("Unexpected result from public plural namer. Expected: %s, Got: %s", e, a) |
|
} |
|
} |
|
}
|
|
|