74 lines
1.7 KiB
Go
74 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
)
|
|
|
|
// TestGreetNoArguments tests the greeter's response when given no names.
|
|
func TestGreetNoArguments(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
buffer := new(bytes.Buffer)
|
|
args := make([]string, 0)
|
|
|
|
if err := greet(buffer, args); err != nil {
|
|
t.Fatalf("an error occurred while running greet(): %s", err)
|
|
}
|
|
|
|
want := "Hello, World!\n"
|
|
|
|
got := buffer.String()
|
|
|
|
if want != got {
|
|
t.Errorf("unexpected output returned from greet(): want '%s', got '%s'", want, got)
|
|
} else {
|
|
t.Logf("expected output returned from greet(): got '%s'", got)
|
|
}
|
|
}
|
|
|
|
// TestGreetOneArgument tests the greeter's response when given one name.
|
|
func TestGreetOneArgument(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
buffer := new(bytes.Buffer)
|
|
args := []string{"Sarah"}
|
|
|
|
if err := greet(buffer, args); err != nil {
|
|
t.Fatalf("an error occurred while running greet(): %s", err)
|
|
}
|
|
|
|
want := "Hello, Sarah!\n"
|
|
|
|
got := buffer.String()
|
|
|
|
if want != got {
|
|
t.Errorf("unexpected output returned from greet(): want '%s', got '%s'", want, got)
|
|
} else {
|
|
t.Logf("expected output returned from greet(): got '%s'", got)
|
|
}
|
|
}
|
|
|
|
// TestGreetTwoArguments tests the greeter's response when given two names.
|
|
func TestGreetTwoArguments(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
buffer := new(bytes.Buffer)
|
|
args := []string{"Bob", "John"}
|
|
|
|
err := greet(buffer, args)
|
|
|
|
if err == nil {
|
|
t.Error("unexpected nil error returned.")
|
|
}
|
|
|
|
want := "unexpected number of arguments passed to the greeter: want 0 or 1 argument, got 2"
|
|
|
|
got := err.Error()
|
|
|
|
if want != got {
|
|
t.Errorf("unexpected error message returned: want '%s', got '%s'", want, got)
|
|
} else {
|
|
t.Logf("expected error message returned: got '%s'", got)
|
|
}
|
|
}
|