From 9f04d9dc535012fd6b9e106a72ddb5e914ab4008 Mon Sep 17 00:00:00 2001 From: Mark Turner Date: Sun, 27 Apr 2014 13:27:37 -0600 Subject: [PATCH] + Adding support for generating random domains. You can now call `fake.Domain()` to get a fake domain. --- company.go | 25 +++++++++++++++++++++++-- fake_test.go | 18 ++++++++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/company.go b/company.go index f5fec00..44065a2 100644 --- a/company.go +++ b/company.go @@ -1,6 +1,10 @@ package fake -import "fmt" +import ( + "fmt" + "regexp" + "strings" +) var ( COMPANY_NAMES = []string{"CHOAM", "Acme", "Sirius Cybernetics", "Mom", "Rich", @@ -13,10 +17,27 @@ var ( companySuffixes = []string{"Corp.", "Industries", "Enterprises", "Inc", "LLC", "and Sons", "Group", "Ltd", "GmbH", } + + domainTLDs = []string{"net", "org", "com", "io"} ) -// Returns a random company name. +// Company returns a random company name. func Company() (company string) { company = fmt.Sprintf("%s %s", randomString(COMPANY_NAMES), randomString(companySuffixes)) return } + + +// Domain returns a random domain name composed of a random company name, and +// a random TLD. +func Domain() (company string) { + de := regexp.MustCompile("\\s|\\.") + company = fmt.Sprintf("%s.%s", + strings.ToLower(de.ReplaceAllLiteralString(Company(), "")), + randomTld()) + return +} + +func randomTld() string { + return randomString(domainTLDs) +} diff --git a/fake_test.go b/fake_test.go index da4abf2..27bca0f 100644 --- a/fake_test.go +++ b/fake_test.go @@ -3,6 +3,7 @@ package fake import ( "fmt" "testing" + "regexp" ) func TestFullName(t *testing.T) { @@ -28,6 +29,19 @@ func TestCompany(t *testing.T) { } } +func TestDomain(t *testing.T) { + domainRe := regexp.MustCompile("[a-zA-Z]+\\.[a-zA-Z]+$") + domain := "" + domain = Domain() + if domain == "" { + t.Errorf("Expected domain to return a domain, Got %s", domain) + } + + if !domainRe.MatchString(domain) { + t.Errorf("Expected domain to be a domain, Got %s", domain) + } +} + func ExampleUserF() { fmt.Println("Full Name", FullName()) fmt.Println("First Name", FirstName()) @@ -38,3 +52,7 @@ func ExampleUserF() { func ExampleCompany() { fmt.Println("Company", Company()) } + +func ExampleDomain() { + fmt.Println("Domain", Domain()) +}