From 51943cb38704c5fb079eb814e50b2d07c3cdb4a1 Mon Sep 17 00:00:00 2001 From: ionutboangiu Date: Thu, 19 Feb 2026 18:20:07 +0200 Subject: [PATCH] use indented json in ONM.String() --- ees/exportrequest_test.go | 42 ++++++++++++++++++++++++++++--- utils/coreutils_test.go | 21 ++++++++++++++++ utils/orderednavigablemap.go | 2 +- utils/orderednavigablemap_test.go | 10 +++++++- 4 files changed, 70 insertions(+), 5 deletions(-) diff --git a/ees/exportrequest_test.go b/ees/exportrequest_test.go index a52355cbc..363de18f3 100644 --- a/ees/exportrequest_test.go +++ b/ees/exportrequest_test.go @@ -603,7 +603,19 @@ func TestExportRequestSetAsSliceDefaultOK(t *testing.T) { val := &utils.DataLeaf{ Data: "cgrates.org", } - exp := `{"Map":{"Tenant":{"Slice":[{"Value":{"Data":"cgrates.org"}}]}}}` + exp := `{ + "Map": { + "Tenant": { + "Slice": [ + { + "Value": { + "Data": "cgrates.org" + } + } + ] + } + } +}` if err := eeR.SetAsSlice(fullPath, val); err != nil { t.Error(err) @@ -734,7 +746,19 @@ func TestExportRequestAppendDefaultOK(t *testing.T) { val := &utils.DataLeaf{ Data: "cgrates.org", } - exp := `{"Map":{"Tenant":{"Slice":[{"Value":{"Data":"cgrates.org"}}]}}}` + exp := `{ + "Map": { + "Tenant": { + "Slice": [ + { + "Value": { + "Data": "cgrates.org" + } + } + ] + } + } +}` if err := eeR.Append(fullPath, val); err != nil { t.Error(err) @@ -919,7 +943,19 @@ func TestExportRequestComposeDefaultOK(t *testing.T) { val := &utils.DataLeaf{ Data: "cgrates.org", } - exp := `{"Map":{"Tenant":{"Slice":[{"Value":{"Data":"cgrates.org"}}]}}}` + exp := `{ + "Map": { + "Tenant": { + "Slice": [ + { + "Value": { + "Data": "cgrates.org" + } + } + ] + } + } +}` if err := eeR.Compose(fullPath, val); err != nil { t.Error(err) diff --git a/utils/coreutils_test.go b/utils/coreutils_test.go index 4f35fe31c..a6ea28b72 100644 --- a/utils/coreutils_test.go +++ b/utils/coreutils_test.go @@ -1698,3 +1698,24 @@ func TestToUnescapedJSON(t *testing.T) { t.Errorf("Expected %v, received %v", ToJSON(exp), ToJSON(rcv)) } } + +// go test ./utils/ -bench BenchmarkToJSON -benchmem +func BenchmarkToJSON(b *testing.B) { + v := map[string]any{ + "Result-Code": "2001", + "Granted-Service-Unit": map[string]any{ + "CC-Time": 300, + }, + "Session-Id": "cgrates;1052943642;938", + } + b.Run("ToJSON", func(b *testing.B) { + for b.Loop() { + ToJSON(v) + } + }) + b.Run("ToIJSON", func(b *testing.B) { + for b.Loop() { + ToIJSON(v) + } + }) +} diff --git a/utils/orderednavigablemap.go b/utils/orderednavigablemap.go index e12b5fa66..5ed92f475 100644 --- a/utils/orderednavigablemap.go +++ b/utils/orderednavigablemap.go @@ -42,7 +42,7 @@ type OrderedNavigableMap struct { // String returns the map as json string func (onm *OrderedNavigableMap) String() string { - return ToJSON(onm.nm) + return ToIJSON(onm.nm) } // GetFirstElement returns the first element from the order diff --git a/utils/orderednavigablemap_test.go b/utils/orderednavigablemap_test.go index b641c818f..90c405ba2 100644 --- a/utils/orderednavigablemap_test.go +++ b/utils/orderednavigablemap_test.go @@ -876,7 +876,15 @@ func TestOrderedNavigableMapString(t *testing.T) { }, }, } - exp := `{"Map":{"Node1":{"Value":{"Data":"value"}}}}` + exp := `{ + "Map": { + "Node1": { + "Value": { + "Data": "value" + } + } + } +}` rcv := onm.String() if rcv != exp { t.Errorf("Expected %v but received %v", exp, rcv)