flatten_test.go 684 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package multierror
  2. import (
  3. "errors"
  4. "fmt"
  5. "reflect"
  6. "testing"
  7. )
  8. func TestFlatten(t *testing.T) {
  9. original := &Error{
  10. Errors: []error{
  11. errors.New("one"),
  12. &Error{
  13. Errors: []error{
  14. errors.New("two"),
  15. &Error{
  16. Errors: []error{
  17. errors.New("three"),
  18. },
  19. },
  20. },
  21. },
  22. },
  23. }
  24. expected := `3 errors occurred:
  25. * one
  26. * two
  27. * three
  28. `
  29. actual := fmt.Sprintf("%s", Flatten(original))
  30. if expected != actual {
  31. t.Fatalf("expected: %s, got: %s", expected, actual)
  32. }
  33. }
  34. func TestFlatten_nonError(t *testing.T) {
  35. err := errors.New("foo")
  36. actual := Flatten(err)
  37. if !reflect.DeepEqual(actual, err) {
  38. t.Fatalf("bad: %#v", actual)
  39. }
  40. }