Updated gob integration tests

This commit is contained in:
Trial97
2019-12-18 11:37:20 +02:00
parent ef62eab470
commit 1c086ac0e3
4 changed files with 44 additions and 39 deletions

View File

@@ -167,7 +167,6 @@ func testV2CDRsProcessCDR(t *testing.T) {
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
time.Sleep(150 * time.Millisecond) // Give time for CDR to be rated
}
func testV2CDRsGetCdrs(t *testing.T) {
@@ -281,13 +280,12 @@ func testV2CDRsRateCDRs(t *testing.T) {
if err := cdrsRpc.Call(utils.CDRsV1RateCDRs, &engine.ArgRateCDRs{
RPCCDRsFilter: utils.RPCCDRsFilter{NotRunIDs: []string{utils.MetaRaw}},
Flags: []string{"*chargers:true"},
Flags: []string{"*chargers:false"},
}, &reply); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
time.Sleep(150 * time.Millisecond) // Give time for CDR to be rated
}
func testV2CDRsGetCdrs2(t *testing.T) {
@@ -325,7 +323,7 @@ func testV2CDRsGetCdrs2(t *testing.T) {
} else if len(cdrs) != 1 {
t.Error("Unexpected number of CDRs returned: ", len(cdrs))
} else {
if cdrs[0].Cost != 0.0198 {
if cdrs[0].Cost != 0.0102 {
t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
}
}
@@ -358,7 +356,6 @@ func testV2CDRsUsageNegative(t *testing.T) {
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
time.Sleep(150 * time.Millisecond) // Give time for CDR to be rated
var cdrs []*engine.ExternalCDR
args := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaRaw}, OriginIDs: []string{"testV2CDRsUsageNegative"}}
@@ -512,7 +509,6 @@ func testV2CDRsDifferentTenants(t *testing.T) {
} else if reply3 != utils.OK {
t.Error("Unexpected reply received: ", reply3)
}
time.Sleep(150 * time.Millisecond) // Give time for CDR to be rated
var cdrs []*engine.ExternalCDR
args := utils.RPCCDRsFilter{Tenants: []string{"CustomTenant"}}
@@ -572,7 +568,6 @@ func testV2CDRsProcessCDRNoRattingPlan(t *testing.T) {
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
time.Sleep(150 * time.Millisecond) // Give time for CDR to be rated
}
func testV2CDRsGetCdrsNoRattingPlan(t *testing.T) {
@@ -665,7 +660,6 @@ func testV2CDRsRateCDRsWithRatingPlan(t *testing.T) {
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
time.Sleep(150 * time.Millisecond) // Give time for CDR to be rated
}
func testV2CDRsGetCdrsWithRattingPlan(t *testing.T) {
@@ -778,7 +772,7 @@ func testV2CDRsProcessCDRWithThreshold(t *testing.T) {
utils.OriginID: "testV2CDRsProcessCDRWithThreshold",
utils.OriginHost: "192.168.1.1",
utils.Source: "testV2CDRsProcessCDRWithThreshold",
utils.RequestType: utils.META_PREPAID,
utils.RequestType: utils.META_POSTPAID,
utils.Category: "call",
utils.Account: "1005",
utils.Subject: "ANY2CNT",
@@ -796,7 +790,6 @@ func testV2CDRsProcessCDRWithThreshold(t *testing.T) {
} else if reply != utils.OK {
t.Error("Unexpected reply received: ", reply)
}
time.Sleep(150 * time.Millisecond) // Give time for CDR to be rated
}
func testV2CDRsGetThreshold(t *testing.T) {

View File

@@ -954,6 +954,10 @@ func (cdrS *CDRServer) V1RateCDRs(arg *ArgRateCDRs, reply *string) (err error) {
if flgs.HasKey(utils.MetaChargers) {
chrgS = flgs.GetBool(utils.MetaChargers)
}
attrS := len(cdrS.cgrCfg.CdrsCfg().AttributeSConns) != 0
if flgs.HasKey(utils.MetaAttributes) {
attrS = flgs.GetBool(utils.MetaAttributes)
}
if chrgS && len(cdrS.cgrCfg.CdrsCfg().ChargerSConns) == 0 {
return utils.NewErrNotConnected(utils.ChargerS)
@@ -964,7 +968,7 @@ func (cdrS *CDRServer) V1RateCDRs(arg *ArgRateCDRs, reply *string) (err error) {
CGREvent: cdr.AsCGREvent(),
ArgDispatcher: arg.ArgDispatcher,
}
if err = cdrS.processEvent(cgrEv, chrgS, false, false,
if err = cdrS.processEvent(cgrEv, chrgS, attrS, false,
true, store, true, export, thdS, statS); err != nil {
return utils.NewErrServerError(err)
}

View File

@@ -31,6 +31,7 @@ import (
"testing"
"time"
v1 "github.com/cgrates/cgrates/apier/v1"
v2 "github.com/cgrates/cgrates/apier/v2"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
@@ -170,18 +171,20 @@ func testV1CDRsProcessEventAttrS(t *testing.T) {
},
}
var cdrs []*engine.CDR
alsPrf := &engine.AttributeProfile{
Tenant: "cgrates.org",
ID: "ApierTest",
Contexts: []string{utils.META_ANY},
FilterIDs: []string{"*string:~*req.Account:1001"},
Attributes: []*engine.Attribute{
{
FieldName: utils.Subject,
Value: config.NewRSRParsersMustCompile("1011", true, utils.INFIELD_SEP),
alsPrf := &v1.AttributeWithCache{
AttributeProfile: &engine.AttributeProfile{
Tenant: "cgrates.org",
ID: "ApierTest",
Contexts: []string{utils.META_ANY},
FilterIDs: []string{"*string:~*req.Account:1001"},
Attributes: []*engine.Attribute{
{
FieldName: utils.Subject,
Value: config.NewRSRParsersMustCompile("1011", true, utils.INFIELD_SEP),
},
},
Weight: 20,
},
Weight: 20,
}
alsPrf.Compile()
var result string
@@ -191,13 +194,13 @@ func testV1CDRsProcessEventAttrS(t *testing.T) {
t.Error("Unexpected reply returned", result)
}
var replyAt *engine.AttributeProfile
if err := pecdrsRpc.Call(utils.ApierV1GetAttributeProfile,
&utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}, &replyAt); err != nil {
if err := pecdrsRpc.Call(utils.ApierV1GetAttributeProfile, &utils.TenantIDWithArgDispatcher{
TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}}, &replyAt); err != nil {
t.Fatal(err)
}
replyAt.Compile()
if !reflect.DeepEqual(alsPrf, replyAt) {
t.Errorf("Expecting : %+v, received: %+v", alsPrf, reply)
if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAt) {
t.Errorf("Expecting : %+v, received: %+v", utils.ToJSON(alsPrf.AttributeProfile), utils.ToJSON(replyAt))
}
if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
t.Error(err)
@@ -205,7 +208,8 @@ func testV1CDRsProcessEventAttrS(t *testing.T) {
t.Error("Unexpected reply received: ", reply)
}
// check if the CDR was correctly processed
if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost1"}}, &cdrs); err != nil {
if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithArgDispatcher{
RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost1"}}}, &cdrs); err != nil {
t.Fatal("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Errorf("Expecting: 1, received: %+v", len(cdrs))
@@ -258,7 +262,8 @@ func testV1CDRsProcessEventChrgS(t *testing.T) {
t.Error("Unexpected reply received: ", reply)
}
var cdrs []*engine.CDR
if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost2"}}, &cdrs); err != nil {
if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithArgDispatcher{
RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost2"}}}, &cdrs); err != nil {
t.Fatal("Unexpected error: ", err.Error())
} else if len(cdrs) != 3 {
t.Errorf("Expecting: 3, received: %+v", len(cdrs))
@@ -266,12 +271,12 @@ func testV1CDRsProcessEventChrgS(t *testing.T) {
t.Errorf("Expecting: test2_processEvent, received: %+v, %+v, %+v ", cdrs[0].OriginID, cdrs[1].OriginID, cdrs[2].OriginID)
}
sort.Slice(cdrs, func(i, j int) bool { return cdrs[i].RunID < cdrs[j].RunID })
if cdrs[0].RunID != "*raw" {
if cdrs[0].RunID != utils.MetaRaw { // charger with RunID *raw
t.Errorf("Expecting: %+v, received: %+v", utils.MetaRaw, cdrs[0].RunID)
} else if cdrs[1].RunID != "CustomerCharges" {
t.Errorf("Expecting: %+v, received: %+v", utils.MetaRaw, cdrs[0].RunID)
t.Errorf("Expecting: %+v, received: %+v", "CustomerCharges", cdrs[1].RunID)
} else if cdrs[2].RunID != "SupplierCharges" {
t.Errorf("Expecting: %+v, received: %+v", utils.MetaRaw, cdrs[0].RunID)
t.Errorf("Expecting: %+v, received: %+v", "SupplierCharges", cdrs[2].RunID)
}
}
@@ -300,7 +305,8 @@ func testV1CDRsProcessEventRalS(t *testing.T) {
t.Error("Unexpected reply received: ", reply)
}
var cdrs []*engine.CDR
if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost3"}}, &cdrs); err != nil {
if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithArgDispatcher{
RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost3"}}}, &cdrs); err != nil {
t.Fatal("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Errorf("Expecting: 1, received: %+v", len(cdrs))
@@ -366,7 +372,8 @@ func testV1CDRsProcessEventSts(t *testing.T) {
CostDetails: nil,
},
}
if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost4"}}, &cdrs); err != nil {
if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithArgDispatcher{
RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost4"}}}, &cdrs); err != nil {
t.Fatal("Unexpected error: ", err.Error())
} else if len(cdrs) != 1 {
t.Errorf("Expecting: 1, received: %+v", len(cdrs))
@@ -418,8 +425,8 @@ func testV1CDRsProcessEventStore(t *testing.T) {
t.Error("Unexpected reply received: ", reply)
}
var cdrs []*engine.CDR
if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs,
utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost5"}}, &cdrs); err == nil ||
if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithArgDispatcher{
RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost5"}}}, &cdrs); err == nil ||
err.Error() != "SERVER_ERROR: NOT_FOUND" {
t.Fatal("Unexpected error: ", err.Error())
} else if len(cdrs) != 0 {
@@ -513,7 +520,8 @@ func testV1CDRsProcessEventThreshold(t *testing.T) {
}
var cdrs []*engine.CDR
if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost6"}}, &cdrs); err != nil {
if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithArgDispatcher{
RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost6"}}}, &cdrs); err != nil {
t.Error("Unexpected error: ", err)
} else if len(cdrs) != 1 {
t.Errorf("Expecting: 1, received: %+v", len(cdrs))

View File

@@ -358,7 +358,7 @@ func testGOCSUpdateSession(t *testing.T) {
}
aSessions := make([]*sessions.ExternalSession, 0)
if err := auRPC.Call(utils.SessionSv1GetActiveSessions, nil, &aSessions); err != nil {
if err := auRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 {
t.Errorf("wrong active sessions: %s", utils.ToJSON(aSessions))
@@ -436,7 +436,7 @@ func testGOCSUpdateSession2(t *testing.T) {
}
aSessions := make([]*sessions.ExternalSession, 0)
if err := auRPC.Call(utils.SessionSv1GetActiveSessions, nil, &aSessions); err != nil {
if err := auRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
t.Error(err)
} else if len(aSessions) != 1 {
t.Errorf("wrong active sessions: %s", utils.ToJSON(aSessions))
@@ -508,11 +508,11 @@ func testGOCSTerminateSession(t *testing.T) {
t.Errorf("Unexpected reply: %s", rply)
}
aSessions := make([]*sessions.ExternalSession, 0)
if err := auRPC.Call(utils.SessionSv1GetActiveSessions, nil, &aSessions); err == nil ||
if err := auRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected error %s received error %v and reply %s", utils.ErrNotFound, err, utils.ToJSON(aSessions))
}
if err := usRPC.Call(utils.SessionSv1GetActiveSessions, nil, &aSessions); err == nil ||
if err := usRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
err.Error() != utils.ErrNotFound.Error() {
t.Errorf("Expected error %s received error %v and reply %s", utils.ErrNotFound, err, utils.ToJSON(aSessions))
}