From de3fefdd3f1cbd828a5f61644c969e263b6f4ab9 Mon Sep 17 00:00:00 2001 From: DanB Date: Fri, 13 Jul 2018 13:17:47 +0200 Subject: [PATCH] NavigableMap populating order field --- agents/httpagent_it_test.go | 10 ++++++++-- engine/navigablemap.go | 6 +++--- engine/navigablemap_test.go | 10 ++++++++++ 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/agents/httpagent_it_test.go b/agents/httpagent_it_test.go index 76708478e..e9092ba53 100644 --- a/agents/httpagent_it_test.go +++ b/agents/httpagent_it_test.go @@ -123,7 +123,7 @@ func TestHAitAuth1001(t *testing.T) { eXml := []byte(` 1 - 10800 + 6042 `) if body, err := ioutil.ReadAll(rply.Body); err != nil { t.Error(err) @@ -152,7 +152,7 @@ func TestHAitCDRmtcall(t *testing.T) { t.Errorf("expecting: <%s>, received: <%s>", string(eXml), string(body)) } rply.Body.Close() - time.Sleep(time.Millisecond) + time.Sleep(10 * time.Millisecond) var cdrs []*engine.ExternalCDR req := utils.RPCCDRsFilter{RunIDs: []string{utils.META_DEFAULT}} if err := haRPC.Call("ApierV2.GetCdrs", req, &cdrs); err != nil { @@ -168,3 +168,9 @@ func TestHAitCDRmtcall(t *testing.T) { } } } + +func TestHAitStopEngine(t *testing.T) { + if err := engine.KillEngine(*waitRater); err != nil { + t.Error(err) + } +} diff --git a/engine/navigablemap.go b/engine/navigablemap.go index 6e714570d..08408d478 100644 --- a/engine/navigablemap.go +++ b/engine/navigablemap.go @@ -59,6 +59,9 @@ type NavigableMap struct { // Add will add items into NavigableMap populating also order func (nM *NavigableMap) Set(path []string, data interface{}, ordered bool) { + if ordered { + nM.order = append(nM.order, path) + } mp := nM.data for i, spath := range path { if i == len(path)-1 { // last path @@ -70,9 +73,6 @@ func (nM *NavigableMap) Set(path []string, data interface{}, ordered bool) { } mp = mp[spath].(map[string]interface{}) // so we can check further down } - if ordered { - nM.order = append(nM.order, path) - } } // FieldAsInterface returns the field value as interface{} for the path specified diff --git a/engine/navigablemap_test.go b/engine/navigablemap_test.go index 129f3a16f..519ddab0c 100644 --- a/engine/navigablemap_test.go +++ b/engine/navigablemap_test.go @@ -180,6 +180,16 @@ func TestNavMapAdd(t *testing.T) { if !reflect.DeepEqual(nM.data, eNavMap.data) { t.Errorf("Expecting: %+v, received: %+v", eNavMap.data, nM.data) } + eOrder := [][]string{ + []string{"FistLever2", "SecondLevel2", "Field2"}, + []string{"FirstLevel", "SecondLevel", "ThirdLevel", "Fld1"}, + []string{"FistLever2", "Field3"}, + []string{"Field4"}, + } + if !reflect.DeepEqual(eOrder, nM.order) { + t.Errorf("Expecting: %+v, received: %+v", eOrder, nM.order) + } + } type testStruct struct {