Updated apier_it_test.go to work with RPC over gob

This commit is contained in:
Trial97
2019-11-18 15:35:22 +02:00
committed by Dan Christian Bogos
parent e073767669
commit 6e606df61f
22 changed files with 186 additions and 157 deletions

View File

@@ -83,7 +83,7 @@ func newRPCClient(cfg *config.ListenCfg) (c *rpc.Client, err error) {
func TestApierLoadConfig(t *testing.T) {
var err error
cfgPath = path.Join(*dataDir, "conf", "samples", "apier")
cfgPath = path.Join(*dataDir, "conf", "samples", "apier") // no need for a new config with *gob transport in this case
if cfg, err = config.NewCGRConfigFromPath(cfgPath); err != nil {
t.Error(err)
}
@@ -123,7 +123,7 @@ func TestApierStartEngine(t *testing.T) {
// Connect rpc client to rater
func TestApierRpcConn(t *testing.T) {
var err error
rater, err = jsonrpc.Dial("tcp", cfg.ListenCfg().RPCJSONListen) // We connect over JSON so we can also troubleshoot if needed
rater, err = newRPCClient(cfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
if err != nil {
t.Fatal("Could not connect to rater: ", err.Error())
}
@@ -154,33 +154,33 @@ func TestApierTPTiming(t *testing.T) {
}
reply := ""
for _, tm := range []*utils.ApierTPTiming{tmAlways, tmAsap, tmAlways2} {
if err := rater.Call("ApierV1.SetTPTiming", tm, &reply); err != nil {
if err := rater.Call(utils.ApierV1SetTPTiming, tm, &reply); err != nil {
t.Error("Got error on ApierV1.SetTPTiming: ", err.Error())
} else if reply != "OK" {
t.Error("Unexpected reply received when calling ApierV1.SetTPTiming: ", reply)
}
}
// Check second set
if err := rater.Call("ApierV1.SetTPTiming", tmAlways, &reply); err != nil {
if err := rater.Call(utils.ApierV1SetTPTiming, tmAlways, &reply); err != nil {
t.Error("Got error on second ApierV1.SetTPTiming: ", err.Error())
} else if reply != "OK" {
t.Error("Calling ApierV1.SetTPTiming got reply: ", reply)
}
// Check missing params
if err := rater.Call("ApierV1.SetTPTiming", new(utils.ApierTPTiming), &reply); err == nil {
if err := rater.Call(utils.ApierV1SetTPTiming, new(utils.ApierTPTiming), &reply); err == nil {
t.Error("Calling ApierV1.SetTPTiming, expected error, received: ", reply)
} else if err.Error() != "MANDATORY_IE_MISSING: [TPid ID Years Months MonthDays WeekDays Time]" {
t.Error("Calling ApierV1.SetTPTiming got unexpected error: ", err.Error())
}
// Test get
var rplyTmAlways2 *utils.ApierTPTiming
if err := rater.Call("ApierV1.GetTPTiming", AttrGetTPTiming{tmAlways2.TPid, tmAlways2.ID}, &rplyTmAlways2); err != nil {
if err := rater.Call(utils.ApierV1GetTPTiming, AttrGetTPTiming{tmAlways2.TPid, tmAlways2.ID}, &rplyTmAlways2); err != nil {
t.Error("Calling ApierV1.GetTPTiming, got error: ", err.Error())
} else if !reflect.DeepEqual(tmAlways2, rplyTmAlways2) {
t.Errorf("Calling ApierV1.GetTPTiming expected: %v, received: %v", tmAlways, rplyTmAlways2)
}
// Test remove
if err := rater.Call("ApierV1.RemoveTPTiming", AttrGetTPTiming{tmAlways2.TPid, tmAlways2.ID}, &reply); err != nil {
if err := rater.Call(utils.ApierV1RemoveTPTiming, AttrGetTPTiming{tmAlways2.TPid, tmAlways2.ID}, &reply); err != nil {
t.Error("Calling ApierV1.RemoveTPTiming, got error: ", err.Error())
} else if reply != "OK" {
t.Error("Calling ApierV1.RemoveTPTiming received: ", reply)
@@ -188,7 +188,7 @@ func TestApierTPTiming(t *testing.T) {
// Test getIds
var rplyTmIds []string
expectedTmIds := []string{"ALWAYS", "ASAP"}
if err := rater.Call("ApierV1.GetTPTimingIds", AttrGetTPTimingIds{tmAlways.TPid, utils.PaginatorWithSearch{}}, &rplyTmIds); err != nil {
if err := rater.Call(utils.ApierV1GetTPTimingIds, AttrGetTPTimingIds{tmAlways.TPid, utils.PaginatorWithSearch{}}, &rplyTmIds); err != nil {
t.Error("Calling ApierV1.GetTPTimingIds, got error: ", err.Error())
} else if !reflect.DeepEqual(expectedTmIds, rplyTmIds) {
t.Errorf("Calling ApierV1.GetTPTimingIds expected: %v, received: %v", expectedTmIds, rplyTmIds)
@@ -705,7 +705,7 @@ func TestApierLoadRatingProfile(t *testing.T) {
func TestApierLoadAccountActions(t *testing.T) {
var rcvStats map[string]*ltcache.CacheStats
expectedStats := engine.GetDefaultEmptyCacheStats() // Make sure nothing in cache so far
if err := rater.Call("CacheSv1.GetCacheStats", nil, &rcvStats); err != nil {
if err := rater.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithArgDispatcher), &rcvStats); err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expectedStats, rcvStats) {
t.Errorf("Calling CacheSv1.GetCacheStats expected: %+v, received: %+v", utils.ToJSON(expectedStats), utils.ToJSON(rcvStats))
@@ -721,7 +721,7 @@ func TestApierLoadAccountActions(t *testing.T) {
expectedStats[utils.CacheAccountActionPlans].Items = 1
expectedStats[utils.CacheActionPlans].Items = 1
expectedStats[utils.CacheActions].Items = 1
if err := rater.Call("CacheSv1.GetCacheStats", nil, &rcvStats); err != nil {
if err := rater.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithArgDispatcher), &rcvStats); err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expectedStats, rcvStats) {
t.Errorf("Calling CacheSv1.GetCacheStats expected: %+v, received: %+v", utils.ToJSON(expectedStats), utils.ToJSON(rcvStats))
@@ -756,7 +756,7 @@ func TestApierSetRatingProfile(t *testing.T) {
expectedStats[utils.CacheActionPlans].Items = 1
expectedStats[utils.CacheActions].Items = 1
expectedStats[utils.CacheRatingProfiles].Items = 1
if err := rater.Call("CacheSv1.GetCacheStats", nil, &rcvStats); err != nil {
if err := rater.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithArgDispatcher), &rcvStats); err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expectedStats, rcvStats) {
t.Errorf("Calling CacheSv1.GetCacheStats expected: %+v, received: %+v", expectedStats, rcvStats)
@@ -769,26 +769,28 @@ func TestApierSetRatingProfile(t *testing.T) {
// Test here ResponderGetCost
tStart, _ := utils.ParseTimeDetectLayout("2013-08-07T17:30:00Z", "")
tEnd, _ := utils.ParseTimeDetectLayout("2013-08-07T17:31:30Z", "")
cd := engine.CallDescriptor{
Category: "call",
Tenant: "cgrates.org",
Subject: "dan",
Account: "dan",
Destination: "+4917621621391",
DurationIndex: 90,
TimeStart: tStart,
TimeEnd: tEnd,
cd := &engine.CallDescriptorWithArgDispatcher{
CallDescriptor: &engine.CallDescriptor{
Category: "call",
Tenant: "cgrates.org",
Subject: "dan",
Account: "dan",
Destination: "+4917621621391",
DurationIndex: 90,
TimeStart: tStart,
TimeEnd: tEnd,
},
}
var cc engine.CallCost
// Simple test that command is executed without errors
if err := rater.Call("Responder.GetCost", cd, &cc); err != nil {
if err := rater.Call(utils.ResponderGetCost, cd, &cc); err != nil {
t.Error("Got error on Responder.GetCost: ", err.Error())
} else if cc.Cost != 0 {
t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)
}
expectedStats[utils.CacheRatingPlans].Items = 1
expectedStats[utils.CacheReverseDestinations].Items = 10
if err := rater.Call("CacheSv1.GetCacheStats", nil, &rcvStats); err != nil {
if err := rater.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithArgDispatcher), &rcvStats); err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expectedStats, rcvStats) {
t.Errorf("Calling CacheSv1.GetCacheStats expected: %+v, received: %+v", utils.ToJSON(expectedStats), utils.ToJSON(rcvStats))
@@ -861,7 +863,7 @@ func TestApierReloadCache(t *testing.T) {
expectedStats[utils.CacheRatingPlans].Items = 1
expectedStats[utils.CacheReverseDestinations].Items = 10
expectedStats[utils.CacheLoadIDs].Items = 20
if err := rater.Call("CacheSv1.GetCacheStats", nil, &rcvStats); err != nil {
if err := rater.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithArgDispatcher), &rcvStats); err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expectedStats, rcvStats) {
t.Errorf("Calling CacheSv1.GetCacheStats expected: %+v, received: %+v", utils.ToJSON(expectedStats), utils.ToJSON(rcvStats))
@@ -929,43 +931,43 @@ func TestApierRemoveRatingPlan(t *testing.T) {
func TestApierAddBalance(t *testing.T) {
reply := ""
attrs := &AttrAddBalance{Tenant: "cgrates.org", Account: "1001", BalanceType: "*monetary", Value: 1.5}
if err := rater.Call(utils.ApierV1AddBalance, attrs, &reply); err != nil {
if err := rater.Call("ApierV1.AddBalance", attrs, &reply); err != nil {
t.Error("Got error on ApierV1.AddBalance: ", err.Error())
} else if reply != "OK" {
t.Errorf("Calling ApierV1.AddBalance received: %s", reply)
}
attrs = &AttrAddBalance{Tenant: "cgrates.org", Account: "dan", BalanceType: "*monetary", Value: 1.5}
if err := rater.Call(utils.ApierV1AddBalance, attrs, &reply); err != nil {
if err := rater.Call("ApierV1.AddBalance", attrs, &reply); err != nil {
t.Error("Got error on ApierV1.AddBalance: ", err.Error())
} else if reply != "OK" {
t.Errorf("Calling ApierV1.AddBalance received: %s", reply)
}
attrs = &AttrAddBalance{Tenant: "cgrates.org", Account: "dan2", BalanceType: "*monetary", Value: 1.5}
if err := rater.Call(utils.ApierV1AddBalance, attrs, &reply); err != nil {
if err := rater.Call("ApierV1.AddBalance", attrs, &reply); err != nil {
t.Error("Got error on ApierV1.AddBalance: ", err.Error())
} else if reply != "OK" {
t.Errorf("Calling ApierV1.AddBalance received: %s", reply)
}
attrs = &AttrAddBalance{Tenant: "cgrates.org", Account: "dan3", BalanceType: "*monetary", Value: 1.5}
if err := rater.Call(utils.ApierV1AddBalance, attrs, &reply); err != nil {
if err := rater.Call("ApierV1.AddBalance", attrs, &reply); err != nil {
t.Error("Got error on ApierV1.AddBalance: ", err.Error())
} else if reply != "OK" {
t.Errorf("Calling ApierV1.AddBalance received: %s", reply)
}
attrs = &AttrAddBalance{Tenant: "cgrates.org", Account: "dan3", BalanceType: "*monetary", Value: 2.1}
if err := rater.Call(utils.ApierV1AddBalance, attrs, &reply); err != nil {
if err := rater.Call("ApierV1.AddBalance", attrs, &reply); err != nil {
t.Error("Got error on ApierV1.AddBalance: ", err.Error())
} else if reply != "OK" {
t.Errorf("Calling ApierV1.AddBalance received: %s", reply)
}
attrs = &AttrAddBalance{Tenant: "cgrates.org", Account: "dan6", BalanceType: "*monetary", Value: 2.1}
if err := rater.Call(utils.ApierV1AddBalance, attrs, &reply); err != nil {
if err := rater.Call("ApierV1.AddBalance", attrs, &reply); err != nil {
t.Error("Got error on ApierV1.AddBalance: ", err.Error())
} else if reply != "OK" {
t.Errorf("Calling ApierV1.AddBalance received: %s", reply)
}
attrs = &AttrAddBalance{Tenant: "cgrates.org", Account: "dan6", BalanceType: "*monetary", Value: 1, Overwrite: true}
if err := rater.Call(utils.ApierV1AddBalance, attrs, &reply); err != nil {
if err := rater.Call("ApierV1.AddBalance", attrs, &reply); err != nil {
t.Error("Got error on ApierV1.AddBalance: ", err.Error())
} else if reply != "OK" {
t.Errorf("Calling ApierV1.AddBalance received: %s", reply)
@@ -1039,7 +1041,7 @@ func TestApierSetActionPlan(t *testing.T) {
func TestApierAddTriggeredAction(t *testing.T) {
var reply string
attrs := &AttrAddBalance{Tenant: "cgrates.org", Account: "dan32", BalanceType: "*monetary", Value: 1.5}
if err := rater.Call(utils.ApierV1AddBalance, attrs, &reply); err != nil {
if err := rater.Call("ApierV1.AddBalance", attrs, &reply); err != nil {
t.Error("Got error on ApierV1.AddBalance: ", err.Error())
} else if reply != "OK" {
t.Errorf("Calling ApierV1.AddBalance received: %s", reply)
@@ -1171,7 +1173,7 @@ func TestApierRemAccountActionTriggers(t *testing.T) {
func TestApierSetAccount(t *testing.T) {
reply := ""
attrs := &utils.AttrSetAccount{Tenant: "cgrates.org", Account: "dan7", ActionPlanId: "ATMS_1", ReloadScheduler: true}
if err := rater.Call(utils.ApierV1SetAccount, attrs, &reply); err != nil {
if err := rater.Call("ApierV1.SetAccount", attrs, &reply); err != nil {
t.Error("Got error on ApierV1.SetAccount: ", err.Error())
} else if reply != "OK" {
t.Errorf("Calling ApierV1.SetAccount received: %s", reply)
@@ -1181,7 +1183,7 @@ func TestApierSetAccount(t *testing.T) {
*attrs2 = *attrs
attrs2.ActionPlanId = "DUMMY_DATA" // Does not exist so it should error when adding triggers on it
// Add account with actions timing which does not exist
if err := rater.Call(utils.ApierV1SetAccount, attrs2, &reply2); err == nil || reply2 == "OK" { // OK is not welcomed
if err := rater.Call("ApierV1.SetAccount", attrs2, &reply2); err == nil || reply2 == "OK" { // OK is not welcomed
t.Error("Expecting error on ApierV1.SetAccount.", err, reply2)
}
}
@@ -1272,13 +1274,13 @@ func TestApierGetAccount(t *testing.T) {
func TestApierTriggersExecute(t *testing.T) {
reply := ""
attrs := &utils.AttrSetAccount{Tenant: "cgrates.org", Account: "dan8", ReloadScheduler: true}
if err := rater.Call(utils.ApierV1SetAccount, attrs, &reply); err != nil {
if err := rater.Call("ApierV1.SetAccount", attrs, &reply); err != nil {
t.Error("Got error on ApierV1.SetAccount: ", err.Error())
} else if reply != "OK" {
t.Errorf("Calling ApierV1.SetAccount received: %s", reply)
}
attrAddBlnc := &AttrAddBalance{Tenant: "cgrates.org", Account: "1008", BalanceType: "*monetary", Value: 2}
if err := rater.Call(utils.ApierV1AddBalance, attrAddBlnc, &reply); err != nil {
if err := rater.Call("ApierV1.AddBalance", attrAddBlnc, &reply); err != nil {
t.Error("Got error on ApierV1.AddBalance: ", err.Error())
} else if reply != "OK" {
t.Errorf("Calling ApierV1.AddBalance received: %s", reply)
@@ -1297,7 +1299,7 @@ func TestApierResetDataBeforeLoadFromFolder(t *testing.T) {
}
var rcvStats map[string]*ltcache.CacheStats
expectedStats := engine.GetDefaultEmptyCacheStats()
err := rater.Call("CacheSv1.GetCacheStats", nil, &rcvStats)
err := rater.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithArgDispatcher), &rcvStats)
if err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(rcvStats, expectedStats) {
@@ -1350,7 +1352,7 @@ func TestApierResetDataAfterLoadFromFolder(t *testing.T) {
expStats[utils.CacheActions].Items = 6
expStats[utils.CacheDestinations].Items = 3
expStats[utils.CacheLoadIDs].Items = 14
if err := rater.Call("CacheSv1.GetCacheStats", nil, &rcvStats); err != nil {
if err := rater.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithArgDispatcher), &rcvStats); err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expStats, rcvStats) {
t.Errorf("Expecting: %+v,\n received: %+v", utils.ToJSON(expStats), utils.ToJSON(rcvStats))
@@ -1378,7 +1380,7 @@ func TestApierResetDataAfterLoadFromFolder(t *testing.T) {
expStats[utils.CacheThresholds].Items = 1
expStats[utils.CacheLoadIDs].Items = 20
if err := rater.Call("CacheSv1.GetCacheStats", nil, &rcvStats); err != nil {
if err := rater.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithArgDispatcher), &rcvStats); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expStats, rcvStats) {
t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(expStats), utils.ToJSON(rcvStats))
@@ -1401,19 +1403,21 @@ func TestApierGetAccountAfterLoad(t *testing.T) {
func TestApierResponderGetCost(t *testing.T) {
tStart, _ := utils.ParseTimeDetectLayout("2013-08-07T17:30:00Z", "")
tEnd, _ := utils.ParseTimeDetectLayout("2013-08-07T17:31:30Z", "")
cd := engine.CallDescriptor{
Category: "call",
Tenant: "cgrates.org",
Subject: "1001",
Account: "1001",
Destination: "+4917621621391",
DurationIndex: 90,
TimeStart: tStart,
TimeEnd: tEnd,
cd := &engine.CallDescriptorWithArgDispatcher{
CallDescriptor: &engine.CallDescriptor{
Category: "call",
Tenant: "cgrates.org",
Subject: "1001",
Account: "1001",
Destination: "+4917621621391",
DurationIndex: 90,
TimeStart: tStart,
TimeEnd: tEnd,
},
}
var cc engine.CallCost
// Simple test that command is executed without errors
if err := rater.Call("Responder.GetCost", cd, &cc); err != nil {
if err := rater.Call(utils.ResponderGetCost, cd, &cc); err != nil {
t.Error("Got error on Responder.GetCost: ", err.Error())
} else if cc.Cost != 90.0 {
t.Errorf("Calling Responder.GetCost got callcost: %v", cc)
@@ -1423,19 +1427,21 @@ func TestApierResponderGetCost(t *testing.T) {
func TestApierMaxDebitInexistentAcnt(t *testing.T) {
cc := &engine.CallCost{}
cd := engine.CallDescriptor{
Tenant: "cgrates.org",
Category: "call",
Subject: "INVALID",
Account: "INVALID",
Destination: "1002",
TimeStart: time.Date(2014, 3, 27, 10, 42, 26, 0, time.UTC),
TimeEnd: time.Date(2014, 3, 27, 10, 42, 26, 0, time.UTC).Add(time.Duration(10) * time.Second),
cd := &engine.CallDescriptorWithArgDispatcher{
CallDescriptor: &engine.CallDescriptor{
Tenant: "cgrates.org",
Category: "call",
Subject: "INVALID",
Account: "INVALID",
Destination: "1002",
TimeStart: time.Date(2014, 3, 27, 10, 42, 26, 0, time.UTC),
TimeEnd: time.Date(2014, 3, 27, 10, 42, 26, 0, time.UTC).Add(time.Duration(10) * time.Second),
},
}
if err := rater.Call("Responder.MaxDebit", cd, cc); err == nil {
if err := rater.Call(utils.ResponderMaxDebit, cd, cc); err == nil {
t.Error(err.Error())
}
if err := rater.Call("Responder.Debit", cd, cc); err == nil {
if err := rater.Call(utils.ResponderDebit, cd, cc); err == nil {
t.Error(err.Error())
}
@@ -1463,7 +1469,7 @@ func TestApierCdrServer(t *testing.T) {
func TestApierITGetCdrs(t *testing.T) {
var reply []*engine.ExternalCDR
req := utils.AttrGetCdrs{MediationRunIds: []string{utils.MetaRaw}}
if err := rater.Call("ApierV1.GetCDRs", req, &reply); err != nil {
if err := rater.Call(utils.ApierV1GetCDRs, req, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(reply) != 2 {
t.Error("Unexpected number of CDRs returned: ", len(reply))
@@ -1472,34 +1478,38 @@ func TestApierITGetCdrs(t *testing.T) {
func TestApierITProcessCdr(t *testing.T) {
//add a default charger
chargerProfile := &engine.ChargerProfile{
Tenant: "cgrates.org",
ID: "Default",
RunID: utils.MetaDefault,
AttributeIDs: []string{"*none"},
Weight: 20,
chargerProfile := &ChargerWithCache{
ChargerProfile: &engine.ChargerProfile{
Tenant: "cgrates.org",
ID: "Default",
RunID: utils.MetaDefault,
AttributeIDs: []string{"*none"},
Weight: 20,
},
}
var result string
if err := rater.Call("ApierV1.SetChargerProfile", chargerProfile, &result); err != nil {
if err := rater.Call(utils.ApierV1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
var reply string
cdr := engine.CDR{CGRID: utils.Sha1("dsafdsaf", time.Date(2013, 11, 7, 8, 42, 26, 0, time.UTC).String()), OrderID: 123, ToR: utils.VOICE, OriginID: "dsafdsaf",
OriginHost: "192.168.1.1", Source: "test", RequestType: utils.META_RATED, Tenant: "cgrates.org", Category: "call", Account: "1001", Subject: "1001",
Destination: "1002",
SetupTime: time.Date(2013, 11, 7, 8, 42, 26, 0, time.UTC), AnswerTime: time.Date(2013, 11, 7, 8, 42, 26, 0, time.UTC), RunID: utils.DEFAULT_RUNID,
Usage: time.Duration(10) * time.Second, ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"}, Cost: 1.01,
cdr := &engine.CDRWithArgDispatcher{
CDR: &engine.CDR{CGRID: utils.Sha1("dsafdsaf", time.Date(2013, 11, 7, 8, 42, 26, 0, time.UTC).String()), OrderID: 123, ToR: utils.VOICE, OriginID: "dsafdsaf",
OriginHost: "192.168.1.1", Source: "test", RequestType: utils.META_RATED, Tenant: "cgrates.org", Category: "call", Account: "1001", Subject: "1001",
Destination: "1002",
SetupTime: time.Date(2013, 11, 7, 8, 42, 26, 0, time.UTC), AnswerTime: time.Date(2013, 11, 7, 8, 42, 26, 0, time.UTC), RunID: utils.DEFAULT_RUNID,
Usage: time.Duration(10) * time.Second, ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"}, Cost: 1.01,
},
}
if err := rater.Call("CDRsV1.ProcessCDR", cdr, &reply); err != nil {
if err := rater.Call(utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
var cdrs []*engine.ExternalCDR
req := utils.AttrGetCdrs{MediationRunIds: []string{utils.MetaRaw}}
if err := rater.Call("ApierV1.GetCDRs", req, &cdrs); err != nil {
if err := rater.Call(utils.ApierV1GetCDRs, req, &cdrs); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if len(cdrs) != 3 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
@@ -1520,28 +1530,30 @@ func TestApierGetCallCostLog(t *testing.T) {
t.Error("ApierV1.GetCallCostLog: should return NOT_FOUND, got:", err)
}
tm := time.Now().Truncate(time.Millisecond)
cdr := &engine.CDR{
CGRID: "Cdr1",
OrderID: 123,
ToR: utils.VOICE,
OriginID: "OriginCDR1",
OriginHost: "192.168.1.1",
Source: "test",
RequestType: utils.META_RATED,
Tenant: "cgrates.org",
Category: "call",
Account: "1001",
Subject: "1001",
Destination: "+4986517174963",
SetupTime: tm,
AnswerTime: tm,
RunID: utils.DEFAULT_RUNID,
Usage: time.Duration(0),
ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"},
Cost: 1.01,
cdr := &engine.CDRWithArgDispatcher{
CDR: &engine.CDR{
CGRID: "Cdr1",
OrderID: 123,
ToR: utils.VOICE,
OriginID: "OriginCDR1",
OriginHost: "192.168.1.1",
Source: "test",
RequestType: utils.META_RATED,
Tenant: "cgrates.org",
Category: "call",
Account: "1001",
Subject: "1001",
Destination: "+4986517174963",
SetupTime: tm,
AnswerTime: tm,
RunID: utils.DEFAULT_RUNID,
Usage: time.Duration(0),
ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"},
Cost: 1.01,
},
}
var reply string
if err := rater.Call("CDRsV1.ProcessCDR", cdr, &reply); err != nil {
if err := rater.Call(utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
@@ -1694,7 +1706,7 @@ func TestApierLoadTariffPlanFromStorDbDryRun(t *testing.T) {
func TestApierGetCacheStats2(t *testing.T) {
var rcvStats map[string]*ltcache.CacheStats
expectedStats := engine.GetDefaultEmptyCacheStats()
err := rater.Call("CacheSv1.GetCacheStats", nil, &rcvStats)
err := rater.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithArgDispatcher), &rcvStats)
if err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expectedStats, rcvStats) {
@@ -1852,7 +1864,7 @@ func TestApierReplayFailedPosts(t *testing.T) {
func TestApierGetDataDBVesions(t *testing.T) {
var reply *engine.Versions
if err := rater.Call("ApierV1.GetDataDBVersions", "", &reply); err != nil {
if err := rater.Call(utils.ApierV1GetDataDBVersions, "", &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(engine.CurrentDataDBVersions(), *reply) {
t.Errorf("Expecting : %+v, received: %+v", engine.CurrentDataDBVersions(), *reply)
@@ -1861,7 +1873,7 @@ func TestApierGetDataDBVesions(t *testing.T) {
func TestApierGetStorDBVesions(t *testing.T) {
var reply *engine.Versions
if err := rater.Call("ApierV1.GetStorDBVersions", "", &reply); err != nil {
if err := rater.Call(utils.ApierV1GetStorDBVersions, "", &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(engine.CurrentStorDBVersions(), *reply) {
t.Errorf("Expecting : %+v, received: %+v", engine.CurrentStorDBVersions(), *reply)

View File

@@ -147,7 +147,7 @@ func testCDReAddCDRs(t *testing.T) {
}
for _, cdr := range storedCdrs {
var reply string
if err := cdreRPC.Call("CDRsV1.ProcessCDR", cdr, &reply); err != nil {
if err := cdreRPC.Call(utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)

View File

@@ -154,7 +154,7 @@ func testChargerSLoadAddCharger(t *testing.T) {
}
var result string
if err := chargerRPC.Call("ApierV1.SetChargerProfile", chargerProfile, &result); err != nil {
if err := chargerRPC.Call(utils.ApierV1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -257,7 +257,7 @@ func testChargerSSetChargerProfile(t *testing.T) {
},
}
var result string
if err := chargerRPC.Call("ApierV1.SetChargerProfile", chargerProfile, &result); err != nil {
if err := chargerRPC.Call(utils.ApierV1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -292,7 +292,7 @@ func testChargerSGetChargerProfileIDs(t *testing.T) {
func testChargerSUpdateChargerProfile(t *testing.T) {
chargerProfile.RunID = "*rated"
var result string
if err := chargerRPC.Call("ApierV1.SetChargerProfile", chargerProfile, &result); err != nil {
if err := chargerRPC.Call(utils.ApierV1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)

View File

@@ -129,7 +129,7 @@ func testTPTimingsRpcConn(t *testing.T) {
func testTPTimingsGetTPTimingBeforeSet(t *testing.T) {
var reply *utils.ApierTPTiming
if err := tpTimingRPC.Call("ApierV1.GetTPTiming", AttrGetTPTiming{TPid: "TPT1", ID: "Timining"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
if err := tpTimingRPC.Call(utils.ApierV1GetTPTiming, AttrGetTPTiming{TPid: "TPT1", ID: "Timining"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
}
@@ -145,7 +145,7 @@ func testTPTimingsSetTPTiming(t *testing.T) {
Time: "15:00:00Z",
}
var result string
if err := tpTimingRPC.Call("ApierV1.SetTPTiming", tpTiming, &result); err != nil {
if err := tpTimingRPC.Call(utils.ApierV1SetTPTiming, tpTiming, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -154,7 +154,7 @@ func testTPTimingsSetTPTiming(t *testing.T) {
func testTPTimingsGetTPTimingAfterSet(t *testing.T) {
var respond *utils.ApierTPTiming
if err := tpTimingRPC.Call("ApierV1.GetTPTiming", &AttrGetTPTiming{TPid: tpTiming.TPid, ID: tpTiming.ID}, &respond); err != nil {
if err := tpTimingRPC.Call(utils.ApierV1GetTPTiming, &AttrGetTPTiming{TPid: tpTiming.TPid, ID: tpTiming.ID}, &respond); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpTiming, respond) {
t.Errorf("Expecting: %+v, received: %+v", tpTiming, respond)
@@ -164,7 +164,7 @@ func testTPTimingsGetTPTimingAfterSet(t *testing.T) {
func testTPTimingsGetTPTimingIds(t *testing.T) {
var result []string
expectedTPID := []string{"Timing"}
if err := tpTimingRPC.Call("ApierV1.GetTPTimingIds", &AttrGetTPTimingIds{TPid: tpTiming.TPid}, &result); err != nil {
if err := tpTimingRPC.Call(utils.ApierV1GetTPTimingIds, &AttrGetTPTimingIds{TPid: tpTiming.TPid}, &result); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(result, expectedTPID) {
t.Errorf("Expecting: %+v, received: %+v", result, expectedTPID)
@@ -174,7 +174,7 @@ func testTPTimingsGetTPTimingIds(t *testing.T) {
func testTPTimingsUpdateTPTiming(t *testing.T) {
var result string
tpTiming.Years = "2015"
if err := tpTimingRPC.Call("ApierV1.SetTPTiming", tpTiming, &result); err != nil {
if err := tpTimingRPC.Call(utils.ApierV1SetTPTiming, tpTiming, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
@@ -183,7 +183,7 @@ func testTPTimingsUpdateTPTiming(t *testing.T) {
func testTPTimingsGetTPTimingAfterUpdate(t *testing.T) {
var expectedTPS *utils.ApierTPTiming
if err := tpTimingRPC.Call("ApierV1.GetTPTiming", &AttrGetTPTiming{TPid: tpTiming.TPid, ID: tpTiming.ID}, &expectedTPS); err != nil {
if err := tpTimingRPC.Call(utils.ApierV1GetTPTiming, &AttrGetTPTiming{TPid: tpTiming.TPid, ID: tpTiming.ID}, &expectedTPS); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(tpTiming, expectedTPS) {
t.Errorf("Expecting: %+v, received: %+v", tpTiming, expectedTPS)
@@ -192,7 +192,7 @@ func testTPTimingsGetTPTimingAfterUpdate(t *testing.T) {
func testTPTimingsRemoveTPTiming(t *testing.T) {
var resp string
if err := tpTimingRPC.Call("ApierV1.RemoveTPTiming", &AttrGetTPTiming{TPid: tpTiming.TPid, ID: tpTiming.ID}, &resp); err != nil {
if err := tpTimingRPC.Call(utils.ApierV1RemoveTPTiming, &AttrGetTPTiming{TPid: tpTiming.TPid, ID: tpTiming.ID}, &resp); err != nil {
t.Error(err)
} else if resp != utils.OK {
t.Error("Unexpected reply returned", resp)
@@ -201,7 +201,7 @@ func testTPTimingsRemoveTPTiming(t *testing.T) {
func testTPTimingsGetTPTimingAfterRemove(t *testing.T) {
var reply *utils.ApierTPTiming
if err := tpTimingRPC.Call("ApierV1.GetTPTiming", AttrGetTPTiming{TPid: "TPT1", ID: "Timining"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
if err := tpTimingRPC.Call(utils.ApierV1GetTPTiming, AttrGetTPTiming{TPid: "TPT1", ID: "Timining"}, &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
}

View File

@@ -119,7 +119,7 @@ func testVrsDataDB(t *testing.T) {
"RatingProfile": 1, "User": 1, "Accounts": 3, "ActionPlans": 3, "Chargers": 1,
"Destinations": 1, "LoadIDs": 1, "SharedGroups": 2, "Stats": 2, "Resource": 1,
"Subscribers": 1, "Suppliers": 1, "Thresholds": 3, "Timing": 1}
if err := vrsRPC.Call("ApierV1.GetDataDBVersions", "", &result); err != nil {
if err := vrsRPC.Call(utils.ApierV1GetDataDBVersions, "", &result); err != nil {
t.Error(err)
} else if expectedVrs.Compare(result, vrsStorageType, true) != "" {
t.Errorf("Expecting: %+v, received: %+v", result, expectedVrs)
@@ -133,7 +133,7 @@ func testVrsStorDB(t *testing.T) {
"TpSharedGroups": 1, "TpSuppliers": 1, "SessionSCosts": 3, "TpRatingProfiles": 1, "TpStats": 1, "TpTiming": 1,
"CostDetails": 2, "TpAccountActions": 1, "TpActionPlans": 1, "TpChargers": 1, "TpRatingProfile": 1,
"TpRatingPlan": 1, "TpResources": 1}
if err := vrsRPC.Call("ApierV1.GetStorDBVersions", "", &result); err != nil {
if err := vrsRPC.Call(utils.ApierV1GetStorDBVersions, "", &result); err != nil {
t.Error(err)
} else if expectedVrs.Compare(result, vrsStorageType, true) != "" {
t.Errorf("Expecting: %+v, received: %+v", result, expectedVrs)
@@ -159,7 +159,7 @@ func testVrsSetDataDBVrs(t *testing.T) {
"RatingProfile": 1, "User": 1, "Accounts": 3, "ActionPlans": 3, "Chargers": 1,
"Destinations": 1, "LoadIDs": 1, "SharedGroups": 2, "Stats": 2, "Resource": 1,
"Subscribers": 1, "Suppliers": 1, "Thresholds": 3, "Timing": 1}
if err := vrsRPC.Call("ApierV1.GetDataDBVersions", "", &result); err != nil {
if err := vrsRPC.Call(utils.ApierV1GetDataDBVersions, "", &result); err != nil {
t.Error(err)
} else if expectedVrs.Compare(result, vrsStorageType, true) != "" {
t.Errorf("Expecting: %+v, received: %+v", result, expectedVrs)
@@ -194,7 +194,7 @@ func testVrsSetStorDBVrs(t *testing.T) {
"TpSharedGroups": 1, "TpSuppliers": 1, "SessionSCosts": 3, "TpRatingProfiles": 1, "TpStats": 1, "TpTiming": 1,
"CostDetails": 2, "TpAccountActions": 1, "TpActionPlans": 1, "TpChargers": 1, "TpRatingProfile": 1,
"TpRatingPlan": 1, "TpResources": 2}
if err := vrsRPC.Call("ApierV1.GetStorDBVersions", "", &result); err != nil {
if err := vrsRPC.Call(utils.ApierV1GetStorDBVersions, "", &result); err != nil {
t.Error(err)
} else if expectedVrs.Compare(result, vrsStorageType, true) != "" {
t.Errorf("Expecting: %+v, received: %+v", result, expectedVrs)

View File

@@ -460,7 +460,7 @@ func testV2CDRsDifferentTenants(t *testing.T) {
},
Cache: utils.StringPointer(utils.MetaReload),
}
if err := cdrsRpc.Call("ApierV1.SetChargerProfile", chargerProfile, &result); err != nil {
if err := cdrsRpc.Call(utils.ApierV1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)

View File

@@ -204,7 +204,7 @@ func testV2CDRsOfflineBalanceUpdate(t *testing.T) {
t.Error("Unexpected error received: ", err)
}
//process cdr should trigger balance update event
if err := cdrsOfflineRpc.Call("CDRsV1.ProcessCDR", cdr, &reply); err != nil {
if err := cdrsOfflineRpc.Call(utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)

View File

@@ -191,7 +191,7 @@ func testTPitTimings(t *testing.T) {
}
var rplyTmIDs []string
expectedTmIDs := []string{"OFFPEAK_EVENING", "OFFPEAK_MORNING", "OFFPEAK_WEEKEND", "PEAK", tmDummyRemove.ID}
if err := tpRPC.Call("ApierV1.GetTPTimingIds", v1.AttrGetTPTimingIds{testTPid, utils.PaginatorWithSearch{}}, &rplyTmIDs); err != nil {
if err := tpRPC.Call(utils.ApierV1GetTPTimingIds, v1.AttrGetTPTimingIds{testTPid, utils.PaginatorWithSearch{}}, &rplyTmIDs); err != nil {
t.Error("Calling ApierV1.GetTPTimingIds, got error: ", err.Error())
} else if len(expectedTmIDs) != len(rplyTmIDs) {
t.Errorf("Calling ApierV1.GetTPTimingIds expected: %v, received: %v", expectedTmIDs, rplyTmIDs)
@@ -205,7 +205,7 @@ func testTPitTimings(t *testing.T) {
// Test getIds
rplyTmIDs = []string{}
expectedTmIDs = []string{"OFFPEAK_EVENING", "OFFPEAK_MORNING", "OFFPEAK_WEEKEND", "PEAK"}
if err := tpRPC.Call("ApierV1.GetTPTimingIds", v1.AttrGetTPTimingIds{testTPid, utils.PaginatorWithSearch{}}, &rplyTmIDs); err != nil {
if err := tpRPC.Call(utils.ApierV1GetTPTimingIds, v1.AttrGetTPTimingIds{testTPid, utils.PaginatorWithSearch{}}, &rplyTmIDs); err != nil {
t.Error("Calling ApierV1.GetTPTimingIds, got error: ", err.Error())
} else if len(expectedTmIDs) != len(rplyTmIDs) {
t.Errorf("Calling ApierV1.GetTPTimingIds expected: %v, received: %v", expectedTmIDs, rplyTmIDs)

View File

@@ -138,7 +138,7 @@ func durRemoteRater(cd *engine.CallDescriptorWithArgDispatcher) (time.Duration,
client.Call(utils.ResponderGetCost, cd, &result)
<-sem
finish <- 1
// divCall = client.Go("Responder.GetCost", cd, &result, nil)
// divCall = client.Go(utils.ResponderGetCost, cd, &result, nil)
}()
}
for i := 0; i < *runs; i++ {

View File

@@ -18,7 +18,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
package console
import "github.com/cgrates/cgrates/apier/v1"
import (
v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/utils"
)
func init() {
c := &CmdBalanceDebit{

View File

@@ -20,12 +20,13 @@ package console
import (
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
func init() {
c := &CmdGetDataDBVersions{
name: "datadb_versions",
rpcMethod: "ApierV1.GetDataDBVersions",
rpcMethod: utils.ApierV1GetDataDBVersions,
}
commands[c.Name()] = c
c.CommandExecuter = &CommandExecuter{c}

View File

@@ -26,7 +26,7 @@ import (
func init() {
c := &CmdMaxDebit{
name: "debit_max",
rpcMethod: "Responder.MaxDebit",
rpcMethod: utils.ResponderMaxDebit,
clientArgs: []string{"Direction", "Category", "TOR", "Tenant", "Subject", "Account", "Destination", "TimeStart", "TimeEnd", "CallDuration", "FallbackSubject"},
}
commands[c.Name()] = c

View File

@@ -20,12 +20,13 @@ package console
import (
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
func init() {
c := &CmdGetStorDBVersions{
name: "stordb_versions",
rpcMethod: "ApierV1.GetStorDBVersions",
rpcMethod: utils.ApierV1GetStorDBVersions,
}
commands[c.Name()] = c
c.CommandExecuter = &CommandExecuter{c}

View File

@@ -131,7 +131,7 @@ func testA1itLoadTPFromFolder(t *testing.T) {
TimeEnd: tEnd,
}
var cc engine.CallCost
if err := a1rpc.Call("Responder.GetCost", cd, &cc); err != nil {
if err := a1rpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
t.Error("Got error on Responder.GetCost: ", err.Error())
} else if cc.Cost != 0.0 {
t.Errorf("Calling Responder.GetCost got callcost: %v", cc)
@@ -146,7 +146,7 @@ func testA1itLoadTPFromFolder(t *testing.T) {
Weight: 20,
}
var result string
if err := a1rpc.Call("ApierV1.SetChargerProfile", chargerProfile, &result); err != nil {
if err := a1rpc.Call(utils.ApierV1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)

View File

@@ -109,7 +109,7 @@ func testCDRERpcConn(t *testing.T) {
func testCDREGetCdrs(t *testing.T) {
var reply []*engine.ExternalCDR
req := utils.RPCCDRsFilter{}
if err := cdreRPC.Call("ApierV1.GetCDRs", req, &reply); err.Error() != utils.ErrNotFound.Error() {
if err := cdreRPC.Call(utils.ApierV1GetCDRs, req, &reply); err.Error() != utils.ErrNotFound.Error() {
t.Error("Unexpected error: ", err.Error())
}
}

View File

@@ -207,7 +207,7 @@ func testCDRsOnExpHttpCdrReplication(t *testing.T) {
Weight: 20,
}
var result string
if err := cdrsMasterRpc.Call("ApierV1.SetChargerProfile", chargerProfile, &result); err != nil {
if err := cdrsMasterRpc.Call(utils.ApierV1SetChargerProfile, chargerProfile, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)

View File

@@ -320,7 +320,7 @@ func testDestManagCacheWithGetCost(t *testing.T) {
TimeStart: time.Date(2016, 2, 24, 0, 0, 0, 0, time.UTC),
TimeEnd: time.Date(2016, 2, 24, 0, 0, 10, 0, time.UTC),
}
if err := destRPC.Call("Responder.GetCost", cd, &cc); err != nil {
if err := destRPC.Call(utils.ResponderGetCost, cd, &cc); err != nil {
t.Error(err)
} else if cc.Cost != 1.6667 {
t.Error("Empty loadId received, loadInstance: ", utils.ToIJSON(cc))
@@ -339,7 +339,7 @@ func testDestManagCacheWithGetCost(t *testing.T) {
t.Errorf("Calling ApierV2.GetDestinations got reply: %v", utils.ToIJSON(dests))
}
if err := destRPC.Call("Responder.GetCost", cd, &cc); err.Error() != utils.ErrUnauthorizedDestination.Error() {
if err := destRPC.Call(utils.ResponderGetCost, cd, &cc); err.Error() != utils.ErrUnauthorizedDestination.Error() {
t.Error(err)
}
}

View File

@@ -199,7 +199,7 @@ package general_tests
// TimeEnd: tEnd,
// }
// var cc engine.CallCost
// if err := tutLocalRpc.Call("Responder.GetCost", cd, &cc); err != nil {
// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 0.6 {
// t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)
@@ -217,7 +217,7 @@ package general_tests
// TimeEnd: tEnd,
// ExtraFields: map[string]string{"Uuid": "388539dfd4f5cefee8f488b78c6c244b9e19138e"},
// }
// if err := tutLocalRpc.Call("Responder.GetCost", cd, &cc); err != nil {
// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 0.6 {
// t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)
@@ -235,7 +235,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tEnd,
// }
// if err := tutLocalRpc.Call("Responder.GetCost", cd, &cc); err != nil {
// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 0.6418 { // 0.01 first minute, 0.04 25 seconds with RT_20CNT
// t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)
@@ -253,7 +253,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tEnd,
// }
// if err := tutLocalRpc.Call("Responder.GetCost", cd, &cc); err != nil {
// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 1 {
// t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)
@@ -271,7 +271,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tEnd,
// }
// if err := tutLocalRpc.Call("Responder.GetCost", cd, &cc); err != nil {
// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 1.3 {
// t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)
@@ -289,7 +289,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tEnd,
// }
// if err := tutLocalRpc.Call("Responder.GetCost", cd, &cc); err != nil {
// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 1 {
// t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)
@@ -307,7 +307,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tEnd,
// }
// if err := tutLocalRpc.Call("Responder.GetCost", cd, &cc); err != nil {
// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 1.3 {
// t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)
@@ -323,7 +323,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tStart.Add(time.Duration(50) * time.Second),
// }
// if err := tutLocalRpc.Call("Responder.GetCost", cd, &cc); err != nil {
// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 0.5 {
// t.Errorf("Calling Responder.GetCost got callcost: %s", cc.AsJSON())
@@ -338,7 +338,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tStart.Add(time.Duration(70) * time.Second),
// }
// if err := tutLocalRpc.Call("Responder.GetCost", cd, &cc); err != nil {
// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 0.62 {
// t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)
@@ -353,7 +353,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tStart.Add(time.Duration(50) * time.Second),
// }
// if err := tutLocalRpc.Call("Responder.GetCost", cd, &cc); err != nil {
// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 0.5 {
// t.Errorf("Calling Responder.GetCost got callcost: %s", cc.AsJSON())
@@ -368,7 +368,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tStart.Add(time.Duration(70) * time.Second),
// }
// if err := tutLocalRpc.Call("Responder.GetCost", cd, &cc); err != nil {
// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 0.7 { // In case of *disconnect strategy, it will not be applied so we can go on negative costs
// t.Errorf("Calling Responder.GetCost got callcost: %s", cc.AsJSON())
@@ -383,7 +383,7 @@ package general_tests
// TimeStart: time.Date(2016, 1, 6, 19, 0, 0, 0, time.UTC),
// TimeEnd: time.Date(2016, 1, 6, 19, 1, 30, 0, time.UTC),
// }
// if err := tutLocalRpc.Call("Responder.GetCost", cd, &cc); err != nil {
// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 0.3249 { //
// t.Errorf("Calling Responder.GetCost got callcost: %s", cc.AsJSON())
@@ -398,7 +398,7 @@ package general_tests
// TimeStart: time.Date(2016, 1, 6, 18, 31, 5, 0, time.UTC),
// TimeEnd: time.Date(2016, 1, 6, 18, 32, 35, 0, time.UTC),
// }
// if err := tutLocalRpc.Call("Responder.GetCost", cd, &cc); err != nil {
// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 1.3 { //
// t.Errorf("Calling Responder.GetCost got callcost: %s", cc.AsJSON())
@@ -413,7 +413,7 @@ package general_tests
// TimeStart: time.Date(2014, 12, 7, 8, 42, 26, 0, time.UTC),
// TimeEnd: time.Date(2014, 12, 7, 8, 44, 26, 0, time.UTC),
// }
// if err := tutLocalRpc.Call("Responder.GetCost", cd, &cc); err != nil {
// if err := tutLocalRpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.Cost != 0.3498 { //
// t.Errorf("Calling Responder.GetCost got callcost: %s", cc.AsJSON())
@@ -435,7 +435,7 @@ package general_tests
// TimeEnd: tStart.Add(time.Duration(20) * time.Second),
// }
// var cc engine.CallCost
// if err := tutLocalRpc.Call("Responder.MaxDebit", cd, &cc); err != nil {
// if err := tutLocalRpc.Call(utils.ResponderMaxDebit, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.GetDuration() == 20 {
// t.Errorf("Calling Responder.MaxDebit got callcost: %v", cc.GetDuration())
@@ -451,7 +451,7 @@ package general_tests
// TimeStart: tStart,
// TimeEnd: tStart.Add(time.Duration(200) * time.Second),
// }
// if err := tutLocalRpc.Call("Responder.MaxDebit", cd, &cc); err != nil {
// if err := tutLocalRpc.Call(utils.ResponderMaxDebit, cd, &cc); err != nil {
// t.Error("Got error on Responder.MaxDebit: ", err.Error())
// } else if cc.GetDuration() == 200 {
// t.Errorf("Calling Responder.MaxDebit got duration: %v", cc.GetDuration())
@@ -468,7 +468,7 @@ package general_tests
// TimeEnd: tStart.Add(time.Duration(120) * time.Second),
// }
// cd.CgrID = "1"
// if err := tutLocalRpc.Call("Responder.MaxDebit", cd, &cc); err != nil {
// if err := tutLocalRpc.Call(utils.ResponderMaxDebit, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.GetDuration() == 120 {
// t.Errorf("Calling Responder.MaxDebit got callcost: %v", cc.GetDuration())
@@ -485,7 +485,7 @@ package general_tests
// TimeEnd: tStart.Add(time.Duration(120) * time.Second),
// }
// cd.CgrID = "2"
// if err := tutLocalRpc.Call("Responder.MaxDebit", cd, &cc); err != nil {
// if err := tutLocalRpc.Call(utils.ResponderMaxDebit, cd, &cc); err != nil {
// t.Error("Got error on Responder.GetCost: ", err.Error())
// } else if cc.GetDuration() != time.Duration(62)*time.Second { // We have as strategy *dsconnect
// t.Errorf("Calling Responder.MaxDebit got callcost: %v", cc.GetDuration())
@@ -993,7 +993,7 @@ package general_tests
// ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"}}
// var reply string
// for _, cdr := range []*engine.CDR{testCdr1, testCdr2} {
// if err := tutLocalRpc.Call("CdrsV1.ProcessCdr", cdr, &reply); err != nil {
// if err := tutLocalRpc.Call(utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
// t.Error("Unexpected error: ", err.Error())
// } else if reply != utils.OK {
// t.Error("Unexpected reply received: ", reply)
@@ -1031,7 +1031,7 @@ package general_tests
// Tenant: "cgrates.org", Category: "call", Account: "1003", Subject: "1003", Destination: "1004",
// SetupTime: time.Date(2014, 12, 7, 8, 42, 24, 0, time.UTC), AnswerTime: time.Date(2014, 12, 7, 8, 42, 26, 0, time.UTC),
// Usage: time.Duration(180) * time.Second}
// if err := tutLocalRpc.Call("CdrsV1.ProcessCdr", testCdr3, &reply); err != nil {
// if err := tutLocalRpc.Call(utils.CDRsV1ProcessCDR, testCdr3, &reply); err != nil {
// t.Error("Unexpected error: ", err.Error())
// } else if reply != utils.OK {
// t.Error("Unexpected reply received: ", reply)
@@ -1095,7 +1095,7 @@ package general_tests
// SetupTime: time.Date(2014, 12, 7, 8, 42, 24, 0, time.UTC), AnswerTime: time.Date(2014, 12, 7, 8, 42, 26, 0, time.UTC),
// Usage: time.Duration(60) * time.Second}
// var reply string
// if err := tutLocalRpc.Call("CdrsV1.ProcessCdr", testCdr4, &reply); err != nil { // Should drop ACD under the 2m required by threshold, removing suppl2 from lcr
// if err := tutLocalRpc.Call(utils.CDRsV1ProcessCDR, testCdr4, &reply); err != nil { // Should drop ACD under the 2m required by threshold, removing suppl2 from lcr
// t.Error("Unexpected error: ", err.Error())
// } else if reply != utils.OK {
// t.Error("Unexpected reply received: ", reply)
@@ -1159,7 +1159,7 @@ package general_tests
// Tenant: "cgrates.org", Category: "call", Account: "1003", Subject: "1003", Destination: "1004",
// SetupTime: time.Date(2014, 12, 7, 8, 42, 24, 0, time.UTC), AnswerTime: time.Date(2014, 12, 7, 8, 42, 26, 0, time.UTC),
// Usage: time.Duration(1) * time.Second}
// if err := tutLocalRpc.Call("CdrsV1.ProcessCdr", testCdr5, &reply); err != nil { // Should drop ACD under the 1m required by threshold, removing suppl2 from lcr
// if err := tutLocalRpc.Call(utils.CDRsV1ProcessCDR, testCdr5, &reply); err != nil { // Should drop ACD under the 1m required by threshold, removing suppl2 from lcr
// t.Error("Unexpected error: ", err.Error())
// } else if reply != utils.OK {
// t.Error("Unexpected reply received: ", reply)
@@ -1379,7 +1379,7 @@ package general_tests
// } else if reply != utils.OK {
// t.Error("Unexpected reply received: ", reply)
// }
// if err := tutLocalRpc.Call("CdrsV1.ProcessCdr", cdr, &reply); err != nil {
// if err := tutLocalRpc.Call(utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
// t.Error("Unexpected error: ", err.Error())
// } else if reply != utils.OK {
// t.Error("Unexpected reply received: ", reply)
@@ -1410,7 +1410,7 @@ package general_tests
// Usage: time.Duration(90) * time.Second,
// ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"}}
// var reply string
// if err := tutLocalRpc.Call("CdrsV1.ProcessCdr", cdr, &reply); err != nil {
// if err := tutLocalRpc.Call(utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
// t.Error("Unexpected error: ", err.Error())
// } else if reply != utils.OK {
// t.Error("Unexpected reply received: ", reply)
@@ -1442,7 +1442,7 @@ package general_tests
// ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"}}
// cdr.ComputeCGRID()
// var reply string
// if err := tutLocalRpc.Call("CdrsV1.ProcessCdr", cdr, &reply); err != nil {
// if err := tutLocalRpc.Call(utils.CDRsV1ProcessCDR, cdr, &reply); err != nil {
// t.Error("Unexpected error: ", err.Error())
// } else if reply != utils.OK {
// t.Error("Unexpected reply received: ", reply)

View File

@@ -130,7 +130,7 @@ func testTpBalanceCounter(t *testing.T) {
TimeEnd: tStart.Add(time.Duration(20) * time.Second),
}
var cc engine.CallCost
if err := tpRPC.Call("Responder.Debit", cd, &cc); err != nil {
if err := tpRPC.Call(utils.ResponderDebit, cd, &cc); err != nil {
t.Error("Got error on Responder.GetCost: ", err.Error())
} else if cc.GetDuration() != 20*time.Second {
t.Errorf("Calling Responder.MaxDebit got callcost: %v", cc.GetDuration())
@@ -211,7 +211,7 @@ func testTpZeroCost(t *testing.T) {
TimeEnd: tStart.Add(time.Duration(20) * time.Second),
}
var cc engine.CallCost
if err := tpRPC.Call("Responder.Debit", cd, &cc); err != nil {
if err := tpRPC.Call(utils.ResponderDebit, cd, &cc); err != nil {
t.Error("Got error on Responder.Debit: ", err.Error())
} else if cc.GetDuration() != 20*time.Second {
t.Errorf("Calling Responder.MaxDebit got callcost: %v", utils.ToIJSON(cc))
@@ -236,7 +236,7 @@ func testTpZeroNegativeCost(t *testing.T) {
TimeEnd: tStart.Add(time.Duration(20) * time.Second),
}
var cc engine.CallCost
if err := tpRPC.Call("Responder.Debit", cd, &cc); err != nil {
if err := tpRPC.Call(utils.ResponderDebit, cd, &cc); err != nil {
t.Error("Got error on Responder.GetCost: ", err.Error())
} else if cc.GetDuration() != 20*time.Second {
t.Errorf("Calling Responder.MaxDebit got callcost: %v", utils.ToIJSON(cc))

View File

@@ -144,7 +144,7 @@ func TestTutSMGCacheStats(t *testing.T) {
expectedStats[utils.CacheActionTriggers].Items = 1
expectedStats[utils.CacheLoadIDs].Items = 20
expectedStats[utils.CacheChargerProfiles].Items = 1
if err := tutSMGRpc.Call("CacheSv1.GetCacheStats", nil, &rcvStats); err != nil {
if err := tutSMGRpc.Call(utils.CacheSv1GetCacheStats, nil, &rcvStats); err != nil {
t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
} else if !reflect.DeepEqual(expectedStats, rcvStats) {
t.Errorf("Calling ApierV2.CacheSv1 expected: %+v,\n received: %+v", utils.ToJSON(expectedStats), utils.ToJSON(rcvStats))

View File

@@ -109,7 +109,7 @@ func TestSessionsDataLastUsedData(t *testing.T) {
}
var cc engine.CallCost
// Make sure the cost is what we expect to be for 1MB of data
if err := sDataRPC.Call("Responder.GetCost", cd, &cc); err != nil {
if err := sDataRPC.Call(utils.ResponderGetCost, cd, &cc); err != nil {
t.Error("Got error on Responder.GetCost: ", err.Error())
} else if cc.Cost != 1024 {
t.Errorf("Calling Responder.GetCost got callcost: %v", cc.Cost)

View File

@@ -866,8 +866,20 @@ const (
ApierV1AddBalance = "ApierV1.AddBalance"
ApierV1DebitBalance = "ApierV1.DebitBalance"
ApierV1SetAccount = "ApierV1.SetAccount"
ApierV1GetDataDBVersions = "ApierV1.GetDataDBVersions"
ApierV1GetStorDBVersions = "ApierV1.GetStorDBVersions"
ApierV1GetCDRs = "ApierV1.GetCDRs"
)
// ApierV1 TP APIs
const (
ApierV1SetTPTiming = "ApierV1.SetTPTiming"
ApierV1GetTPTiming = "ApierV1.GetTPTiming"
ApierV1RemoveTPTiming = "ApierV1.RemoveTPTiming"
ApierV1GetTPTimingIds = "ApierV1.GetTPTimingIds"
)
// ApierV2 APIs
const (
ApierV2 = "ApierV2"
ApierV2LoadTariffPlanFromFolder = "ApierV2.LoadTariffPlanFromFolder"