Commit feca17c
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)
+ })
}