27 lines
679 B
Go
27 lines
679 B
Go
package main
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestPostgresFix(t *testing.T) {
|
|
type testCase struct{ input, want string }
|
|
|
|
cases := []testCase{
|
|
{`"a"`, `"a"`},
|
|
{`"\u0000"`, `"<0x00>"`},
|
|
{`"description":"\u0000"`, `"description":"<0x00>"`},
|
|
{`"\\u0000"`, `"\\u0000"`},
|
|
{`"\\\u0000"`, `"\\<0x00>"`},
|
|
{`\n\n\u0000\u0000 \u0000\u0000\u0000\u0000 \u0000\u0000\u0000\u0000\u0000`,
|
|
`\n\n<0x00><0x00> <0x00><0x00><0x00><0x00> <0x00><0x00><0x00><0x00><0x00>`},
|
|
}
|
|
|
|
for _, tc := range cases {
|
|
got := escapeNullCharForPostgres([]byte(tc.input))
|
|
if string(got) != tc.want {
|
|
t.Errorf("escapeNullCharForPostgres(%s) = %s, want %s", tc.input, string(got), tc.want)
|
|
}
|
|
}
|
|
}
|