diff --git a/serial_test.go b/serial_test.go new file mode 100644 index 0000000..9620d6a --- /dev/null +++ b/serial_test.go @@ -0,0 +1,39 @@ +package serial + +import ( + "bytes" + "testing" +) + +type t1 struct { + FieldA string `json:"field_a" group:"group_1"` + FieldB int `json:"field_b" group:"group_2"` + FieldC bool `json:"field_c" group:"group_1"` + FieldD t2 `json:"field_d" group:"group_2,group_1"` +} +type t2 struct { + FieldA string `json:"field_a" group:"group_2"` + FieldB int `json:"field_b" group:"group_2,group_1"` + FieldC bool `json:"field_c" group:"group_2"` + FieldD float64 `json:"field_d" group:"group_1"` +} + +func TestSerialize(t *testing.T) { + o1 := t1{ + FieldA: "foo", + FieldB: 123, + FieldC: true, + FieldD: t2{FieldA: "bar", FieldB: 321, FieldC: false, FieldD: 123.2121}, + } + result := bytes.NewBuffer([]byte{}) + if err := NewEncoder(result).AddGroup("group_1").Encode(o1); err != nil { + t.Error(err) + } + expected := `{"field_a":"foo","field_c":true,"field_d":{"field_b":321,"field_d":123.2121}}` + if result.String() != expected { + t.Errorf("Expected: %s got %s", expected, result.String()) + } +} + +func TestDeserialize(t *testing.T) { +}