jsonutil_test.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package jsonutil
  2. import (
  3. "bytes"
  4. "math"
  5. "testing"
  6. )
  7. func TestEncodeFloat64(t *testing.T) {
  8. buffer := &bytes.Buffer{}
  9. // Test normal float value
  10. buffer.Reset()
  11. EncodeFloat64(buffer, "test", 3.14, ",")
  12. expected := `"test":3.140000,`
  13. if buffer.String() != expected {
  14. t.Errorf("Expected %s, got %s", expected, buffer.String())
  15. }
  16. // Test NaN value
  17. buffer.Reset()
  18. EncodeFloat64(buffer, "test", math.NaN(), ",")
  19. expected = `"test":null,`
  20. if buffer.String() != expected {
  21. t.Errorf("Expected %s, got %s", expected, buffer.String())
  22. }
  23. // Test positive infinity
  24. buffer.Reset()
  25. EncodeFloat64(buffer, "test", math.Inf(1), ",")
  26. expected = `"test":null,`
  27. if buffer.String() != expected {
  28. t.Errorf("Expected %s, got %s", expected, buffer.String())
  29. }
  30. // Test negative infinity
  31. buffer.Reset()
  32. EncodeFloat64(buffer, "test", math.Inf(-1), ",")
  33. expected = `"test":null,`
  34. if buffer.String() != expected {
  35. t.Errorf("Expected %s, got %s", expected, buffer.String())
  36. }
  37. }
  38. func TestEncodeString(t *testing.T) {
  39. buffer := &bytes.Buffer{}
  40. EncodeString(buffer, "key", "value", ",")
  41. expected := `"key":"value",`
  42. if buffer.String() != expected {
  43. t.Errorf("Expected %s, got %s", expected, buffer.String())
  44. }
  45. }
  46. func TestEncode(t *testing.T) {
  47. buffer := &bytes.Buffer{}
  48. // Test with a simple struct
  49. type testStruct struct {
  50. Field string `json:"field"`
  51. }
  52. testObj := testStruct{Field: "test"}
  53. Encode(buffer, "key", testObj, ",")
  54. expected := `"key":{"field":"test"},`
  55. if buffer.String() != expected {
  56. t.Errorf("Expected %s, got %s", expected, buffer.String())
  57. }
  58. // Test with nil (should produce null)
  59. buffer.Reset()
  60. Encode(buffer, "key", nil, ",")
  61. expected = `"key":null,`
  62. if buffer.String() != expected {
  63. t.Errorf("Expected %s, got %s", expected, buffer.String())
  64. }
  65. }