CDRC - allow RunID value on import

This commit is contained in:
DanB
2016-11-24 15:39:56 +01:00
parent b5dd2fee1a
commit 596f19c8bc
4 changed files with 16 additions and 6 deletions

View File

@@ -27,14 +27,16 @@ import (
"github.com/cgrates/cgrates/utils"
)
func TestCsvRecordForkCdr(t *testing.T) {
func TestCsvRecordToCDR(t *testing.T) {
cgrConfig, _ := config.NewDefaultCGRConfig()
cdrcConfig := cgrConfig.CdrcProfiles["/var/spool/cgrates/cdrc/in"][0]
cdrcConfig.CdrSourceId = "TEST_CDRC"
cdrcConfig.ContentFields = append(cdrcConfig.ContentFields, &config.CfgCdrField{Tag: "SupplierTest", Type: utils.META_COMPOSED, FieldId: utils.SUPPLIER, Value: []*utils.RSRField{&utils.RSRField{Id: "14"}}})
cdrcConfig.ContentFields = append(cdrcConfig.ContentFields, &config.CfgCdrField{Tag: "DisconnectCauseTest", Type: utils.META_COMPOSED, FieldId: utils.DISCONNECT_CAUSE,
Value: []*utils.RSRField{&utils.RSRField{Id: "16"}}})
//
cdrcConfig.ContentFields = append(cdrcConfig.ContentFields, &config.CfgCdrField{Tag: "RunID", Type: utils.META_COMPOSED,
FieldId: utils.MEDI_RUNID, Value: utils.ParseRSRFieldsMustCompile("^*default", utils.INFIELD_SEP)})
cdrcConfig.ContentFields = append(cdrcConfig.ContentFields, &config.CfgCdrField{Tag: "SupplierTest", Type: utils.META_COMPOSED,
FieldId: utils.SUPPLIER, Value: []*utils.RSRField{&utils.RSRField{Id: "14"}}})
cdrcConfig.ContentFields = append(cdrcConfig.ContentFields, &config.CfgCdrField{Tag: "DisconnectCauseTest", Type: utils.META_COMPOSED,
FieldId: utils.DISCONNECT_CAUSE, Value: []*utils.RSRField{&utils.RSRField{Id: "16"}}})
csvProcessor := &CsvRecordsProcessor{dfltCdrcCfg: cdrcConfig, cdrcCfgs: []*config.CdrcConfig{cdrcConfig}}
cdrRow := []string{"firstField", "secondField"}
_, err := csvProcessor.recordToStoredCdr(cdrRow, cdrcConfig)
@@ -49,6 +51,7 @@ func TestCsvRecordForkCdr(t *testing.T) {
}
expectedCdr := &engine.CDR{
CGRID: utils.Sha1(cdrRow[3], time.Date(2013, 2, 3, 19, 50, 0, 0, time.UTC).String()),
RunID: "*default",
ToR: cdrRow[2],
OriginID: cdrRow[3],
OriginHost: "0.0.0.0", // Got it over internal interface

View File

@@ -223,7 +223,7 @@ const CGRATES_CFG_JSON = `
{"tag": "Usage", "field_id": "Usage", "type": "*composed", "value": "13", "mandatory": true},
],
"trailer_fields": [], // template of the import trailer fields
"cache_dump_fields": [
"cache_dump_fields": [ // template used when dumping cached CDR, eg: partial CDRs
{"tag": "CGRID", "type": "*composed", "value": "CGRID"},
{"tag": "RunID", "type": "*composed", "value": "RunID"},
{"tag": "TOR", "type": "*composed", "value": "ToR"},

View File

@@ -212,6 +212,8 @@ func (cdr *CDR) ParseFieldValue(fieldId, fieldVal, timezone string) error {
}
case utils.TOR:
cdr.ToR += fieldVal
case utils.MEDI_RUNID:
cdr.RunID += fieldVal
case utils.ACCID:
cdr.OriginID += fieldVal
case utils.REQTYPE:

View File

@@ -495,6 +495,11 @@ func TestCDRParseFieldValue(t *testing.T) {
} else if cdr.OrderID != 5 {
t.Errorf("Received cdr: %+v", cdr)
}
if err := cdr.ParseFieldValue(utils.MEDI_RUNID, "*default", ""); err != nil {
t.Error(err)
} else if cdr.RunID != "*default" {
t.Errorf("Received cdr: %+v", cdr)
}
}
func TestCDRAsExportRecord(t *testing.T) {