mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-25 09:08:45 +05:00
Updated it tests
This commit is contained in:
committed by
Dan Christian Bogos
parent
3ee187c5a9
commit
5c828e3073
@@ -112,7 +112,7 @@ func testIdxLoadTariffPlan(t *testing.T) {
|
||||
if err := idxLoadBiRPC.Call(context.Background(), utils.LoaderSv1Load,
|
||||
&loaders.ArgsProcessFolder{
|
||||
// StopOnError: true,
|
||||
Caching: utils.StringPointer(utils.MetaReload), // after laode, we got CacheIDs and it will be called Cachesv1.Clear, so indexes will be removed
|
||||
Caching: utils.StringPointer(utils.MetaReload), // after laod, we got CacheIDs and it will be called Cachesv1.Clear, so indexes will be removed
|
||||
}, &reply); err != nil {
|
||||
t.Error(err)
|
||||
} else if reply != utils.OK {
|
||||
@@ -132,7 +132,7 @@ func testIdxLoadCheckIndexes(t *testing.T) {
|
||||
if err := idxLoadBiRPC.Call(context.Background(), utils.AdminSv1GetFilterIndexes,
|
||||
&AttrGetFilterIndexes{
|
||||
ItemType: utils.MetaRateProfiles,
|
||||
}, &reply); (err == nil || err.Error() != utils.ErrNotFound.Error()) && idxLoadConfigDIR == "session_volume_discount_internal" {
|
||||
}, &reply); (err == nil || err.Error() != utils.ErrNotFound.Error()) && idxLoadCfg.DataDbCfg().Type == utils.MetaInternal {
|
||||
t.Error(err)
|
||||
} else {
|
||||
sort.Strings(expected)
|
||||
@@ -150,7 +150,7 @@ func testIdxLoadCheckIndexes(t *testing.T) {
|
||||
if err := idxLoadBiRPC.Call(context.Background(), utils.AdminSv1GetFilterIndexes,
|
||||
&AttrGetFilterIndexes{
|
||||
ItemType: utils.MetaChargers,
|
||||
}, &reply); (err == nil || err.Error() != utils.ErrNotFound.Error()) && idxLoadConfigDIR == "session_volume_discount_internal" {
|
||||
}, &reply); (err == nil || err.Error() != utils.ErrNotFound.Error()) && idxLoadCfg.DataDbCfg().Type == utils.MetaInternal {
|
||||
t.Error(err)
|
||||
} else {
|
||||
sort.Strings(expected)
|
||||
@@ -168,7 +168,7 @@ func testIdxLoadCheckIndexes(t *testing.T) {
|
||||
if err := idxLoadBiRPC.Call(context.Background(), utils.AdminSv1GetFilterIndexes,
|
||||
&AttrGetFilterIndexes{
|
||||
ItemType: utils.MetaAttributes,
|
||||
}, &reply); (err == nil || err.Error() != utils.ErrNotFound.Error()) && idxLoadConfigDIR == "session_volume_discount_internal" {
|
||||
}, &reply); (err == nil || err.Error() != utils.ErrNotFound.Error()) && idxLoadCfg.DataDbCfg().Type == utils.MetaInternal {
|
||||
t.Error(err)
|
||||
} else {
|
||||
sort.Strings(expected)
|
||||
|
||||
@@ -103,7 +103,7 @@ func testLdPrMatchAcRPCConn(t *testing.T) {
|
||||
|
||||
func testLdPrMatchAcLoadTP(t *testing.T) {
|
||||
caching := utils.MetaReload
|
||||
if testLdPrMatchAcCfgDir == "ld_process_match_rt_internal" {
|
||||
if testLdPrMatchAcCfg.DataDbCfg().Type == utils.Internal {
|
||||
caching = utils.MetaNone
|
||||
}
|
||||
var reply string
|
||||
|
||||
@@ -133,7 +133,7 @@ func testSessVolDiscApierRpcConn(t *testing.T) {
|
||||
|
||||
func testSessVolDiscLoadersLoad(t *testing.T) {
|
||||
caching := utils.MetaReload
|
||||
if tSessVolDiscCfgDIR == "session_volume_discount_internal" {
|
||||
if tSessVolDiscCfg.DataDbCfg().Type == utils.Internal {
|
||||
caching = utils.MetaNone
|
||||
}
|
||||
var reply string
|
||||
@@ -152,22 +152,38 @@ func testSessVolDiscAuthorizeEventSortRoutes1Min30Sec(t *testing.T) {
|
||||
expected := &sessions.V1AuthorizeReply{
|
||||
RouteProfiles: engine.SortedRoutesList{
|
||||
{
|
||||
ProfileID: "RP1",
|
||||
ProfileID: "LC1",
|
||||
Sorting: "*lc",
|
||||
Routes: []*engine.SortedRoute{
|
||||
{
|
||||
RouteID: "ROUTE1",
|
||||
RouteID: "supplier1",
|
||||
SortingData: map[string]interface{}{
|
||||
"Cost": float64(0.9), // 90second * 0.01/1sec
|
||||
"AccountIDs": []interface{}{"ACCOUNT1"},
|
||||
"AccountIDs": []interface{}{"ACNT_VOL1"},
|
||||
"Cost": nil, // returns from accounts null concretes, so the cost will be null,
|
||||
"Weight": float64(0),
|
||||
},
|
||||
},
|
||||
{
|
||||
RouteID: "ROUTE2",
|
||||
RouteID: "supplier2",
|
||||
SortingData: map[string]interface{}{
|
||||
"Cost": float64(4.5), // 90second * 0.05/1sec
|
||||
"RatingPlanID": "RP_ROUTE2",
|
||||
"Cost": float64(1.200000000000001),
|
||||
"RatingPlanID": "RP_SUPPLIER2",
|
||||
"Weight": float64(0),
|
||||
},
|
||||
},
|
||||
{
|
||||
RouteID: "supplier4",
|
||||
SortingData: map[string]interface{}{
|
||||
"Cost": float64(1.365),
|
||||
"RatingPlanID": "RP_SUPPLIER4",
|
||||
"Weight": float64(0),
|
||||
},
|
||||
},
|
||||
{
|
||||
RouteID: "supplier3",
|
||||
SortingData: map[string]interface{}{
|
||||
"Cost": float64(1.425000000000001),
|
||||
"RatingPlanID": "RP_SUPPLIER3",
|
||||
"Weight": float64(0),
|
||||
},
|
||||
},
|
||||
@@ -179,13 +195,14 @@ func testSessVolDiscAuthorizeEventSortRoutes1Min30Sec(t *testing.T) {
|
||||
Tenant: "cgrates.org",
|
||||
ID: "testSessVolDiscAuthorizeEvent1",
|
||||
Event: map[string]interface{}{
|
||||
utils.AccountField: "dan.bogos",
|
||||
utils.AccountField: "sipp",
|
||||
utils.Category: "call",
|
||||
utils.ToR: "*voice",
|
||||
},
|
||||
APIOpts: map[string]interface{}{
|
||||
utils.MetaUsage: time.Minute + 30*time.Second,
|
||||
utils.OptsRouteS: true,
|
||||
utils.MetaUsage: time.Minute + 30*time.Second,
|
||||
utils.OptsRouteS: true,
|
||||
utils.MetaProfileIgnoreFilters: true,
|
||||
},
|
||||
}
|
||||
// authorize the session for 1m30s
|
||||
@@ -194,6 +211,7 @@ func testSessVolDiscAuthorizeEventSortRoutes1Min30Sec(t *testing.T) {
|
||||
args, &rplyFirst); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(expected, rplyFirst) {
|
||||
t.Errorf(" %T si %T", expected.RouteProfiles[0].Routes[1].SortingData["Weight"], rplyFirst.RouteProfiles[0].Routes[1].SortingData["Weight"])
|
||||
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(rplyFirst))
|
||||
}
|
||||
}
|
||||
@@ -202,22 +220,38 @@ func testSessVolDiscAuthorizeEventSortRoutes11Min10Sec(t *testing.T) {
|
||||
expected := &sessions.V1AuthorizeReply{
|
||||
RouteProfiles: engine.SortedRoutesList{
|
||||
{
|
||||
ProfileID: "RP1",
|
||||
ProfileID: "LC1",
|
||||
Sorting: "*lc",
|
||||
Routes: []*engine.SortedRoute{
|
||||
{
|
||||
RouteID: "ROUTE1",
|
||||
RouteID: "supplier1",
|
||||
SortingData: map[string]interface{}{
|
||||
"Cost": float64(7.4), // 600second * 0.01/1sec(from first balance) + 70second * 0.02/1sec(from second balance)
|
||||
"AccountIDs": []interface{}{"ACCOUNT1"},
|
||||
"AccountIDs": []interface{}{"ACNT_VOL1"},
|
||||
"Cost": float64(8.521666666666668), // returns from accounts null concretes, so the cost will be null,
|
||||
"Weight": float64(0),
|
||||
},
|
||||
},
|
||||
{
|
||||
RouteID: "ROUTE2",
|
||||
RouteID: "supplier2",
|
||||
SortingData: map[string]interface{}{
|
||||
"Cost": float64(33.5), // 670second * 0.05/1sec
|
||||
"RatingPlanID": "RP_ROUTE2",
|
||||
"Cost": float64(8.933333333333337),
|
||||
"RatingPlanID": "RP_SUPPLIER2",
|
||||
"Weight": float64(0),
|
||||
},
|
||||
},
|
||||
{
|
||||
RouteID: "supplier4",
|
||||
SortingData: map[string]interface{}{
|
||||
"Cost": float64(10.16166666666667),
|
||||
"RatingPlanID": "RP_SUPPLIER4",
|
||||
"Weight": float64(0),
|
||||
},
|
||||
},
|
||||
{
|
||||
RouteID: "supplier3",
|
||||
SortingData: map[string]interface{}{
|
||||
"Cost": float64(10.60833333333334),
|
||||
"RatingPlanID": "RP_SUPPLIER3",
|
||||
"Weight": float64(0),
|
||||
},
|
||||
},
|
||||
@@ -234,8 +268,9 @@ func testSessVolDiscAuthorizeEventSortRoutes11Min10Sec(t *testing.T) {
|
||||
utils.ToR: "*voice",
|
||||
},
|
||||
APIOpts: map[string]interface{}{
|
||||
utils.MetaUsage: 11*time.Minute + 10*time.Second,
|
||||
utils.OptsRouteS: true,
|
||||
utils.MetaUsage: 11*time.Minute + 10*time.Second,
|
||||
utils.OptsRouteS: true,
|
||||
utils.MetaProfileIgnoreFilters: true,
|
||||
},
|
||||
}
|
||||
// authorize the session for 11m10s
|
||||
@@ -252,22 +287,38 @@ func testSessVolDiscAuthorizeEventSortRoutes20Min(t *testing.T) {
|
||||
expected := &sessions.V1AuthorizeReply{
|
||||
RouteProfiles: engine.SortedRoutesList{
|
||||
{
|
||||
ProfileID: "RP1",
|
||||
ProfileID: "LC1",
|
||||
Sorting: "*lc",
|
||||
Routes: []*engine.SortedRoute{
|
||||
{
|
||||
RouteID: "ROUTE1",
|
||||
RouteID: "supplier2",
|
||||
SortingData: map[string]interface{}{
|
||||
"Cost": float64(42), // 1200total: 600second * 0.01/1sec(from first balance) + 300second * 0.02/1sec(from second balance) + 300sec * 0.1/1sec(third balance)
|
||||
"AccountIDs": []interface{}{"ACCOUNT1"},
|
||||
"RatingPlanID": "RP_SUPPLIER2",
|
||||
"Cost": float64(16.00000000000001), // returns from accounts null concretes, so the cost will be null,
|
||||
"Weight": float64(0),
|
||||
},
|
||||
},
|
||||
{
|
||||
RouteID: "supplier1",
|
||||
SortingData: map[string]interface{}{
|
||||
"Cost": float64(17.09),
|
||||
"AccountIDs": []interface{}{"ACNT_VOL1"},
|
||||
"Weight": float64(0),
|
||||
},
|
||||
},
|
||||
{
|
||||
RouteID: "ROUTE2",
|
||||
RouteID: "supplier4",
|
||||
SortingData: map[string]interface{}{
|
||||
"Cost": float64(60), // 1200second * 0.05/1sec
|
||||
"RatingPlanID": "RP_ROUTE2",
|
||||
"Cost": float64(18.2),
|
||||
"RatingPlanID": "RP_SUPPLIER4",
|
||||
"Weight": float64(0),
|
||||
},
|
||||
},
|
||||
{
|
||||
RouteID: "supplier3",
|
||||
SortingData: map[string]interface{}{
|
||||
"Cost": float64(19.00000000000001),
|
||||
"RatingPlanID": "RP_SUPPLIER3",
|
||||
"Weight": float64(0),
|
||||
},
|
||||
},
|
||||
@@ -284,8 +335,9 @@ func testSessVolDiscAuthorizeEventSortRoutes20Min(t *testing.T) {
|
||||
utils.ToR: "*voice",
|
||||
},
|
||||
APIOpts: map[string]interface{}{
|
||||
utils.MetaUsage: 20 * time.Minute,
|
||||
utils.OptsRouteS: true,
|
||||
utils.MetaUsage: 20 * time.Minute,
|
||||
utils.OptsRouteS: true,
|
||||
utils.MetaProfileIgnoreFilters: true,
|
||||
},
|
||||
}
|
||||
// authorize the session for 20m
|
||||
@@ -307,9 +359,6 @@ func testSessVolDiscProcessCDRSupplier(t *testing.T) {
|
||||
utils.Destination: "1002",
|
||||
},
|
||||
APIOpts: map[string]interface{}{
|
||||
// utils.OptsAttributeS: true,
|
||||
// utils.OptsChargerS: true,
|
||||
// utils.OptsAccountS: true,
|
||||
utils.StartTime: time.Date(2020, time.January, 7, 16, 60, 0, 0, time.UTC),
|
||||
utils.MetaUsage: 15 * time.Minute,
|
||||
},
|
||||
@@ -334,9 +383,6 @@ func testSessVolDiscProcessCDRCustomer(t *testing.T) {
|
||||
utils.Destination: "1002",
|
||||
},
|
||||
APIOpts: map[string]interface{}{
|
||||
// utils.OptsAttributeS: true,
|
||||
// utils.OptsChargerS: true,
|
||||
// utils.OptsAccountS: true,
|
||||
utils.StartTime: time.Date(2020, time.January, 7, 16, 60, 0, 0, time.UTC),
|
||||
utils.MetaUsage: 15 * time.Minute,
|
||||
},
|
||||
@@ -418,22 +464,38 @@ func testSessVolDiscAuthorizeEventSortRoutes1Min30SecAfterDebiting(t *testing.T)
|
||||
expected := &sessions.V1AuthorizeReply{
|
||||
RouteProfiles: engine.SortedRoutesList{
|
||||
{
|
||||
ProfileID: "RP1",
|
||||
ProfileID: "LC1",
|
||||
Sorting: "*lc",
|
||||
Routes: []*engine.SortedRoute{
|
||||
{
|
||||
RouteID: "ROUTE2",
|
||||
RouteID: "supplier2",
|
||||
SortingData: map[string]interface{}{
|
||||
"Cost": float64(4.5), // 90second * 0.05/1sec
|
||||
"RatingPlanID": "RP_ROUTE2",
|
||||
"Cost": float64(1.200000000000001),
|
||||
"RatingPlanID": "RP_SUPPLIER2",
|
||||
"Weight": float64(0),
|
||||
},
|
||||
},
|
||||
{
|
||||
RouteID: "ROUTE1",
|
||||
RouteID: "supplier4",
|
||||
SortingData: map[string]interface{}{
|
||||
"Cost": float64(9), // 90second * 0.1/1sec (the last balance with remain units)
|
||||
"AccountIDs": []interface{}{"ACCOUNT1"},
|
||||
"Cost": float64(1.365),
|
||||
"RatingPlanID": "RP_SUPPLIER4",
|
||||
"Weight": float64(0),
|
||||
},
|
||||
},
|
||||
{
|
||||
RouteID: "supplier3",
|
||||
SortingData: map[string]interface{}{
|
||||
"Cost": float64(1.425000000000001),
|
||||
"RatingPlanID": "RP_SUPPLIER3",
|
||||
"Weight": float64(0),
|
||||
},
|
||||
},
|
||||
{
|
||||
RouteID: "supplier1",
|
||||
SortingData: map[string]interface{}{
|
||||
"AccountIDs": []interface{}{"ACNT_VOL1"},
|
||||
"Cost": float64(1.455), // returns from accounts null concretes, so the cost will be null,
|
||||
"Weight": float64(0),
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user