mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Updated unit tests for navigable map
This commit is contained in:
committed by
Dan Christian Bogos
parent
b8a7ac0743
commit
600b4f202e
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user