From a6fbaab1a258f23d4f7391e3bb311dbfeec73b5b Mon Sep 17 00:00:00 2001 From: nickolasdaniel Date: Tue, 6 Apr 2021 17:36:14 +0300 Subject: [PATCH] Coverage tests for utils --- utils/datanode_test.go | 67 ++++++++++++++++++++++++++----- utils/dataprovider_test.go | 81 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 138 insertions(+), 10 deletions(-) diff --git a/utils/datanode_test.go b/utils/datanode_test.go index dc52d697e..0ab9dd19c 100644 --- a/utils/datanode_test.go +++ b/utils/datanode_test.go @@ -377,11 +377,26 @@ func TestAppend2(t *testing.T) { dn.Type = NMMapType dn.Slice = nil dn.Map = map[string]*DataNode{} - - if rcv, err := dn.Append(testPath, val1); err != nil { + dnMapExpect := map[string]*DataNode{ + "0": &DataNode{ + Type: NMMapType, + Map: map[string]*DataNode{ + testPath[1]: &DataNode{ + Type: NMSliceType, + Slice: []*DataNode{ + { + Type: NMDataType, + Value: val1, + }, + }, + }, + }, + }, + } + if _, err := dn.Append(testPath, val1); err != nil { t.Error(err) - } else if rcv != 0 { - t.Errorf("Expected %+v, received %+v", 0, rcv) + } else if !reflect.DeepEqual(dnMapExpect, dn.Map) { + t.Errorf("Expected %v but recived %v", ToJSON(dnMapExpect), ToJSON(dn.Map)) } /// @@ -409,12 +424,29 @@ func TestAppend2(t *testing.T) { t.Errorf("Expected %v but received %v", -1, rcv) } - /// + dn.Map = nil + dn.Slice = nil testPath = []string{"0", "testPath"} - if rcv, err := dn.Append(testPath, val1); err != nil { + dnSliceExpect := []*DataNode{ + { + Type: NMMapType, + Map: map[string]*DataNode{ + testPath[1]: &DataNode{ + Type: NMSliceType, + Slice: []*DataNode{ + { + Type: NMDataType, + Value: val1, + }, + }, + }, + }, + }, + } + if _, err := dn.Append(testPath, val1); err != nil { t.Error(err) - } else if rcv == -1 { - t.Errorf("Expected %v but received %v", -1, rcv) + } else if !reflect.DeepEqual(dn.Slice, dnSliceExpect) { + t.Errorf("Expected %v but recived %v", ToJSON(dn.Slice), ToJSON(dnSliceExpect)) } /// @@ -504,11 +536,26 @@ func TestCompose2(t *testing.T) { /// dn.Slice = nil testPath = []string{"0", "testPath"} - if err := dn.Compose(testPath, val); err != nil { - t.Error(err) + dnSliceExpect := []*DataNode{ + { + Type: NMMapType, + Map: map[string]*DataNode{ + testPath[1]: &DataNode{ + Type: NMSliceType, + Slice: []*DataNode{ + { + Type: NMDataType, + Value: val, + }, + }, + }, + }, + }, } if err := dn.Compose(testPath, val); err != nil { t.Error(err) + } else if !reflect.DeepEqual(dn.Slice, dnSliceExpect) { + t.Errorf("Expected %v but recived %v", ToJSON(dn.Slice), ToJSON(dnSliceExpect)) } /// diff --git a/utils/dataprovider_test.go b/utils/dataprovider_test.go index 1a6cfe99b..a6ad99747 100644 --- a/utils/dataprovider_test.go +++ b/utils/dataprovider_test.go @@ -134,3 +134,84 @@ func TestComposeNavMapVal(t *testing.T) { t.Errorf("Expected error: %s received: %v", ErrWrongPath, err) } } + +func TestIsPathValid(t *testing.T) { + path := "Field1.Field2[0]" + if err := IsPathValid(path); err != nil { + t.Error(err) + } + + /// + path = "~Field1" + errExpect := "Path is missing " + if err := IsPathValid(path); err == nil || err.Error() != errExpect { + t.Errorf("Expected %v but received %v", errExpect, err) + } + + /// + path = "~Field1.\n\t.Field2[0]" + errExpect = "Empty field path " + if err := IsPathValid(path); err == nil || err.Error() != errExpect { + t.Errorf("Expected %v but received %v", errExpect, err) + } + + /// + path = "~Field1.Field2[0]" + if err := IsPathValid(path); err != nil { + t.Error(err) + } +} + +func TestIsPathValidForExporters(t *testing.T) { + path := "Field1.Field2[0]" + if err := IsPathValidForExporters(path); err != nil { + t.Error(err) + } + + /// + path = "~Field1.\n\t.Field2[0]" + errExpect := "Empty field path " + if err := IsPathValidForExporters(path); err == nil || err.Error() != errExpect { + t.Errorf("Expected %v but received %v", errExpect, err) + } + + /// + path = "~Field1.Field2[0]" + if err := IsPathValidForExporters(path); err != nil { + t.Error(err) + } +} + +func TestCheckInLineFilter(t *testing.T) { + fltrs := []string{"Test1", "Test2"} + if err := CheckInLineFilter(fltrs); err != nil { + t.Error(err) + } + + /// + fltrs = []string{"*Test1", "*Test2"} + errExpect := "inline parse error for string: <*Test1>" + if err := CheckInLineFilter(fltrs); err == nil || err.Error() != errExpect { + t.Errorf("Expected %v but received %v", errExpect, err) + } + + /// + fltrs = []string{"*Test1:*Test2:*Test3:*Test4"} + if err := CheckInLineFilter(fltrs); err != nil { + t.Error(err) + } + + /// + fltrs = []string{"*empty:~Field1..Field2[0]:*Test3:*Test4"} + errExpect = "Empty field path for <*empty:~Field1..Field2[0]:*Test3:*Test4>" + if err := CheckInLineFilter(fltrs); err == nil || err.Error() != errExpect { + t.Errorf("Expected %v but received %v", errExpect, err) + } + + /// + fltrs = []string{"*empty:~Field1.Field2[0]:~Field1..Field2[0]|Test4"} + errExpect = "Empty field path for <*empty:~Field1.Field2[0]:~Field1..Field2[0]|Test4>" + if err := CheckInLineFilter(fltrs); err == nil || err.Error() != errExpect { + t.Errorf("Expected %v but received %v", errExpect, err) + } +}