+++ /dev/null
-package data_test
-
-import (
- "encoding/json"
- "testing"
-
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
- data "github.com/tendermint/go-wire/data"
-)
-
-func TestSimpleJSON(t *testing.T) {
- assert, require := assert.New(t), require.New(t)
-
- cases := []struct {
- foo Fooer
- }{
- {foo: Bar{Name: "Fly"}},
- {foo: Baz{Name: "For Bar"}},
- }
-
- for _, tc := range cases {
- assert.NotEmpty(tc.foo.Foo())
- wrap := FooerS{tc.foo}
- parsed := FooerS{}
- d, err := json.Marshal(wrap)
- require.Nil(err, "%+v", err)
- err = json.Unmarshal(d, &parsed)
- require.Nil(err, "%+v", err)
- assert.Equal(tc.foo.Foo(), parsed.Foo())
- }
-}
-
-func TestNestedJSON(t *testing.T) {
- assert, require := assert.New(t), require.New(t)
-
- cases := []struct {
- expected string
- foo Fooer
- }{
- {"Bar Fly", Bar{Name: "Fly"}},
- {"Foz Baz", Baz{Name: "For Bar"}},
- {"My: Bar None", Nested{"My", FooerS{Bar{"None"}}}},
- }
-
- for _, tc := range cases {
- assert.Equal(tc.expected, tc.foo.Foo())
- wrap := FooerS{tc.foo}
- parsed := FooerS{}
- // also works with indentation
- d, err := data.ToJSON(wrap)
- require.Nil(err, "%+v", err)
- err = json.Unmarshal(d, &parsed)
- require.Nil(err, "%+v", err)
- assert.Equal(tc.expected, parsed.Foo())
- }
-}