mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Added DynamicDataProvider to AgentRequest
This commit is contained in:
committed by
Dan Christian Bogos
parent
da9344128c
commit
1fd9ac009e
@@ -38,11 +38,11 @@ func TestOrderedNavigableMap(t *testing.T) {
|
||||
|
||||
onm.Set(&FullPath{
|
||||
Path: "Field2[0]",
|
||||
PathItems: PathItems{{Field: "Field2", Index: IntPointer(0)}},
|
||||
PathItems: PathItems{{Field: "Field2", Index: StringPointer("0")}},
|
||||
}, NewNMData("1001"))
|
||||
expOrder = []PathItems{
|
||||
PathItems{{Field: "Field1"}},
|
||||
PathItems{{Field: "Field2", Index: IntPointer(0)}},
|
||||
PathItems{{Field: "Field2", Index: StringPointer("0")}},
|
||||
}
|
||||
if !reflect.DeepEqual(expOrder, onm.GetOrder()) {
|
||||
t.Errorf("Expected %s ,received: %s", expOrder, ToJSON(onm.GetOrder()))
|
||||
@@ -51,15 +51,15 @@ func TestOrderedNavigableMap(t *testing.T) {
|
||||
onm.Set(&FullPath{
|
||||
Path: "Field2[1].Account[0]",
|
||||
PathItems: PathItems{
|
||||
{Field: "Field2", Index: IntPointer(1)},
|
||||
{Field: "Account", Index: IntPointer(0)}},
|
||||
{Field: "Field2", Index: StringPointer("1")},
|
||||
{Field: "Account", Index: StringPointer("0")}},
|
||||
}, NewNMData(10))
|
||||
expOrder = []PathItems{
|
||||
PathItems{{Field: "Field1"}},
|
||||
PathItems{{Field: "Field2", Index: IntPointer(0)}},
|
||||
PathItems{{Field: "Field2", Index: StringPointer("0")}},
|
||||
PathItems{
|
||||
{Field: "Field2", Index: IntPointer(1)},
|
||||
{Field: "Account", Index: IntPointer(0)}},
|
||||
{Field: "Field2", Index: StringPointer("1")},
|
||||
{Field: "Account", Index: StringPointer("0")}},
|
||||
}
|
||||
if !reflect.DeepEqual(expOrder, onm.GetOrder()) {
|
||||
t.Errorf("Expected %s ,received: %s", expOrder, ToJSON(onm.GetOrder()))
|
||||
@@ -68,18 +68,18 @@ func TestOrderedNavigableMap(t *testing.T) {
|
||||
onm.Set(&FullPath{
|
||||
Path: "Field2[1].Account[1]",
|
||||
PathItems: PathItems{
|
||||
{Field: "Field2", Index: IntPointer(1)},
|
||||
{Field: "Account", Index: IntPointer(1)}},
|
||||
{Field: "Field2", Index: StringPointer("1")},
|
||||
{Field: "Account", Index: StringPointer("1")}},
|
||||
}, NewNMData(11))
|
||||
expOrder = []PathItems{
|
||||
PathItems{{Field: "Field1"}},
|
||||
PathItems{{Field: "Field2", Index: IntPointer(0)}},
|
||||
PathItems{{Field: "Field2", Index: StringPointer("0")}},
|
||||
PathItems{
|
||||
{Field: "Field2", Index: IntPointer(1)},
|
||||
{Field: "Account", Index: IntPointer(0)}},
|
||||
{Field: "Field2", Index: StringPointer("1")},
|
||||
{Field: "Account", Index: StringPointer("0")}},
|
||||
PathItems{
|
||||
{Field: "Field2", Index: IntPointer(1)},
|
||||
{Field: "Account", Index: IntPointer(1)}},
|
||||
{Field: "Field2", Index: StringPointer("1")},
|
||||
{Field: "Account", Index: StringPointer("1")}},
|
||||
}
|
||||
if !reflect.DeepEqual(expOrder, onm.GetOrder()) {
|
||||
t.Errorf("Expected %s ,received: %s", expOrder, ToJSON(onm.GetOrder()))
|
||||
@@ -87,18 +87,18 @@ func TestOrderedNavigableMap(t *testing.T) {
|
||||
|
||||
onm.Set(&FullPath{
|
||||
Path: "Field2[2]",
|
||||
PathItems: PathItems{{Field: "Field2", Index: IntPointer(2)}},
|
||||
PathItems: PathItems{{Field: "Field2", Index: StringPointer("2")}},
|
||||
}, NewNMData(111))
|
||||
expOrder = []PathItems{
|
||||
PathItems{{Field: "Field1"}},
|
||||
PathItems{{Field: "Field2", Index: IntPointer(0)}},
|
||||
PathItems{{Field: "Field2", Index: StringPointer("0")}},
|
||||
PathItems{
|
||||
{Field: "Field2", Index: IntPointer(1)},
|
||||
{Field: "Account", Index: IntPointer(0)}},
|
||||
{Field: "Field2", Index: StringPointer("1")},
|
||||
{Field: "Account", Index: StringPointer("0")}},
|
||||
PathItems{
|
||||
{Field: "Field2", Index: IntPointer(1)},
|
||||
{Field: "Account", Index: IntPointer(1)}},
|
||||
PathItems{{Field: "Field2", Index: IntPointer(2)}},
|
||||
{Field: "Field2", Index: StringPointer("1")},
|
||||
{Field: "Account", Index: StringPointer("1")}},
|
||||
PathItems{{Field: "Field2", Index: StringPointer("2")}},
|
||||
}
|
||||
if !reflect.DeepEqual(expOrder, onm.GetOrder()) {
|
||||
t.Errorf("Expected %s ,received: %s", expOrder, ToJSON(onm.GetOrder()))
|
||||
@@ -113,14 +113,14 @@ func TestOrderedNavigableMap(t *testing.T) {
|
||||
}, NewNMData(5))
|
||||
expOrder = []PathItems{
|
||||
PathItems{{Field: "Field1"}},
|
||||
PathItems{{Field: "Field2", Index: IntPointer(0)}},
|
||||
PathItems{{Field: "Field2", Index: StringPointer("0")}},
|
||||
PathItems{
|
||||
{Field: "Field2", Index: IntPointer(1)},
|
||||
{Field: "Account", Index: IntPointer(0)}},
|
||||
{Field: "Field2", Index: StringPointer("1")},
|
||||
{Field: "Account", Index: StringPointer("0")}},
|
||||
PathItems{
|
||||
{Field: "Field2", Index: IntPointer(1)},
|
||||
{Field: "Account", Index: IntPointer(1)}},
|
||||
PathItems{{Field: "Field2", Index: IntPointer(2)}},
|
||||
{Field: "Field2", Index: StringPointer("1")},
|
||||
{Field: "Account", Index: StringPointer("1")}},
|
||||
PathItems{{Field: "Field2", Index: StringPointer("2")}},
|
||||
PathItems{
|
||||
{Field: "Field3"},
|
||||
{Field: "Field4"},
|
||||
@@ -173,14 +173,14 @@ func TestOrderedNavigableMap(t *testing.T) {
|
||||
{Field: "Field3"},
|
||||
{Field: "Field4"},
|
||||
{Field: "Field5"}},
|
||||
PathItems{{Field: "Field2", Index: IntPointer(0)}},
|
||||
PathItems{{Field: "Field2", Index: IntPointer(1)}},
|
||||
PathItems{{Field: "Field2", Index: StringPointer("0")}},
|
||||
PathItems{{Field: "Field2", Index: StringPointer("1")}},
|
||||
}
|
||||
if !reflect.DeepEqual(expOrder, onm.GetOrder()) {
|
||||
t.Errorf("Expected %s ,received: %s", expOrder, onm.GetOrder())
|
||||
}
|
||||
|
||||
path = PathItems{{Field: "Field2", Index: IntPointer(0)}}
|
||||
path = PathItems{{Field: "Field2", Index: StringPointer("0")}}
|
||||
if val, err := onm.Field(path); err != nil {
|
||||
t.Error(err)
|
||||
} else if val.Interface() != "500" {
|
||||
@@ -248,15 +248,15 @@ func TestOrderedNavigableMapField(t *testing.T) {
|
||||
t.Errorf("Expected %q ,received: %q", "1001", val.Interface())
|
||||
}
|
||||
|
||||
if _, err := nm.Field(PathItems{{Field: "Field1", Index: IntPointer(0)}}); err != ErrNotFound {
|
||||
if _, err := nm.Field(PathItems{{Field: "Field1", Index: StringPointer("0")}}); err != ErrNotFound {
|
||||
t.Error(err)
|
||||
}
|
||||
if val, err := nm.Field(PathItems{{Field: "Field5", Index: IntPointer(0)}}); err != nil {
|
||||
if val, err := nm.Field(PathItems{{Field: "Field5", Index: StringPointer("0")}}); err != nil {
|
||||
t.Error(err)
|
||||
} else if val.Interface() != 10 {
|
||||
t.Errorf("Expected %q ,received: %q", 10, val.Interface())
|
||||
}
|
||||
if _, err := nm.Field(PathItems{{Field: "Field3", Index: IntPointer(0)}}); err != ErrNotFound {
|
||||
if _, err := nm.Field(PathItems{{Field: "Field3", Index: StringPointer("0")}}); err != ErrNotFound {
|
||||
t.Error(err)
|
||||
}
|
||||
if val, err := nm.Field(PathItems{{Field: "Field3"}, {Field: "Field4"}}); err != nil {
|
||||
@@ -298,17 +298,17 @@ func TestOrderedNavigableMapLen(t *testing.T) {
|
||||
func TestOrderedNavigableMapGetSet(t *testing.T) {
|
||||
nm := NewOrderedNavigableMap()
|
||||
nm.Set(&FullPath{
|
||||
PathItems: PathItems{{Field: "Account", Index: IntPointer(0)}},
|
||||
PathItems: PathItems{{Field: "Account", Index: StringPointer("0")}},
|
||||
Path: "Account",
|
||||
}, NewNMData(1001))
|
||||
nm.Set(&FullPath{
|
||||
PathItems: PathItems{{Field: "Account", Index: IntPointer(1)}},
|
||||
PathItems: PathItems{{Field: "Account", Index: StringPointer("1")}},
|
||||
Path: "Account",
|
||||
}, NewNMData("account_on_new_branch"))
|
||||
|
||||
expectedOrder := []PathItems{
|
||||
{{Field: "Account", Index: IntPointer(0)}},
|
||||
{{Field: "Account", Index: IntPointer(1)}},
|
||||
{{Field: "Account", Index: StringPointer("0")}},
|
||||
{{Field: "Account", Index: StringPointer("1")}},
|
||||
}
|
||||
|
||||
if recivedOrder := nm.GetOrder(); !reflect.DeepEqual(expectedOrder, recivedOrder) {
|
||||
@@ -346,7 +346,7 @@ func TestOrderedNavigableMapGetSet(t *testing.T) {
|
||||
t.Errorf("Expected %q ,received: %q", 5, val.Interface())
|
||||
}
|
||||
|
||||
path = PathItems{{Field: "Field2", Index: IntPointer(2)}}
|
||||
path = PathItems{{Field: "Field2", Index: StringPointer("2")}}
|
||||
if _, err := nm.Set(&FullPath{Path: path.String(), PathItems: path}, NewNMData("500")); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
@@ -356,17 +356,17 @@ func TestOrderedNavigableMapGetSet(t *testing.T) {
|
||||
t.Errorf("Expected %q ,received: %q", "500", val.Interface())
|
||||
}
|
||||
|
||||
path = PathItems{{Field: "Field2", Index: IntPointer(1)}, {Field: "Account"}}
|
||||
path = PathItems{{Field: "Field2", Index: StringPointer("1")}, {Field: "Account"}}
|
||||
if _, err := nm.Set(&FullPath{Path: path.String(), PathItems: path}, NewNMData("5")); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
path = PathItems{{Field: "Field2", Index: IntPointer(1)}, {Field: "Account"}}
|
||||
path = PathItems{{Field: "Field2", Index: StringPointer("1")}, {Field: "Account"}}
|
||||
if val, err := nm.Field(path); err != nil {
|
||||
t.Error(err)
|
||||
} else if val.Interface() != "5" {
|
||||
t.Errorf("Expected %q ,received: %q", "5", val.Interface())
|
||||
}
|
||||
path = PathItems{{Field: "Field2", Index: IntPointer(1)}, {Field: "Account", Index: IntPointer(0)}}
|
||||
path = PathItems{{Field: "Field2", Index: StringPointer("1")}, {Field: "Account", Index: StringPointer("0")}}
|
||||
if _, err := nm.Field(path); err != ErrNotFound {
|
||||
t.Error(err)
|
||||
}
|
||||
@@ -423,26 +423,26 @@ func TestOrderedNavigableMapFieldAsString(t *testing.T) {
|
||||
func TestOrderedNavigableMapGetOrder(t *testing.T) {
|
||||
nm := NewOrderedNavigableMap()
|
||||
nm.Set(&FullPath{
|
||||
PathItems: PathItems{{Field: "Field1"}, {Field: "Field2", Index: IntPointer(0)}},
|
||||
PathItems: PathItems{{Field: "Field1"}, {Field: "Field2", Index: StringPointer("0")}},
|
||||
Path: "Field1.Field2[0]",
|
||||
}, NewNMData("1003"))
|
||||
nm.Set(&FullPath{
|
||||
PathItems: PathItems{{Field: "Field1"}, {Field: "Field2", Index: IntPointer(1)}},
|
||||
PathItems: PathItems{{Field: "Field1"}, {Field: "Field2", Index: StringPointer("1")}},
|
||||
Path: "Field1.Field2[1]",
|
||||
}, NewNMData("Val"))
|
||||
nm.Set(&FullPath{
|
||||
PathItems: PathItems{{Field: "Field3"}, {Field: "Field4"}, {Field: "Field5", Index: IntPointer(0)}},
|
||||
PathItems: PathItems{{Field: "Field3"}, {Field: "Field4"}, {Field: "Field5", Index: StringPointer("0")}},
|
||||
Path: "Field3.Field4.Field5",
|
||||
}, NewNMData("1001"))
|
||||
nm.Set(&FullPath{
|
||||
PathItems: PathItems{{Field: "Field1"}, {Field: "Field2", Index: IntPointer(2)}},
|
||||
PathItems: PathItems{{Field: "Field1"}, {Field: "Field2", Index: StringPointer("2")}},
|
||||
Path: "Field1.Field2[2]",
|
||||
}, NewNMData(101))
|
||||
expected := []PathItems{
|
||||
{{Field: "Field1"}, {Field: "Field2", Index: IntPointer(0)}},
|
||||
{{Field: "Field1"}, {Field: "Field2", Index: IntPointer(1)}},
|
||||
{{Field: "Field3"}, {Field: "Field4"}, {Field: "Field5", Index: IntPointer(0)}},
|
||||
{{Field: "Field1"}, {Field: "Field2", Index: IntPointer(2)}},
|
||||
{{Field: "Field1"}, {Field: "Field2", Index: StringPointer("0")}},
|
||||
{{Field: "Field1"}, {Field: "Field2", Index: StringPointer("1")}},
|
||||
{{Field: "Field3"}, {Field: "Field4"}, {Field: "Field5", Index: StringPointer("0")}},
|
||||
{{Field: "Field1"}, {Field: "Field2", Index: StringPointer("2")}},
|
||||
}
|
||||
if rply := nm.GetOrder(); !reflect.DeepEqual(rply, expected) {
|
||||
t.Errorf("Expected %s ,received: %s", expected, rply)
|
||||
@@ -457,18 +457,18 @@ func TestOrderedNavigableMapSet(t *testing.T) {
|
||||
t.Error(err)
|
||||
}
|
||||
if _, err := nm.Set(&FullPath{
|
||||
PathItems: PathItems{{Field: "Field1", Index: IntPointer(10)}},
|
||||
PathItems: PathItems{{Field: "Field1", Index: StringPointer("10")}},
|
||||
Path: "Field1[10]",
|
||||
}, NewNMData("1001")); err != ErrWrongPath {
|
||||
t.Error(err)
|
||||
}
|
||||
if _, err := nm.Set(&FullPath{
|
||||
PathItems: PathItems{{Field: "Field1", Index: IntPointer(10)}, {Field: "Field2"}},
|
||||
PathItems: PathItems{{Field: "Field1", Index: StringPointer("10")}, {Field: "Field2"}},
|
||||
Path: "Field1[10].Field2",
|
||||
}, NewNMData("1001")); err != ErrWrongPath {
|
||||
t.Error(err)
|
||||
}
|
||||
path := PathItems{{Field: "Field1", Index: IntPointer(0)}}
|
||||
path := PathItems{{Field: "Field1", Index: StringPointer("0")}}
|
||||
if addedNew, err := nm.Set(&FullPath{
|
||||
PathItems: path,
|
||||
Path: path.String(),
|
||||
@@ -486,26 +486,26 @@ func TestOrderedNavigableMapSet(t *testing.T) {
|
||||
t.Errorf("Expected %s ,received: %s", order, nm.GetOrder())
|
||||
}
|
||||
if _, err := nm.Set(&FullPath{
|
||||
PathItems: PathItems{{Field: "Field1", Index: IntPointer(0)}, {}},
|
||||
PathItems: PathItems{{Field: "Field1", Index: StringPointer("0")}, {}},
|
||||
Path: "Field1[0]",
|
||||
}, NewNMData("1001")); err != ErrWrongPath {
|
||||
t.Error(err)
|
||||
}
|
||||
if _, err := nm.Set(&FullPath{
|
||||
PathItems: PathItems{{Field: "Field1", Index: IntPointer(10)}},
|
||||
PathItems: PathItems{{Field: "Field1", Index: StringPointer("10")}},
|
||||
Path: "Field1[10]",
|
||||
}, NewNMData("1001")); err != ErrWrongPath {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if _, err := nm.Set(&FullPath{
|
||||
PathItems: PathItems{{Field: "Field1", Index: IntPointer(0)}, {}},
|
||||
PathItems: PathItems{{Field: "Field1", Index: StringPointer("0")}, {}},
|
||||
Path: "Field1[0]",
|
||||
}, &NMSlice{}); err != ErrWrongPath {
|
||||
t.Error(err)
|
||||
}
|
||||
if _, err := nm.Set(&FullPath{
|
||||
PathItems: PathItems{{Field: "Field1", Index: IntPointer(10)}},
|
||||
PathItems: PathItems{{Field: "Field1", Index: StringPointer("10")}},
|
||||
Path: "Field[10]",
|
||||
}, &NMSlice{}); err != ErrWrongPath {
|
||||
t.Error(err)
|
||||
@@ -547,7 +547,7 @@ func TestOrderedNavigableMapSet(t *testing.T) {
|
||||
if !reflect.DeepEqual(nm.GetOrder(), order) {
|
||||
t.Errorf("Expected %s ,received: %s", order, nm.GetOrder())
|
||||
}
|
||||
path = PathItems{{Field: "Field1", Index: IntPointer(1)}}
|
||||
path = PathItems{{Field: "Field1", Index: StringPointer("1")}}
|
||||
nMap = NavigableMap2{
|
||||
"Field1": &NMSlice{NewNMData("1002"), NewNMData("1003")},
|
||||
"Field2": NewNMData("1002"),
|
||||
@@ -574,7 +574,7 @@ func TestOrderedNavigableMapSet(t *testing.T) {
|
||||
"Field2": NewNMData("1002"),
|
||||
"Field3": obj,
|
||||
}
|
||||
order = append(order, PathItems{{Field: "Field3", Index: IntPointer(0)}}, PathItems{{Field: "Field3", Index: IntPointer(1)}})
|
||||
order = append(order, PathItems{{Field: "Field3", Index: StringPointer("0")}}, PathItems{{Field: "Field3", Index: StringPointer("1")}})
|
||||
if addedNew, err := nm.Set(&FullPath{
|
||||
PathItems: path,
|
||||
Path: path.String(),
|
||||
@@ -597,10 +597,10 @@ func TestOrderedNavigableMapSet(t *testing.T) {
|
||||
}
|
||||
order = []PathItems{
|
||||
{{Field: "Field2"}},
|
||||
{{Field: "Field3", Index: IntPointer(0)}},
|
||||
{{Field: "Field3", Index: IntPointer(1)}},
|
||||
{{Field: "Field1", Index: IntPointer(0)}},
|
||||
{{Field: "Field1", Index: IntPointer(1)}},
|
||||
{{Field: "Field3", Index: StringPointer("0")}},
|
||||
{{Field: "Field3", Index: StringPointer("1")}},
|
||||
{{Field: "Field1", Index: StringPointer("0")}},
|
||||
{{Field: "Field1", Index: StringPointer("1")}},
|
||||
}
|
||||
if addedNew, err := nm.Set(&FullPath{
|
||||
PathItems: PathItems{{Field: "Field1"}},
|
||||
@@ -624,13 +624,13 @@ func TestOrderedNavigableMapSet(t *testing.T) {
|
||||
}
|
||||
order = []PathItems{
|
||||
{{Field: "Field2"}},
|
||||
{{Field: "Field3", Index: IntPointer(0)}},
|
||||
{{Field: "Field1", Index: IntPointer(0)}},
|
||||
{{Field: "Field1", Index: IntPointer(1)}},
|
||||
{{Field: "Field3", Index: IntPointer(1)}},
|
||||
{{Field: "Field3", Index: StringPointer("0")}},
|
||||
{{Field: "Field1", Index: StringPointer("0")}},
|
||||
{{Field: "Field1", Index: StringPointer("1")}},
|
||||
{{Field: "Field3", Index: StringPointer("1")}},
|
||||
}
|
||||
if addedNew, err := nm.Set(&FullPath{
|
||||
PathItems: PathItems{{Field: "Field3", Index: IntPointer(-1)}},
|
||||
PathItems: PathItems{{Field: "Field3", Index: StringPointer("-1")}},
|
||||
Path: "Field3[-1]",
|
||||
}, NewNMData("1007")); err != nil {
|
||||
t.Error(err)
|
||||
@@ -673,7 +673,7 @@ func TestOrderedNavigableMapRemove(t *testing.T) {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if err := nm.Remove(&FullPath{PathItems: PathItems{{Index: IntPointer(-1)}, {}}}); err != ErrWrongPath {
|
||||
if err := nm.Remove(&FullPath{PathItems: PathItems{{Index: StringPointer("-1")}, {}}}); err != ErrWrongPath {
|
||||
t.Error(err)
|
||||
}
|
||||
nMap := NavigableMap2{
|
||||
@@ -686,8 +686,8 @@ func TestOrderedNavigableMapRemove(t *testing.T) {
|
||||
{{Field: "Field2"}},
|
||||
{{Field: "Field3"}, {Field: "Field4"}},
|
||||
{{Field: "Field1"}},
|
||||
{{Field: "Field5", Index: IntPointer(0)}},
|
||||
{{Field: "Field5", Index: IntPointer(1)}},
|
||||
{{Field: "Field5", Index: StringPointer("0")}},
|
||||
{{Field: "Field5", Index: StringPointer("1")}},
|
||||
}
|
||||
if !reflect.DeepEqual(nm.nm, nMap) {
|
||||
t.Errorf("Expected %s ,received: %s", nMap, nm)
|
||||
@@ -703,8 +703,8 @@ func TestOrderedNavigableMapRemove(t *testing.T) {
|
||||
order = []PathItems{
|
||||
{{Field: "Field3"}, {Field: "Field4"}},
|
||||
{{Field: "Field1"}},
|
||||
{{Field: "Field5", Index: IntPointer(0)}},
|
||||
{{Field: "Field5", Index: IntPointer(1)}},
|
||||
{{Field: "Field5", Index: StringPointer("0")}},
|
||||
{{Field: "Field5", Index: StringPointer("1")}},
|
||||
}
|
||||
|
||||
if err := nm.Remove(&FullPath{PathItems: PathItems{{Field: "Field2"}}, Path: "Field2"}); err != nil {
|
||||
@@ -734,7 +734,7 @@ func TestOrderedNavigableMapRemove(t *testing.T) {
|
||||
if !reflect.DeepEqual(nm.GetOrder(), order) {
|
||||
t.Errorf("Expected %s ,received: %s", order, nm.GetOrder())
|
||||
}
|
||||
if err := nm.Remove(&FullPath{PathItems: PathItems{{Field: "Field1", Index: IntPointer(0)}, {}}}); err != ErrWrongPath {
|
||||
if err := nm.Remove(&FullPath{PathItems: PathItems{{Field: "Field1", Index: StringPointer("0")}, {}}}); err != ErrWrongPath {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user