diff --git a/apier/v1/suppliers_it_test.go b/apier/v1/suppliers_it_test.go index af6493f01..9b0a3fb59 100644 --- a/apier/v1/suppliers_it_test.go +++ b/apier/v1/suppliers_it_test.go @@ -59,6 +59,7 @@ var sTestsSupplierSV1 = []func(t *testing.T){ testV1SplSGetQOSSuppliers2, testV1SplSGetQOSSuppliers3, testV1SplSGetQOSSuppliersFiltred, + testV1SplSGetQOSSuppliersFiltred2, testV1SplSGetSupplierWithoutFilter, testV1SplSSetSupplierProfiles, testV1SplSUpdateSupplierProfiles, @@ -350,7 +351,6 @@ func testV1SplSGetHighestCostSuppliers(t *testing.T) { ID: "testV1SplSGetHighestCostSuppliers", Event: map[string]interface{}{ utils.Account: "1003", - utils.Subject: "1003", utils.Destination: "1002", utils.SetupTime: time.Date(2017, 12, 1, 14, 25, 0, 0, time.UTC), utils.Usage: "1m20s", @@ -721,6 +721,56 @@ func testV1SplSGetQOSSuppliersFiltred(t *testing.T) { } } +func testV1SplSGetQOSSuppliersFiltred2(t *testing.T) { + ev := &engine.ArgsGetSuppliers{ + CGREvent: utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testV1SplSGetQOSSuppliers", + Event: map[string]interface{}{ + "DistincMatch": "*qos_filtred2", + utils.Account: "1003", + utils.Destination: "1002", + utils.SetupTime: time.Date(2017, 12, 1, 14, 25, 0, 0, time.UTC), + utils.Usage: "1m20s", + }, + }, + } + eSpls := engine.SortedSuppliers{ + ProfileID: "SPL_QOS_FILTRED2", + Sorting: utils.MetaQOS, + SortedSuppliers: []*engine.SortedSupplier{ + &engine.SortedSupplier{ + SupplierID: "supplier3", + SortingData: map[string]interface{}{ + "*acd:Stat_3": 11.0, + "*asr:Stat_3": 100.0, + "*tcd:Stat_3": 11.0, + utils.Weight: 35.0, + }, + }, + &engine.SortedSupplier{ + SupplierID: "supplier2", + SortingData: map[string]interface{}{ + "*acd:Stat_2": 5.5, + "*asr:Stat_2": 100.0, + "*tcd:Stat_2": 11.0, + utils.Cost: 0.46666, + utils.RatingPlanID: "RP_RETAIL1", + utils.Weight: 20.0, + }, + }, + }, + } + var suplsReply engine.SortedSuppliers + if err := splSv1Rpc.Call(utils.SupplierSv1GetSuppliers, + ev, &suplsReply); err != nil { + t.Error(err) + } else if !reflect.DeepEqual(eSpls, suplsReply) { + t.Errorf("Expecting: %s, received: %s", + utils.ToJSON(eSpls), utils.ToJSON(suplsReply)) + } +} + func testV1SplSGetSupplierWithoutFilter(t *testing.T) { ev := &engine.ArgsGetSuppliers{ CGREvent: utils.CGREvent{ diff --git a/data/tariffplans/testit/Filters.csv b/data/tariffplans/testit/Filters.csv index 108e0db56..e8a572385 100644 --- a/data/tariffplans/testit/Filters.csv +++ b/data/tariffplans/testit/Filters.csv @@ -7,9 +7,8 @@ cgrates.org,FLTR_1,*rsr,,Subject(~^1.*1$);Destination(1002), cgrates.org,FLTR_ACNT_1007,*string,Account,1007,2014-07-29T15:00:00Z cgrates.org,FLTR_ACNT_dan,*string,Account,dan,2014-07-29T15:00:00Z cgrates.org,FLTR_SPP_ACNT_dan,*string,*req.Account,dan,2014-07-29T15:00:00Z -cgrates.org,FLTR_SPP_2,*string,Account,1003;1002,2014-07-29T15:00:00Z +cgrates.org,FLTR_SPP_2,*string,Account,1003,2014-07-29T15:00:00Z cgrates.org,FLTR_SPP_2,*prefix,Destination,10;20, -cgrates.org,FLTR_SPP_2,*rsr,,Subject(~^1.*1$);Destination(1002), cgrates.org,FLTR_SPP_2,*string,DistincMatch,*highest_cost, cgrates.org,FLTR_SPP_3,*string,DistincMatch,*qos,2014-07-29T15:00:00Z cgrates.org,FLTR_STAT_1,*string,Account,1001,2014-07-29T15:00:00Z @@ -21,4 +20,7 @@ cgrates.org,FLTR_STAT_1_1,*string,Stat,Stat1_1,2014-07-29T15:00:00Z cgrates.org,FLTR_SPP_6,*string,DistincMatch,*qos_filtred,2014-07-29T15:00:00Z cgrates.org,FLTR_QOS_SP1,*gte,*gs.*acd,10.0,2014-07-29T15:00:00Z cgrates.org,FLTR_QOS_SP2,*gte,*gs.*acd,10.0,2014-07-29T15:00:00Z -cgrates.org,FLTR_QOS_SP2,*gte,*gs.*tcd,11.0, \ No newline at end of file +cgrates.org,FLTR_QOS_SP2,*gte,*gs.*tcd,11.0, +cgrates.org,FLTR_SPP_QOS_2,*string,DistincMatch,*qos_filtred2,2014-07-29T15:00:00Z +cgrates.org,FLTR_QOS_SP1_2,*gte,*sd.Cost,0.1,2014-07-29T15:00:00Z +cgrates.org,FLTR_QOS_SP2_2,*gte,*sd.Cost,0.2,2014-07-29T15:00:00Z \ No newline at end of file diff --git a/data/tariffplans/testit/Suppliers.csv b/data/tariffplans/testit/Suppliers.csv index f9c95a2e5..a4ee4e6c5 100644 --- a/data/tariffplans/testit/Suppliers.csv +++ b/data/tariffplans/testit/Suppliers.csv @@ -23,3 +23,6 @@ cgrates.org,SPL_QOS_3,,,,,supplier3,,,,,Stat_3,35,,, cgrates.org,SPL_QOS_FILTRED,FLTR_SPP_6,2017-11-27T00:00:00Z,*qos,*pdd,supplier1,FLTR_QOS_SP1,,,,Stat_1;Stat_1_1,10,false,,10 cgrates.org,SPL_QOS_FILTRED,,,,,supplier2,FLTR_QOS_SP2,,,,Stat_2,20,,, cgrates.org,SPL_QOS_FILTRED,,,,,supplier3,,,,,Stat_3,35,,, +cgrates.org,SPL_QOS_FILTRED2,FLTR_SPP_QOS_2,2017-11-27T00:00:00Z,*qos,*acd;*tcd;*asr,supplier1,FLTR_QOS_SP1_2,,RP_SPECIAL_1002,,Stat_1;Stat_1_1,10,false,,10 +cgrates.org,SPL_QOS_FILTRED2,,,,,supplier2,FLTR_QOS_SP2_2,,RP_RETAIL1,,Stat_2,20,,, +cgrates.org,SPL_QOS_FILTRED2,,,,,supplier3,,,,,Stat_3,35,,,