errors/format_test.go
Dave Cheney 874c0ec5b0 Reimplement Fprint in terms of fmt.Fprintf (#44)
This PR follows on from #40 completely implementing Fprint in terms of
fmt.Fprintf. This will be the final PR before Fprint is removed.
2016-06-10 08:39:59 +10:00

87 lines
1.5 KiB
Go

package errors
import (
"fmt"
"io"
"testing"
)
func TestFormat(t *testing.T) {
tests := []struct {
error
format string
want string
}{{
New("error"),
"%s",
"error",
}, {
New("error"),
"%v",
"error",
}, {
New("error"),
"%+v",
"github.com/pkg/errors/format_test.go:24: error",
}, {
Errorf("%s", "error"),
"%s",
"error",
}, {
Errorf("%s", "error"),
"%v",
"error",
}, {
Errorf("%s", "error"),
"%+v",
"github.com/pkg/errors/format_test.go:36: error",
}, {
Wrap(New("error"), "error2"),
"%s",
"error2: error",
}, {
Wrap(New("error"), "error2"),
"%v",
"error2: error",
}, {
Wrap(New("error"), "error2"),
"%+v",
"github.com/pkg/errors/format_test.go:48: error\n" +
"github.com/pkg/errors/format_test.go:48: error2",
}, {
Wrap(io.EOF, "error"),
"%s",
"error: EOF",
}, {
Wrapf(New("error"), "error%d", 2),
"%s",
"error2: error",
}, {
Wrap(io.EOF, "error"),
"%v",
"error: EOF",
}, {
Wrap(io.EOF, "error"),
"%+v",
"EOF\n" +
"github.com/pkg/errors/format_test.go:65: error",
}, {
Wrapf(New("error"), "error%d", 2),
"%v",
"error2: error",
}, {
Wrapf(New("error"), "error%d", 2),
"%+v",
"github.com/pkg/errors/format_test.go:74: error\n" +
"github.com/pkg/errors/format_test.go:74: error2",
}}
for _, tt := range tests {
got := fmt.Sprintf(tt.format, tt.error)
if got != tt.want {
t.Errorf("fmt.Sprintf(%q, err): got: %q, want: %q", tt.format, got, tt.want)
}
}
}