package utils import ( "encoding/json" "testing" ) type sampleStructure struct { ImportantString string `json:"important_string"` } func Test_GolangJSONEncoder(t *testing.T) { t.Parallel() var ( ss = &sampleStructure{ ImportantString: "Hello World", } importantString = `{"important_string":"Hello World"}` jsonEncoder JSONMarshal = json.Marshal ) raw, err := jsonEncoder(ss) AssertEqual(t, err, nil) AssertEqual(t, string(raw), importantString) } func Test_DefaultJSONEncoder(t *testing.T) { t.Parallel() var ( ss = &sampleStructure{ ImportantString: "Hello World", } importantString = `{"important_string":"Hello World"}` jsonEncoder JSONMarshal = json.Marshal ) raw, err := jsonEncoder(ss) AssertEqual(t, err, nil) AssertEqual(t, string(raw), importantString) } func Test_DefaultJSONDecoder(t *testing.T) { t.Parallel() var ( ss sampleStructure importantString = []byte(`{"important_string":"Hello World"}`) jsonDecoder JSONUnmarshal = json.Unmarshal ) err := jsonDecoder(importantString, &ss) AssertEqual(t, err, nil) AssertEqual(t, "Hello World", ss.ImportantString) }