mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-14 12:49:54 +05:00
Indexes when fltr is overwritten
This commit is contained in:
@@ -100,9 +100,15 @@ var (
|
||||
|
||||
testFilterIndexesCasesSetDifferentFilters,
|
||||
testFilterIndexesCasesOverwriteAttributes,
|
||||
testFilterIndexesCasesGetIndexesAnyContextChanged,
|
||||
//testFilterIndexesCasesGetIndexesAnyContextChanged,
|
||||
testFilterIndexesCasesGetIndexesSessionsContextChanged,
|
||||
|
||||
testFilterIndexesCasesSetIndexedFilter,
|
||||
testFilterIndexesCasesSetChargerWithFltr,
|
||||
testFilterIndexesCasesGetChargerIndexes,
|
||||
testFilterIndexesCasesOverwriteFilterForCharger,
|
||||
testFilterIndexesCasesGetChargerIndexesChanged,
|
||||
|
||||
testFilterIndexesCasesStopEngine,
|
||||
}
|
||||
)
|
||||
@@ -427,6 +433,119 @@ func testFilterIndexesCasesGetIndexesSessionsContextChanged(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func testFilterIndexesCasesSetIndexedFilter(t *testing.T) {
|
||||
filter1 = &v1.FilterWithCache{
|
||||
Filter: &engine.Filter{
|
||||
Tenant: "cgrates.org",
|
||||
ID: "FLTR_Charger",
|
||||
Rules: []*engine.FilterRule{
|
||||
{
|
||||
Type: utils.MetaString,
|
||||
Element: "~*req.CGRID",
|
||||
Values: []string{"tester_id"},
|
||||
},
|
||||
{
|
||||
Type: utils.MetaPrefix,
|
||||
Element: "~*req.AnswerTime",
|
||||
Values: []string{"2022"},
|
||||
},
|
||||
{
|
||||
Type: utils.MetaSuffix,
|
||||
Element: "~*req.AnswerTime",
|
||||
Values: []string{"202"},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
var result string
|
||||
if err := fIdxCasesRPC.Call(utils.APIerSv1SetFilter, filter1, &result); err != nil {
|
||||
t.Error(err)
|
||||
} else if result != utils.OK {
|
||||
t.Error("Unexpected reply returned", result)
|
||||
}
|
||||
}
|
||||
|
||||
func testFilterIndexesCasesSetChargerWithFltr(t *testing.T) {
|
||||
chargerProfile := &v1.ChargerWithCache{
|
||||
ChargerProfile: &engine.ChargerProfile{
|
||||
Tenant: "cgrates.org",
|
||||
ID: "ChrgerIndexable",
|
||||
FilterIDs: []string{"FLTR_Charger"},
|
||||
RunID: utils.MetaRaw,
|
||||
AttributeIDs: []string{"ATTR_FLTR1"},
|
||||
Weight: 20,
|
||||
},
|
||||
}
|
||||
var result string
|
||||
if err := fIdxCasesRPC.Call(utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil {
|
||||
t.Error(err)
|
||||
} else if result != utils.OK {
|
||||
t.Error("Unexpected reply returned", result)
|
||||
}
|
||||
}
|
||||
|
||||
func testFilterIndexesCasesGetChargerIndexes(t *testing.T) {
|
||||
arg := &v1.AttrGetFilterIndexes{
|
||||
Tenant: "cgrates.org",
|
||||
ItemType: utils.MetaChargers,
|
||||
}
|
||||
expectedIndexes := []string{
|
||||
"*string:~*req.CGRID:tester_id:ChrgerIndexable",
|
||||
"*prefix:~*req.AnswerTime:2022:ChrgerIndexable",
|
||||
}
|
||||
sort.Strings(expectedIndexes)
|
||||
var reply []string
|
||||
if err := fIdxCasesRPC.Call(utils.APIerSv1GetFilterIndexes, arg, &reply); err != nil {
|
||||
t.Error(err)
|
||||
} else if sort.Strings(reply); !reflect.DeepEqual(expectedIndexes, reply) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(expectedIndexes), utils.ToJSON(reply))
|
||||
}
|
||||
}
|
||||
|
||||
func testFilterIndexesCasesOverwriteFilterForCharger(t *testing.T) {
|
||||
filter1 = &v1.FilterWithCache{
|
||||
Filter: &engine.Filter{
|
||||
Tenant: "cgrates.org",
|
||||
ID: "FLTR_Charger",
|
||||
Rules: []*engine.FilterRule{
|
||||
{
|
||||
Type: utils.MetaString,
|
||||
Element: "~*req.Account",
|
||||
Values: []string{"12345"},
|
||||
},
|
||||
{
|
||||
Type: utils.MetaLessOrEqual,
|
||||
Element: "~*req.ProcessRuns",
|
||||
Values: []string{"1"},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
var result string
|
||||
if err := fIdxCasesRPC.Call(utils.APIerSv1SetFilter, filter1, &result); err != nil {
|
||||
t.Error(err)
|
||||
} else if result != utils.OK {
|
||||
t.Error("Unexpected reply returned", result)
|
||||
}
|
||||
}
|
||||
|
||||
func testFilterIndexesCasesGetChargerIndexesChanged(t *testing.T) {
|
||||
arg := &v1.AttrGetFilterIndexes{
|
||||
Tenant: "cgrates.org",
|
||||
ItemType: utils.MetaChargers,
|
||||
}
|
||||
expectedIndexes := []string{
|
||||
"*string:~*req.Account:12345:ChrgerIndexable",
|
||||
}
|
||||
sort.Strings(expectedIndexes)
|
||||
var reply []string
|
||||
if err := fIdxCasesRPC.Call(utils.APIerSv1GetFilterIndexes, arg, &reply); err != nil {
|
||||
t.Error(err)
|
||||
} else if sort.Strings(reply); !reflect.DeepEqual(expectedIndexes, reply) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(expectedIndexes), utils.ToJSON(reply))
|
||||
}
|
||||
}
|
||||
|
||||
func testFilterIndexesCasesStopEngine(t *testing.T) {
|
||||
if err := engine.KillEngine(100); err != nil {
|
||||
t.Error(err)
|
||||
|
||||
Reference in New Issue
Block a user