2013-12-23 23:45:18 +00:00
|
|
|
package namesgenerator
|
|
|
|
|
|
|
|
import (
|
2015-07-21 14:06:31 +00:00
|
|
|
"strings"
|
2013-12-23 23:45:18 +00:00
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
|
|
|
// Make sure the generated names are awesome
|
|
|
|
func TestGenerateAwesomeNames(t *testing.T) {
|
2014-05-24 00:51:16 +00:00
|
|
|
name := GetRandomName(0)
|
2013-12-23 23:45:18 +00:00
|
|
|
if !isAwesome(name) {
|
|
|
|
t.Fatalf("Generated name '%s' is not awesome.", name)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-07-21 14:06:31 +00:00
|
|
|
func TestNameFormat(t *testing.T) {
|
|
|
|
name := GetRandomName(0)
|
|
|
|
if !strings.Contains(name, "_") {
|
|
|
|
t.Fatalf("Generated name does not contain an underscore")
|
|
|
|
}
|
|
|
|
if strings.ContainsAny(name, "0123456789") {
|
|
|
|
t.Fatalf("Generated name contains numbers!")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestNameRetries(t *testing.T) {
|
|
|
|
name := GetRandomName(1)
|
|
|
|
if !strings.Contains(name, "_") {
|
|
|
|
t.Fatalf("Generated name does not contain an underscore")
|
|
|
|
}
|
|
|
|
if !strings.ContainsAny(name, "0123456789") {
|
|
|
|
t.Fatalf("Generated name doesn't contain a number")
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2013-12-23 23:45:18 +00:00
|
|
|
// To be awesome, a container name must involve cool inventors, be easy to remember,
|
|
|
|
// be at least mildly funny, and always be politically correct for enterprise adoption.
|
|
|
|
func isAwesome(name string) bool {
|
|
|
|
coolInventorNames := true
|
|
|
|
easyToRemember := true
|
|
|
|
mildlyFunnyOnOccasion := true
|
|
|
|
politicallyCorrect := true
|
|
|
|
return coolInventorNames && easyToRemember && mildlyFunnyOnOccasion && politicallyCorrect
|
|
|
|
}
|