blob: 64141c18edd3a10fd1fd398563797be412e4a892 [file] [log] [blame]
package pretty
import (
"fmt"
"testing"
)
type test struct {
v interface{}
s string
}
type LongStructTypeName struct {
longFieldName interface{}
otherLongFieldName interface{}
}
type T struct {
x, y int
}
var long = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
var gosyntax = []test{
{1, "1"},
{long, `"`+long[:50]+"\" +\n\""+long[50:]+`"`},
{
LongStructTypeName{
longFieldName: LongStructTypeName{
},
otherLongFieldName: long,
},
`pretty.LongStructTypeName{
longFieldName: pretty.LongStructTypeName{},
otherLongFieldName: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP" +
"QRSTUVWXYZ0123456789",
}`,
},
{
[]LongStructTypeName{
{nil, nil},
{3, 3},
{long, nil},
},
`[]pretty.LongStructTypeName{
{},
{longFieldName:3, otherLongFieldName:3},
{
longFieldName: "abcdefghijklmnopqrstuvwxyzABCDEFGH" +
"IJKLMNOPQRSTUVWXYZ0123456789",
otherLongFieldName: <nil>,
},
}`,
},
{
[]interface{}{
LongStructTypeName{nil, nil},
[]byte{1, 2, 3},
T{3, 4},
LongStructTypeName{long, nil},
},
`[]interface { }{
pretty.LongStructTypeName{},
[]byte{0x1, 0x2, 0x3},
pretty.T{x:3, y:4},
pretty.LongStructTypeName{
longFieldName: "abcdefghijklmnopqrstuvwxyzABCDEFGH" +
"IJKLMNOPQRSTUVWXYZ0123456789",
otherLongFieldName: <nil>,
},
}`,
},
}
func TestGoSyntax(t *testing.T) {
for _, tt := range gosyntax {
s := fmt.Sprintf("%# v", Formatter(tt.v))
if tt.s != s {
t.Errorf("expected %q\n", tt.s)
t.Errorf("got %q\n", s)
t.Errorf("expraw %s\n", tt.s)
t.Errorf("gotraw %s\n", s)
}
}
}