testmarshal_test.go 598 B

12345678910111213141516171819202122232425262728293031
  1. package testjson
  2. import (
  3. "encoding/json"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. )
  7. func TestMarshal(t *testing.T) {
  8. type A struct {
  9. A string `json:"a"`
  10. AA string `json:"aa"`
  11. }
  12. type B struct {
  13. A // can't be A A, or A `json...`
  14. B string `json:"b"`
  15. }
  16. type C struct {
  17. A `json:"a"`
  18. C string `json:"c"`
  19. }
  20. a := A{A: "a", AA: "aa"}
  21. b := B{A: a, B: "b"}
  22. c := C{A: a, C: "c"}
  23. bstr, _ := json.Marshal(b)
  24. cstr, _ := json.Marshal(c)
  25. assert.Equal(t, `{"a":"a","aa":"aa","b":"b"}`, string(bstr))
  26. assert.Equal(t, `{"a":{"a":"a","aa":"aa"},"c":"c"}`, string(cstr))
  27. }