From 8db9d6ca4db0cda51da148d9268690ede7d3fe72 Mon Sep 17 00:00:00 2001 From: gezimbll Date: Tue, 8 Aug 2023 11:12:00 -0400 Subject: [PATCH] Added multiple filters for exportcdrs apis tests --- apier/v1/cdre_it_test.go | 17 ++++++++++++++--- apier/v2/cdrs_it_test.go | 15 ++++++++------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/apier/v1/cdre_it_test.go b/apier/v1/cdre_it_test.go index 719e2d2a7..0a5d149ca 100644 --- a/apier/v1/cdre_it_test.go +++ b/apier/v1/cdre_it_test.go @@ -26,6 +26,7 @@ import ( "os" "path" "reflect" + "sort" "testing" "time" @@ -200,6 +201,13 @@ func testCDReExportCDRs2(t *testing.T) { AnswerTime: time.Now(), RunID: utils.MetaDefault, Usage: time.Duration(5) * time.Second, ExtraFields: map[string]string{"DisconnectCause": "UNALLOCATED_NUMBER"}, Cost: 2.21, }, + {CGRID: "Cdr7", + OrderID: 124343, ToR: utils.VOICE, OriginID: "OriginCDR2", OriginHost: "192.168.1.1", Source: "test2", + RequestType: utils.META_RATED, Tenant: "cgrates.org", Category: "call", + Account: "1001", Subject: "1001", Destination: "+4986517174963", SetupTime: time.Now(), + AnswerTime: time.Now(), RunID: utils.MetaDefault, Usage: time.Duration(5) * time.Second, + ExtraFields: map[string]string{"DisconnectCause": "USER_BUSY"}, Cost: 2.21, + }, } for _, cdr := range storedCdrs { var reply string @@ -212,17 +220,20 @@ func testCDReExportCDRs2(t *testing.T) { attr := ArgExportCDRs{ ExportArgs: map[string]any{ utils.ExportTemplate: "TemplateWithFilter", - utils.FilterIDs: []string{"*string:~*req.DisconnectCause:UNALLOCATED_NUMBER"}, + utils.FilterIDs: []string{"*string:~*req.DisconnectCause:ORIGINATOR_CANCEL;USER_BUSY"}, utils.ExportPath: "/tmp", utils.ExportFileName: "TestFilteredCsv.csv", }, Verbose: true, } var rply *RplExportedCDRs + expExportedCdrs := []string{"Cdr7", "Cdr5"} if err := cdreRPC.Call(utils.APIerSv1ExportCDRs, attr, &rply); err != nil { t.Error("Unexpected error: ", err.Error()) - } else if len(rply.ExportedCGRIDs) != 1 { - t.Errorf("Unexpected number of CDR exported: %s ", utils.ToJSON(rply)) + } else if sort.Slice(rply.ExportedCGRIDs, func(i, j int) bool { + return i < j + }); !reflect.DeepEqual(rply.ExportedCGRIDs, expExportedCdrs) { + t.Errorf("Expected CDRs %+v,Received %+v ", expExportedCdrs, rply.ExportedCGRIDs) } } diff --git a/apier/v2/cdrs_it_test.go b/apier/v2/cdrs_it_test.go index efa7e2591..91a5e0c9c 100644 --- a/apier/v2/cdrs_it_test.go +++ b/apier/v2/cdrs_it_test.go @@ -24,6 +24,7 @@ import ( "net/rpc" "path" "reflect" + "sort" "testing" "time" @@ -850,7 +851,7 @@ func testV2ExportCDRsToFile(t *testing.T) { Tenant: "cgrates.org", Event: map[string]any{ utils.ToR: utils.VOICE, - utils.CGRID: "9b3cd5e698af94f8916220866c831a982ed163322", + utils.CGRID: "29y32329358", utils.OriginID: "testCDREProcessCdr2", utils.OriginHost: "192.168.1.1", utils.Source: "TestTutITExportCDR", @@ -868,7 +869,7 @@ func testV2ExportCDRsToFile(t *testing.T) { { Tenant: "cgrates.org", Event: map[string]any{ - utils.CGRID: "9b3cd5e698af94f8916220866c831a982ed1623432", + utils.CGRID: "9b3cd5e698af94", utils.ToR: utils.VOICE, utils.OriginID: "testCDREProcessCdr3", utils.OriginHost: "192.168.1.1", @@ -887,7 +888,7 @@ func testV2ExportCDRsToFile(t *testing.T) { { Tenant: "cgrates.org", Event: map[string]any{ - utils.CGRID: "9b3cd5e698af94f353216220866c831a982ed163322", + utils.CGRID: "879cd5e698af", utils.ToR: utils.VOICE, utils.OriginID: "testCDREProcessCdr1", utils.OriginHost: "192.168.1.1", @@ -931,13 +932,13 @@ func testV2ExportCDRsToFile(t *testing.T) { ExportFileName: utils.StringPointer("TestTutITExportCDR.csv"), ExportDirectory: utils.StringPointer("/tmp"), ExportTemplate: utils.StringPointer("*default"), - FilterIDs: []string{"*string:~*req.DisconnectCause:ORIGINATOR_CANCEL"}, + FilterIDs: []string{"*string:~*req.DisconnectCause:ORIGINATOR_CANCEL;USER_BUSY"}, } - + expCgrIds := []string{"879cd5e698af", "9b3cd5e698af94"} if err := cdrsRpc.Call(utils.APIerSv2ExportCdrsToFile, attr, &replyExp); err != nil { t.Error(err) - } else if len(replyExp.ExportedCgrIds) != 1 { - t.Errorf("Exported records: %+v", len(replyExp.ExportedCgrIds)) + } else if sort.Slice(replyExp.ExportedCgrIds, func(i, j int) bool { return i < j }); !reflect.DeepEqual(expCgrIds, replyExp.ExportedCgrIds) { + t.Errorf("Expected CgrsIds %+v,Received %+v", expCgrIds, replyExp.ExportedCgrIds) } }