From 600b4f202ec4071bbcb3525714a883cc67393542 Mon Sep 17 00:00:00 2001 From: Trial97 Date: Wed, 20 May 2020 16:55:30 +0300 Subject: [PATCH] Updated unit tests for navigable map --- utils/dataprovider_test.go | 12 ++++++++-- utils/nmslice_test.go | 14 ++++++++++++ utils/orderednavigablemap_test.go | 38 +++++++++++++++++++++++++++++++ utils/pathitem_test.go | 10 ++++++++ 4 files changed, 72 insertions(+), 2 deletions(-) diff --git a/utils/dataprovider_test.go b/utils/dataprovider_test.go index 5da7d8a05..6aa64a333 100644 --- a/utils/dataprovider_test.go +++ b/utils/dataprovider_test.go @@ -88,6 +88,10 @@ func TestAppendNavMapVal(t *testing.T) { } else if !reflect.DeepEqual(expected, onm.nm) { t.Errorf("Expected %v ,received: %v", expected, onm.nm) } + + if err := AppendNavMapVal(onm, &FullPath{}, NewNMData(18)); err != ErrWrongPath { + t.Errorf("Expected error: %s received: %v", ErrWrongPath, err) + } } func TestComposeNavMapVal(t *testing.T) { @@ -121,17 +125,21 @@ func TestComposeNavMapVal(t *testing.T) { t.Errorf("Expected %v ,received: %v", expected, nm) } - nm = NavigableMap2{ + onm.nm = NavigableMap2{ "Field4": NewNMData(1), "Field5": &NMSlice{NewNMData(10), NewNMData(101)}, } - if err := ComposeNavMapVal(onm, &FullPath{Path: "Field4", PathItems: PathItems{{Field: "Field4"}}}, NewNMData(10)); err != ErrWrongPath { + if err := ComposeNavMapVal(onm, &FullPath{Path: "Field4", PathItems: PathItems{{Field: "Field4"}}}, NewNMData(10)); err != ErrNotImplemented { t.Error(err) } if err := ComposeNavMapVal(onm, &FullPath{Path: "Field5", PathItems: PathItems{{Field: "Field5"}}}, &mockNMInterface{data: 10}); err != ErrNotImplemented { t.Error(err) } + + if err := ComposeNavMapVal(onm, &FullPath{}, NewNMData(18)); err != ErrWrongPath { + t.Errorf("Expected error: %s received: %v", ErrWrongPath, err) + } } // mock NMInterface structure diff --git a/utils/nmslice_test.go b/utils/nmslice_test.go index e864bac9a..2623aa542 100644 --- a/utils/nmslice_test.go +++ b/utils/nmslice_test.go @@ -73,6 +73,10 @@ func TestNMSliceField(t *testing.T) { } else if val.Interface() != "1003" { t.Errorf("Expected %q ,received: %q", "Val", val.Interface()) } + expError := `strconv.Atoi: parsing "nan": invalid syntax` + if _, err := nm.Field(PathItems{{Field: "1234", Index: StringPointer("nan")}}); err == nil || err.Error() != expError { + t.Errorf("Expected error %s received: %v", expError, err) + } } func TestNMSliceSet(t *testing.T) { @@ -108,6 +112,11 @@ func TestNMSliceSet(t *testing.T) { if _, err := nm.Set(PathItems{{Field: "1234", Index: StringPointer("0")}, {}}, NewNMData("1001")); err != ErrWrongPath { t.Error(err) } + + expError := `strconv.Atoi: parsing "nan": invalid syntax` + if _, err := nm.Set(PathItems{{Field: "1234", Index: StringPointer("nan")}, {}}, NewNMData("1001")); err == nil || err.Error() != expError { + t.Errorf("Expected error %s received: %v", expError, err) + } } func TestNMSliceType(t *testing.T) { @@ -203,4 +212,9 @@ func TestNMSliceRemove(t *testing.T) { t.Errorf("Expected %s ,received: %s", expected, nm) } + expError := `strconv.Atoi: parsing "nan": invalid syntax` + if err := nm.Remove(PathItems{{Field: "1234", Index: StringPointer("nan")}}); err == nil || err.Error() != expError { + t.Errorf("Expected error %s received: %v", expError, err) + } + } diff --git a/utils/orderednavigablemap_test.go b/utils/orderednavigablemap_test.go index 75859ec46..2bf3c0f7a 100644 --- a/utils/orderednavigablemap_test.go +++ b/utils/orderednavigablemap_test.go @@ -663,6 +663,7 @@ func TestOrderedNavigableMapRemove(t *testing.T) { PathItems: PathItems{{Field: "Field5"}}, Path: "Field5", }, &NMSlice{NewNMData(10), NewNMData(101)}) + if err := nm.Remove(&FullPath{}); err != ErrWrongPath { t.Error(err) } @@ -901,3 +902,40 @@ func BenchmarkNavigableMapField(b *testing.B) { } } //*/ + +func TestOrderedNavigableMapRemoveAll(t *testing.T) { + nm := NewOrderedNavigableMap() + nm.Set(&FullPath{ + PathItems: PathItems{{Field: "Field2"}}, + Path: "Field2", + }, NewNMData("1003")) + nm.Set(&FullPath{ + PathItems: PathItems{{Field: "Field3"}, {Field: "Field4"}}, + Path: "Field3.Field4", + }, NewNMData("Val")) + nm.Set(&FullPath{ + PathItems: PathItems{{Field: "Field1"}}, + Path: "Field1", + }, NewNMData("1001")) + nm.Set(&FullPath{ + PathItems: PathItems{{Field: "Field5"}}, + Path: "Field5", + }, &NMSlice{NewNMData(10), NewNMData(101)}) + expected := NewOrderedNavigableMap() + nm.RemoveAll() + if !reflect.DeepEqual(nm, expected) { + t.Errorf("Expected %s ,received: %s", expected, nm) + } +} + +func TestOrderedNavigableMapRemove2(t *testing.T) { + nm := &OrderedNavigableMap{ + nm: NavigableMap2{ + "Field1": &NMSlice{}, + }, + } + expErr := `strconv.Atoi: parsing "nan": invalid syntax` + if err := nm.Remove(&FullPath{PathItems: PathItems{{Field: "Field1", Index: StringPointer("nan")}, {}}, Path: "Field1[nan]"}); err == nil || err.Error() != expErr { + t.Errorf("Expected error: %s,received: %v", expErr, err) + } +} diff --git a/utils/pathitem_test.go b/utils/pathitem_test.go index 20290af13..9e2d979bd 100644 --- a/utils/pathitem_test.go +++ b/utils/pathitem_test.go @@ -145,3 +145,13 @@ func TestPathItemsClone(t *testing.T) { t.Errorf("Expected: %s, received: %s", ToJSON(expected), ToJSON(rply)) } } +func TestGetPathWithoutIndex(t *testing.T) { + expected := "field" + if rply := GetPathWithoutIndex("field[index]"); expected != rply { + t.Errorf("Expected: %s, received: %s", expected, rply) + } + expected = "field[index" + if rply := GetPathWithoutIndex("field[index"); expected != rply { + t.Errorf("Expected: %s, received: %s", expected, rply) + } +}