| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- package jsonutil
- import (
- "bytes"
- "math"
- "testing"
- )
- func TestEncodeFloat64(t *testing.T) {
- buffer := &bytes.Buffer{}
- // Test normal float value
- buffer.Reset()
- EncodeFloat64(buffer, "test", 3.14, ",")
- expected := `"test":3.140000,`
- if buffer.String() != expected {
- t.Errorf("Expected %s, got %s", expected, buffer.String())
- }
- // Test NaN value
- buffer.Reset()
- EncodeFloat64(buffer, "test", math.NaN(), ",")
- expected = `"test":null,`
- if buffer.String() != expected {
- t.Errorf("Expected %s, got %s", expected, buffer.String())
- }
- // Test positive infinity
- buffer.Reset()
- EncodeFloat64(buffer, "test", math.Inf(1), ",")
- expected = `"test":null,`
- if buffer.String() != expected {
- t.Errorf("Expected %s, got %s", expected, buffer.String())
- }
- // Test negative infinity
- buffer.Reset()
- EncodeFloat64(buffer, "test", math.Inf(-1), ",")
- expected = `"test":null,`
- if buffer.String() != expected {
- t.Errorf("Expected %s, got %s", expected, buffer.String())
- }
- }
- func TestEncodeString(t *testing.T) {
- buffer := &bytes.Buffer{}
- EncodeString(buffer, "key", "value", ",")
- expected := `"key":"value",`
- if buffer.String() != expected {
- t.Errorf("Expected %s, got %s", expected, buffer.String())
- }
- }
- func TestEncode(t *testing.T) {
- buffer := &bytes.Buffer{}
- // Test with a simple struct
- type testStruct struct {
- Field string `json:"field"`
- }
- testObj := testStruct{Field: "test"}
- Encode(buffer, "key", testObj, ",")
- expected := `"key":{"field":"test"},`
- if buffer.String() != expected {
- t.Errorf("Expected %s, got %s", expected, buffer.String())
- }
- // Test with nil (should produce null)
- buffer.Reset()
- Encode(buffer, "key", nil, ",")
- expected = `"key":null,`
- if buffer.String() != expected {
- t.Errorf("Expected %s, got %s", expected, buffer.String())
- }
- }
|