Commit feca17c

mo khan <mo.khan@gmail.com>
2019-10-19 22:16:42
extract greeting prefix function
1 parent fc4bba1
Changed files (2)
hello.go
@@ -2,15 +2,32 @@ package main
 
 import "fmt"
 
+const spanish = "Spanish"
+const french = "French"
 const englishHelloPrefix = "Hello, "
+const spanishHelloPrefix = "Hola, "
+const frenchHelloPrefix = "Bonjour, "
 
-func Hello(name string) string {
+func Hello(name string, language string) string {
   if name == "" {
     name = "World"
   }
-  return englishHelloPrefix + name
+
+  return greetingPrefix(language) + name
+}
+
+func greetingPrefix(language string) (prefix string) {
+  switch language {
+  case french:
+    prefix = frenchHelloPrefix
+  case spanish:
+    prefix = spanishHelloPrefix
+  default:
+    prefix = englishHelloPrefix
+  }
+  return
 }
 
 func main() {
-  fmt.Println(Hello("world"))
+  fmt.Println(Hello("world", ""))
 }
hello_test.go
@@ -11,16 +11,28 @@ func TestHello(t *testing.T) {
   }
 
   t.Run("saying hello to people", func(t *testing.T) {
-    got := Hello("mo")
+    got := Hello("mo", "")
     want := "Hello, mo"
 
     assertCorrectMessage(t, got, want)
   })
 
   t.Run("say 'Hello, World' when an empty string is supplied", func(t *testing.T) {
-    got := Hello("")
+    got := Hello("", "")
     want := "Hello, World"
 
     assertCorrectMessage(t, got, want)
   })
+
+  t.Run("in Spanish", func(t *testing.T) {
+    got := Hello("Elodie", "Spanish")
+    want := "Hola, Elodie"
+    assertCorrectMessage(t, got, want)
+  })
+
+  t.Run("in French", func(t *testing.T) {
+    got := Hello("Elodie", "French")
+    want := "Bonjour, Elodie"
+    assertCorrectMessage(t, got, want)
+  })
 }