diff --git a/config/fwvdp_test.go b/config/fwvdp_test.go index fa20c4cd3..c985d3ff6 100644 --- a/config/fwvdp_test.go +++ b/config/fwvdp_test.go @@ -69,6 +69,12 @@ func TestFieldAsInterfaceFWV(t *testing.T) { } else if !reflect.DeepEqual(expected, received) { t.Errorf("Expected %+v, received %+v", expected, received) } + + if received, err := dp.FieldAsInterface(pth); err != nil { + t.Error(err) + } else if !reflect.DeepEqual(expected, received) { + t.Errorf("Expected %+v, received %+v", expected, received) + } } func TestFieldAsInterfaceFWVEmptyPath(t *testing.T) { @@ -93,3 +99,83 @@ func TestFieldAsInterfaceFWVInvalidPath(t *testing.T) { t.Errorf("Expected %+v, received %+v", expected, err) } } + +func TestFieldAsInterfaceFWVInvalidConvert1(t *testing.T) { + pth := []string{"1s-12"} + record := `"cgrates.org", "ATTR_1"` + dp := &FWVProvider{ + req: record, + cache: utils.MapStorage{}, + } + expected := "strconv.Atoi: parsing \"1s\": invalid syntax" + if _, err := dp.FieldAsInterface(pth); err == nil || err.Error() != expected { + t.Errorf("Expected %+v, received %+v", expected, err) + } +} + +func TestFieldAsInterfaceFWVInvalidConvert2(t *testing.T) { + pth := []string{"1-1s"} + record := `"cgrates.org", "ATTR_1"` + dp := &FWVProvider{ + req: record, + cache: utils.MapStorage{}, + } + expected := "strconv.Atoi: parsing \"1s\": invalid syntax" + if _, err := dp.FieldAsInterface(pth); err == nil || err.Error() != expected { + t.Errorf("Expected %+v, received %+v", expected, err) + } +} + +func TestFieldAsInterfaceFWVLowerLength(t *testing.T) { + pth := []string{"10-14"} + record := `"cgra"` + dp := &FWVProvider{ + req: record, + cache: utils.MapStorage{}, + } + expected := "StartIndex : 10 is greater than : 6" + if _, err := dp.FieldAsInterface(pth); err == nil || err.Error() != expected { + t.Errorf("Expected %+v, received %+v", expected, err) + } +} + +func TestFieldAsInterfaceFWVHigherLength(t *testing.T) { + pth := []string{"3-14"} + record := `"cgra"` + dp := &FWVProvider{ + req: record, + cache: utils.MapStorage{}, + } + expected := "FinalIndex : 14 is greater than : 6" + if _, err := dp.FieldAsInterface(pth); err == nil || err.Error() != expected { + t.Errorf("Expected %+v, received %+v", expected, err) + } +} + +func TestFieldAsStringFWV(t *testing.T) { + pth := []string{"1-12"} + record := `"cgrates.org", "ATTR_1"` + dp := &FWVProvider{ + req: record, + cache: utils.MapStorage{}, + } + expected := "cgrates.org" + if received, err := dp.FieldAsString(pth); err != nil { + t.Error(err) + } else if !reflect.DeepEqual(expected, received) { + t.Errorf("Expected %+v, received %+v", expected, received) + } +} + +func TestFieldAsStringFWVError(t *testing.T) { + pth := []string{"112"} + record := `"cgrates.org", "ATTR_1"` + dp := &FWVProvider{ + req: record, + cache: utils.MapStorage{}, + } + expected := "Invalid format for index : [112]" + if _, err := dp.FieldAsString(pth); err == nil || err.Error() != expected { + t.Errorf("Expected %+v, received %+v", expected, err) + } +}