Updated unit tests for navigable map

This commit is contained in:
Trial97
2020-05-20 16:55:30 +03:00
committed by Dan Christian Bogos
parent b8a7ac0743
commit 600b4f202e
4 changed files with 72 additions and 2 deletions

View File

@@ -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

View File

@@ -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)
}
}

View File

@@ -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)
}
}

View File

@@ -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)
}
}