package data import ( "encoding/json" "testing" . "gopkg.in/check.v1" ) // Hook up gocheck into the "go test" runner. func Test(t *testing.T) { TestingT(t) } type HexBytesSuite struct{} var _ = Suite(&HexBytesSuite{}) func (HexBytesSuite) TestUnmarshalJSON(c *C) { var data HexBytes err := json.Unmarshal([]byte(`"666f6f"`), &data) c.Assert(err, IsNil) c.Assert(string(data), Equals, "foo") } func (HexBytesSuite) TestUnmarshalJSONError(c *C) { var data HexBytes // uneven length err := json.Unmarshal([]byte(`"a"`), &data) c.Assert(err, Not(IsNil)) // invalid hex err = json.Unmarshal([]byte(`"zz"`), &data) c.Assert(err, Not(IsNil)) // wrong type err = json.Unmarshal([]byte("6"), &data) c.Assert(err, Not(IsNil)) } func (HexBytesSuite) TestMarshalJSON(c *C) { data, err := json.Marshal(HexBytes("foo")) c.Assert(err, IsNil) c.Assert(data, DeepEquals, []byte(`"666f6f"`)) }