|
|
@@ -0,0 +1,76 @@
|
|
|
+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())
|
|
|
+ }
|
|
|
+}
|