Added tests for opts in ees

This commit is contained in:
Trial97
2020-10-09 09:47:58 +03:00
committed by Dan Christian Bogos
parent 61d2b4e922
commit f6eb6038ae
8 changed files with 100 additions and 41 deletions

View File

@@ -71,7 +71,7 @@
"attribute_context": "customContext",
"attempts": 1,
"field_separator": ",",
"filters": ["*string:~*req.ExporterUsed:CSVExporter"],
"filters": ["*string:~*opts.ExporterUsed:CSVExporter"],
"fields":[],
},
{
@@ -83,7 +83,7 @@
"attribute_context": "customContext",
"attempts": 1,
"field_separator": ",",
"filters": ["*string:~*req.ExporterUsed:CSVExporterComposed"],
"filters": ["*string:~*opts.ExporterUsed:CSVExporterComposed"],
"fields":[
{"tag": "Number", "path": "*hdr.Number", "type": "*constant", "value": "NumberOfEvent"},
{"tag": "CGRID", "path": "*hdr.CGRID", "type": "*constant", "value": "CGRID"},
@@ -132,7 +132,7 @@
"flags": ["*attributes"],
"attribute_context": "customContext",
"attempts": 1,
"filters": ["*string:~*req.ExporterUsed:FWVExporter"],
"filters": ["*string:~*opts.ExporterUsed:FWVExporter"],
"fields":[
{"tag": "TypeOfRecord", "path": "*hdr.TypeOfRecord", "type": "*constant",
"value": "10", "width": 2},
@@ -207,7 +207,7 @@
"flags": ["*attributes"],
"attribute_context": "customContext",
"attempts": 1,
"filters": ["*string:~*req.ExporterUsed:HTTPPostExporter"],
"filters": ["*string:~*opts.ExporterUsed:HTTPPostExporter"],
"fields":[
{"tag": "CGRID", "path": "*exp.CGRID", "type": "*variable", "value": "~*req.CGRID"},
{"tag": "RunID", "path": "*exp.RunID", "type": "*variable", "value": "~*req.RunID"},
@@ -233,7 +233,7 @@
"flags": ["*attributes"],
"attribute_context": "customContext",
"attempts": 1,
"filters": ["*string:~*req.ExporterUsed:HTTPJsonMapExporter"],
"filters": ["*string:~*opts.ExporterUsed:HTTPJsonMapExporter"],
"fields":[
{"tag": "CGRID", "path": "*exp.CGRID", "type": "*variable", "value": "~*req.CGRID"},
{"tag": "RunID", "path": "*exp.RunID", "type": "*variable", "value": "~*req.RunID"},
@@ -249,6 +249,7 @@
{"tag": "AnswerTime", "path": "*exp.AnswerTime", "type": "*variable", "value": "~*req.AnswerTime"},
{"tag": "Usage", "path": "*exp.Usage", "type": "*variable", "value": "~*req.Usage"},
{"tag": "Cost", "path": "*exp.Cost", "type": "*variable", "value": "~*req.Cost{*round:4}"},
{"tag": "EvenType", "path": "*exp.EventType", "type": "*variable", "value": "~*opts.*eventType"},
],
},
{
@@ -260,7 +261,7 @@
"attribute_context": "customContext",
"attempts": 1,
"field_separator": ",",
"filters": ["*string:~*req.ExporterUsed:CSVMaskedDestination"],
"filters": ["*string:~*opts.ExporterUsed:CSVMaskedDestination"],
"fields":[
{"tag": "CGRID", "path": "*exp.CGRID", "type": "*variable", "value": "~*req.CGRID"},
{"tag": "RunID", "path": "*exp.RunID", "type": "*variable", "value": "~*req.RunID"},
@@ -284,7 +285,7 @@
"type": "*virt",
"tenant": "cgrates.org",
"attempts": 1,
"filters": ["*string:~*req.ExporterUsed:RouteExporter"],
"filters": ["*string:~*opts.ExporterUsed:RouteExporter"],
"fields":[
{"tag": "Cost", "path": "*uch.<~*req.CGRID;~*req.RunID;-Cost>", "type": "*variable",
"value": "~*req.Cost", "rounding_decimals": 4},
@@ -303,7 +304,7 @@
"attribute_context": "customContext",
"attempts": 1,
"field_separator": ",",
"filters": ["*string:~*req.ExporterUsed:CSVExporterFromVirt"],
"filters": ["*string:~*opts.ExporterUsed:CSVExporterFromVirt"],
"fields":[
{"tag": "CGRID", "path": "*exp.CGRID", "type": "*variable", "value": "~*req.CGRID"},
{"tag": "RunID", "path": "*exp.RunID", "type": "*variable", "value": "~*req.RunID"},
@@ -328,7 +329,7 @@
"attribute_context": "customContext",
"attempts": 1,
"field_separator": ",",
"filters": ["*string:~*req.ExporterUsed:CSVExporterWIthTemplate"],
"filters": ["*string:~*opts.ExporterUsed:CSVExporterWIthTemplate"],
"fields":[
{"tag": "RequiredTemplate","type": "*template", "value": "requiredFields"},
],
@@ -339,7 +340,7 @@
"export_path": "http://localhost:9200",
"tenant": "cgrates.org",
"attempts": 1,
"filters": ["*string:~*req.ExporterUsed:ElasticExporter"],
"filters": ["*string:~*opts.ExporterUsed:ElasticExporter"],
"opts": {
"index": "cdrs",
//"if_primary_term": 0,
@@ -378,7 +379,7 @@
"flags": ["*attributes"],
"attribute_context": "customContext",
"attempts": 1,
"filters": ["*string:~*req.ExporterUsed:HTTPJsonMapExporterWithNoFields"],
"filters": ["*string:~*opts.ExporterUsed:HTTPJsonMapExporterWithNoFields"],
"fields":[]
},
{
@@ -387,7 +388,7 @@
"export_path": "http://localhost:9200",
"tenant": "cgrates.org",
"attempts": 1,
"filters": ["*string:~*req.ExporterUsed:ElasticExporterWithNoFields"],
"filters": ["*string:~*opts.ExporterUsed:ElasticExporterWithNoFields"],
"fields":[],
},
{
@@ -398,7 +399,7 @@
"flags": ["*attributes"],
"attribute_context": "customContext",
"attempts": 1,
"filters": ["*string:~*req.ExporterUsed:HTTPPostExporterWithNoFields"],
"filters": ["*string:~*opts.ExporterUsed:HTTPPostExporterWithNoFields"],
"fields":[]
}
]

View File

@@ -148,7 +148,10 @@ func (eeS *EventExporterS) V1ProcessEvent(cgrEv *utils.CGREventWithIDs, rply *ma
expIDs := utils.NewStringSet(cgrEv.IDs)
lenExpIDs := expIDs.Size()
cgrDp := utils.MapStorage{utils.MetaReq: cgrEv.Event}
cgrDp := utils.MapStorage{
utils.MetaReq: cgrEv.Event,
utils.MetaOpts: cgrEv.Opts,
}
var wg sync.WaitGroup
var withErr bool

View File

@@ -140,11 +140,13 @@ func testElasticExportEvents(t *testing.T) {
utils.Usage: time.Duration(10) * time.Second,
utils.RunID: utils.MetaDefault,
utils.Cost: 1.01,
"ExporterUsed": "ElasticExporter",
"ExtraFields": map[string]string{"extra1": "val_extra1",
"extra2": "val_extra2", "extra3": "val_extra3"},
},
},
Opts: map[string]interface{}{
"ExporterUsed": "ElasticExporter",
},
},
}
@@ -170,11 +172,13 @@ func testElasticExportEvents(t *testing.T) {
utils.Usage: time.Duration(10) * time.Nanosecond,
utils.RunID: utils.MetaDefault,
utils.Cost: 0.012,
"ExporterUsed": "ElasticExporter",
"ExtraFields": map[string]string{"extra1": "val_extra1",
"extra2": "val_extra2", "extra3": "val_extra3"},
},
},
Opts: map[string]interface{}{
"ExporterUsed": "ElasticExporter",
},
},
}
@@ -199,11 +203,13 @@ func testElasticExportEvents(t *testing.T) {
utils.Usage: time.Duration(1),
utils.RunID: utils.MetaDefault,
utils.Cost: 0.15,
"ExporterUsed": "ElasticExporter",
"ExtraFields": map[string]string{"extra1": "val_extra1",
"extra2": "val_extra2", "extra3": "val_extra3"},
},
},
Opts: map[string]interface{}{
"ExporterUsed": "ElasticExporter",
},
}
eventSMSNoFields := &utils.CGREventWithOpts{
@@ -220,9 +226,11 @@ func testElasticExportEvents(t *testing.T) {
utils.Subject: "1001",
utils.Destination: "1002",
utils.RunID: utils.MetaDefault,
"ExporterUsed": "ElasticExporterWithNoFields",
},
},
Opts: map[string]interface{}{
"ExporterUsed": "ElasticExporterWithNoFields",
},
}
var reply map[string]utils.MapStorage
if err := elasticRpc.Call(utils.EventExporterSv1ProcessEvent, eventVoice, &reply); err != nil {
@@ -333,7 +341,6 @@ func testElasticVerifyExports(t *testing.T) {
utils.Subject: "1001",
utils.Destination: "1002",
utils.RunID: utils.MetaDefault,
"ExporterUsed": "ElasticExporterWithNoFields",
}
if !reflect.DeepEqual(eMp, hit.(map[string]interface{})["_source"]) {
t.Errorf("Expected %+v, received: %+v", eMp, hit.(map[string]interface{})["_source"])

View File

@@ -128,11 +128,13 @@ func testCsvExportEvent(t *testing.T) {
utils.Usage: time.Duration(10) * time.Second,
utils.RunID: utils.MetaDefault,
utils.Cost: 1.01,
"ExporterUsed": "CSVExporter",
"ExtraFields": map[string]string{"extra1": "val_extra1",
"extra2": "val_extra2", "extra3": "val_extra3"},
},
},
Opts: map[string]interface{}{
"ExporterUsed": "CSVExporter",
},
},
}
@@ -158,11 +160,13 @@ func testCsvExportEvent(t *testing.T) {
utils.Usage: time.Duration(10) * time.Nanosecond,
utils.RunID: utils.MetaDefault,
utils.Cost: 0.012,
"ExporterUsed": "CSVExporter",
"ExtraFields": map[string]string{"extra1": "val_extra1",
"extra2": "val_extra2", "extra3": "val_extra3"},
},
},
Opts: map[string]interface{}{
"ExporterUsed": "CSVExporter",
},
},
}
@@ -188,11 +192,13 @@ func testCsvExportEvent(t *testing.T) {
utils.Usage: time.Duration(1),
utils.RunID: utils.MetaDefault,
utils.Cost: 0.15,
"ExporterUsed": "CSVExporter",
"ExtraFields": map[string]string{"extra1": "val_extra1",
"extra2": "val_extra2", "extra3": "val_extra3"},
},
},
Opts: map[string]interface{}{
"ExporterUsed": "CSVExporter",
},
},
}
var reply map[string]utils.MapStorage
@@ -220,7 +226,7 @@ func testCsvVerifyExports(t *testing.T) {
t.Error(err)
}
if len(files) != 1 {
t.Errorf("Expected %+v, received: %+v", 1, len(files))
t.Fatalf("Expected %+v, received: %+v", 1, len(files))
}
eCnt := "dbafe9c8614c785a65aabd116dd3959c3c56f7f6,*default,*voice,dsafdsaf,*rated,cgrates.org,call,1001,1001,1002,2013-11-07T08:42:25Z,2013-11-07T08:42:26Z,10000000000,1.01" +
"\n" +
@@ -259,11 +265,13 @@ func testCsvExportComposedEvent(t *testing.T) {
utils.Usage: time.Duration(10) * time.Second,
utils.RunID: utils.MetaDefault,
utils.Cost: 1.016374,
"ExporterUsed": "CSVExporterComposed",
"ExtraFields": map[string]string{"extra1": "val_extra1",
"extra2": "val_extra2", "extra3": "val_extra3"},
},
},
Opts: map[string]interface{}{
"ExporterUsed": "CSVExporterComposed",
},
},
}
@@ -290,11 +298,13 @@ func testCsvExportComposedEvent(t *testing.T) {
utils.Usage: time.Duration(1),
utils.RunID: utils.MetaDefault,
utils.Cost: 0.155462,
"ExporterUsed": "CSVExporterComposed",
"ExtraFields": map[string]string{"extra1": "val_extra1",
"extra2": "val_extra2", "extra3": "val_extra3"},
},
},
Opts: map[string]interface{}{
"ExporterUsed": "CSVExporterComposed",
},
},
}
var reply map[string]utils.MapStorage
@@ -364,9 +374,11 @@ func testCsvExportMaskedDestination(t *testing.T) {
utils.Usage: time.Duration(10) * time.Second,
utils.RunID: utils.MetaDefault,
utils.Cost: 1.01,
"ExporterUsed": "CSVMaskedDestination",
},
},
Opts: map[string]interface{}{
"ExporterUsed": "CSVMaskedDestination",
},
},
}
var rply map[string]utils.MapStorage
@@ -421,11 +433,13 @@ func testCsvExportEventWithInflateTemplate(t *testing.T) {
utils.Usage: time.Duration(10) * time.Second,
utils.RunID: utils.MetaDefault,
utils.Cost: 1.01,
"ExporterUsed": "CSVExporterWIthTemplate",
"ExtraFields": map[string]string{"extra1": "val_extra1",
"extra2": "val_extra2", "extra3": "val_extra3"},
},
},
Opts: map[string]interface{}{
"ExporterUsed": "CSVExporterWIthTemplate",
},
},
}
@@ -451,11 +465,13 @@ func testCsvExportEventWithInflateTemplate(t *testing.T) {
utils.Usage: time.Duration(10) * time.Nanosecond,
utils.RunID: utils.MetaDefault,
utils.Cost: 0.012,
"ExporterUsed": "CSVExporterWIthTemplate",
"ExtraFields": map[string]string{"extra1": "val_extra1",
"extra2": "val_extra2", "extra3": "val_extra3"},
},
},
Opts: map[string]interface{}{
"ExporterUsed": "CSVExporterWIthTemplate",
},
},
}
@@ -481,11 +497,13 @@ func testCsvExportEventWithInflateTemplate(t *testing.T) {
utils.Usage: time.Duration(1),
utils.RunID: utils.MetaDefault,
utils.Cost: 0.15,
"ExporterUsed": "CSVExporterWIthTemplate",
"ExtraFields": map[string]string{"extra1": "val_extra1",
"extra2": "val_extra2", "extra3": "val_extra3"},
},
},
Opts: map[string]interface{}{
"ExporterUsed": "CSVExporterWIthTemplate",
},
},
}
var reply map[string]utils.MapStorage
@@ -551,11 +569,13 @@ func testCsvExportNotFoundExporter(t *testing.T) {
utils.Usage: time.Duration(10) * time.Second,
utils.RunID: utils.MetaDefault,
utils.Cost: 1.01,
"ExporterUsed": "ExporterNotFound",
"ExtraFields": map[string]string{"extra1": "val_extra1",
"extra2": "val_extra2", "extra3": "val_extra3"},
},
},
Opts: map[string]interface{}{
"ExporterUsed": "ExporterNotFound",
},
},
}

View File

@@ -120,10 +120,12 @@ func testFwvExportEvent(t *testing.T) {
utils.Usage: time.Duration(10) * time.Second,
utils.RunID: utils.MetaDefault,
utils.Cost: 2.34567,
"ExporterUsed": "FWVExporter",
"ExtraFields": map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"},
},
},
Opts: map[string]interface{}{
"ExporterUsed": "FWVExporter",
},
},
}
var reply map[string]utils.MapStorage

View File

@@ -135,11 +135,14 @@ func testHTTPJsonMapExportEvent(t *testing.T) {
utils.Usage: time.Duration(10) * time.Second,
utils.RunID: utils.MetaDefault,
utils.Cost: 1.01,
"ExporterUsed": "HTTPJsonMapExporter",
"ExtraFields": map[string]string{"extra1": "val_extra1",
"extra2": "val_extra2", "extra3": "val_extra3"},
},
},
Opts: map[string]interface{}{
"ExporterUsed": "HTTPJsonMapExporter",
utils.MetaEventType: utils.CDR,
},
},
}
@@ -165,11 +168,14 @@ func testHTTPJsonMapExportEvent(t *testing.T) {
utils.Usage: time.Duration(10) * time.Nanosecond,
utils.RunID: utils.MetaDefault,
utils.Cost: 0.012,
"ExporterUsed": "HTTPJsonMapExporter",
"ExtraFields": map[string]string{"extra1": "val_extra1",
"extra2": "val_extra2", "extra3": "val_extra3"},
},
},
Opts: map[string]interface{}{
"ExporterUsed": "HTTPJsonMapExporter",
utils.MetaEventType: utils.CDR,
},
},
}
@@ -196,11 +202,14 @@ func testHTTPJsonMapExportEvent(t *testing.T) {
utils.RunID: utils.MetaDefault,
utils.Cost: 0.15,
utils.OrderID: 10,
"ExporterUsed": "HTTPJsonMapExporter",
"ExtraFields": map[string]string{"extra1": "val_extra1",
"extra2": "val_extra2", "extra3": "val_extra3"},
},
},
Opts: map[string]interface{}{
"ExporterUsed": "HTTPJsonMapExporter",
utils.MetaEventType: utils.CDR,
},
},
}
@@ -218,9 +227,11 @@ func testHTTPJsonMapExportEvent(t *testing.T) {
utils.Account: "1001",
utils.Destination: "1002",
utils.RunID: utils.MetaDefault,
"ExporterUsed": "HTTPJsonMapExporterWithNoFields",
},
},
Opts: map[string]interface{}{
"ExporterUsed": "HTTPJsonMapExporterWithNoFields",
},
},
}
var reply map[string]utils.MapStorage
@@ -237,6 +248,7 @@ func testHTTPJsonMapExportEvent(t *testing.T) {
utils.Subject: utils.IfaceAsString(eventVoice.Event[utils.Subject]),
utils.Destination: utils.IfaceAsString(eventVoice.Event[utils.Destination]),
utils.Cost: utils.IfaceAsString(eventVoice.Event[utils.Cost]),
utils.EventType: utils.CDR,
} {
if rcv := httpJsonMap[key]; rcv != strVal {
t.Errorf("Expected %+v, received: %+v", strVal, rcv)
@@ -255,6 +267,7 @@ func testHTTPJsonMapExportEvent(t *testing.T) {
utils.Subject: utils.IfaceAsString(eventData.Event[utils.Subject]),
utils.Destination: utils.IfaceAsString(eventData.Event[utils.Destination]),
utils.Cost: utils.IfaceAsString(eventData.Event[utils.Cost]),
utils.EventType: utils.CDR,
} {
if rcv := httpJsonMap[key]; rcv != strVal {
t.Errorf("Expected %+v, received: %+v", strVal, rcv)
@@ -273,6 +286,7 @@ func testHTTPJsonMapExportEvent(t *testing.T) {
utils.Subject: utils.IfaceAsString(eventSMS.Event[utils.Subject]),
utils.Destination: utils.IfaceAsString(eventSMS.Event[utils.Destination]),
utils.Cost: utils.IfaceAsString(eventSMS.Event[utils.Cost]),
utils.EventType: utils.CDR,
} {
if rcv := httpJsonMap[key]; rcv != strVal {
t.Errorf("Expected %+v, received: %+v", strVal, rcv)

View File

@@ -135,11 +135,13 @@ func testHTTPExportEvent(t *testing.T) {
utils.Usage: time.Duration(10) * time.Second,
utils.RunID: utils.MetaDefault,
utils.Cost: 1.01,
"ExporterUsed": "HTTPPostExporter",
"ExtraFields": map[string]string{"extra1": "val_extra1",
"extra2": "val_extra2", "extra3": "val_extra3"},
},
},
Opts: map[string]interface{}{
"ExporterUsed": "HTTPPostExporter",
},
},
}
@@ -165,11 +167,13 @@ func testHTTPExportEvent(t *testing.T) {
utils.Usage: time.Duration(10) * time.Nanosecond,
utils.RunID: utils.MetaDefault,
utils.Cost: 0.012,
"ExporterUsed": "HTTPPostExporter",
"ExtraFields": map[string]string{"extra1": "val_extra1",
"extra2": "val_extra2", "extra3": "val_extra3"},
},
},
Opts: map[string]interface{}{
"ExporterUsed": "HTTPPostExporter",
},
},
}
@@ -194,11 +198,13 @@ func testHTTPExportEvent(t *testing.T) {
utils.Usage: time.Duration(1),
utils.RunID: utils.MetaDefault,
utils.Cost: 0.15,
"ExporterUsed": "HTTPPostExporter",
"ExtraFields": map[string]string{"extra1": "val_extra1",
"extra2": "val_extra2", "extra3": "val_extra3"},
},
},
Opts: map[string]interface{}{
"ExporterUsed": "HTTPPostExporter",
},
}
eventSMSNoFields := &utils.CGREventWithOpts{
@@ -217,9 +223,11 @@ func testHTTPExportEvent(t *testing.T) {
utils.Subject: "1001",
utils.Destination: "1002",
utils.RunID: utils.MetaDefault,
"ExporterUsed": "HTTPPostExporterWithNoFields",
},
},
Opts: map[string]interface{}{
"ExporterUsed": "HTTPPostExporterWithNoFields",
},
}
var reply map[string]utils.MapStorage

View File

@@ -121,9 +121,11 @@ func testVirtExportSupplierEvent(t *testing.T) {
utils.Usage: time.Duration(10) * time.Second,
utils.RunID: "SupplierRun",
utils.Cost: 1.23,
"ExporterUsed": "RouteExporter",
},
},
Opts: map[string]interface{}{
"ExporterUsed": "RouteExporter",
},
},
}
@@ -157,9 +159,11 @@ func testVirtExportEvents(t *testing.T) {
utils.Usage: time.Duration(10) * time.Second,
utils.RunID: "SupplierRun",
utils.Cost: 1.01,
"ExporterUsed": "CSVExporterFromVirt",
},
},
Opts: map[string]interface{}{
"ExporterUsed": "CSVExporterFromVirt",
},
},
}
var reply map[string]utils.MapStorage