json_test.go 801 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package common
  2. import (
  3. "encoding/json"
  4. "testing"
  5. "github.com/stretchr/testify/require"
  6. )
  7. func TestJsonRawMessageToString(t *testing.T) {
  8. tests := []struct {
  9. name string
  10. data json.RawMessage
  11. want string
  12. }{
  13. {
  14. name: "object",
  15. data: json.RawMessage(`{"city":"Paris","days":0,"strict":false}`),
  16. want: `{"city":"Paris","days":0,"strict":false}`,
  17. },
  18. {
  19. name: "string",
  20. data: json.RawMessage(`"{\"city\":\"Paris\",\"days\":0,\"strict\":false}"`),
  21. want: `{"city":"Paris","days":0,"strict":false}`,
  22. },
  23. {
  24. name: "null",
  25. data: json.RawMessage(`null`),
  26. want: "",
  27. },
  28. {
  29. name: "empty",
  30. data: nil,
  31. want: "",
  32. },
  33. }
  34. for _, tt := range tests {
  35. t.Run(tt.name, func(t *testing.T) {
  36. require.Equal(t, tt.want, JsonRawMessageToString(tt.data))
  37. })
  38. }
  39. }