Added multiple filters for exportcdrs apis tests

This commit is contained in:
gezimbll
2023-08-08 11:12:00 -04:00
committed by Dan Christian Bogos
parent 457ab9a3c6
commit 8db9d6ca4d
2 changed files with 22 additions and 10 deletions

View File

@@ -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)
}
}

View File

@@ -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)
}
}