From 0e1543d0f4e5c1fe16df40dc3bcf9dfda058a807 Mon Sep 17 00:00:00 2001 From: Trial97 Date: Tue, 4 May 2021 12:30:23 +0300 Subject: [PATCH] Updated *rsr filter --- engine/filters.go | 2 +- engine/filters_test.go | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/engine/filters.go b/engine/filters.go index 4ff103f4d..0fcacacbe 100644 --- a/engine/filters.go +++ b/engine/filters.go @@ -549,7 +549,7 @@ func (fltr *FilterRule) passRSR(dDP utils.DataProvider) (bool, error) { } return false, err } - match := fltr.rsrFilters.Pass(fld, true) + match := fltr.rsrFilters.Pass(fld, false) return match, nil } diff --git a/engine/filters_test.go b/engine/filters_test.go index 56146110f..9e2b5a0ae 100644 --- a/engine/filters_test.go +++ b/engine/filters_test.go @@ -2042,3 +2042,24 @@ func TestFiltersPassGreaterThanFailParseValues(t *testing.T) { t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", false, rcv) } } + +func TestFilterPassRSRFieldsWithMultplieValues(t *testing.T) { + ev := utils.MapStorage{ + utils.MetaReq: utils.MapStorage{ + "23": "sip:11561561561561568@dan", + }, + } + cfg := config.NewDefaultCGRConfig() + dm := NewDataManager(NewInternalDB(nil, nil, true), cfg.CacheCfg(), nil) + flts := NewFilterS(cfg, nil, dm) + if passes, err := flts.Pass("cgrate.org", []string{"*rsr:~*req.23:dan|1001"}, ev); err != nil { + t.Error(err) + } else if !passes { + t.Error("Not passing") + } + if passes, err := flts.Pass("cgrate.org", []string{"*rsr:~*req.23:dan"}, ev); err != nil { + t.Error(err) + } else if !passes { + t.Error("Not passing") + } +}