Removing Type out of CgrXmlConfiguration

This commit is contained in:
DanB
2014-07-16 11:14:45 +02:00
parent a449194b62
commit c08fc13629
4 changed files with 33 additions and 34 deletions

View File

@@ -58,7 +58,7 @@ func (cdrcCfg *CgrXmlCdrcCfg) setDefaults() error {
}
if len(cdrcCfg.CdrFields) == 0 {
for key, cfgRsrField := range dfCfg.CdrcCdrFields {
cdrcCfg.CdrFields = append(cdrcCfg.CdrFields, &CdrcField{Id: key, Filter: cfgRsrField.Id, rsrField: cfgRsrField})
cdrcCfg.CdrFields = append(cdrcCfg.CdrFields, &CdrcField{Id: key, Value: cfgRsrField.Id, rsrField: cfgRsrField})
}
}
return nil
@@ -75,12 +75,12 @@ func (cdrcCfg *CgrXmlCdrcCfg) CdrRSRFields() map[string]*utils.RSRField {
type CdrcField struct {
XMLName xml.Name `xml:"field"`
Id string `xml:"id,attr"`
Filter string `xml:"filter,attr"`
Value string `xml:"value,attr"`
rsrField *utils.RSRField
}
func (cdrcFld *CdrcField) PopulateRSRField() (err error) {
if cdrcFld.rsrField, err = utils.NewRSRField(cdrcFld.Filter); err != nil {
if cdrcFld.rsrField, err = utils.NewRSRField(cdrcFld.Value); err != nil {
return err
}
return nil

View File

@@ -29,13 +29,13 @@ import (
var cfgDocCdrc *CgrXmlCfgDocument // Will be populated by first test
func TestPopulateRSRFIeld(t *testing.T) {
cdrcField := CdrcField{Id: "TEST1", Filter: `~effective_caller_id_number:s/(\d+)/+$1/`}
cdrcField := CdrcField{Id: "TEST1", Value: `~effective_caller_id_number:s/(\d+)/+$1/`}
if err := cdrcField.PopulateRSRField(); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if cdrcField.rsrField == nil {
t.Error("Failed loading the RSRField")
}
cdrcField = CdrcField{Id: "TEST2", Filter: `99`}
cdrcField = CdrcField{Id: "TEST2", Value: `99`}
if err := cdrcField.PopulateRSRField(); err != nil {
t.Error("Unexpected error: ", err.Error())
} else if cdrcField.rsrField == nil {
@@ -46,7 +46,7 @@ func TestPopulateRSRFIeld(t *testing.T) {
func TestSetDefaults(t *testing.T) {
cfgXmlStr := `<?xml version="1.0" encoding="UTF-8"?>
<document type="cgrates/xml">
<configuration section="cdrc" type="csv" id="CDRC-CSVDF">
<configuration section="cdrc" id="CDRC-CSVDF">
<enabled>true</enabled>
</configuration>
</document>`
@@ -87,19 +87,19 @@ func TestParseXmlCdrcConfig(t *testing.T) {
<cdr_out_dir>/var/log/cgrates/cdrc/out</cdr_out_dir>
<cdr_source_id>freeswitch_csv</cdr_source_id>
<fields>
<field id="accid" filter="0" />
<field id="reqtype" filter="1" />
<field id="direction" filter="2" />
<field id="tenant" filter="3" />
<field id="category" filter="4" />
<field id="account" filter="5" />
<field id="subject" filter="6" />
<field id="destination" filter="7" />
<field id="setup_time" filter="8" />
<field id="answer_time" filter="9" />
<field id="usage" filter="10" />
<field id="extr1" filter="11" />
<field id="extr2" filter="12" />
<field id="accid" value="0" />
<field id="reqtype" value="1" />
<field id="direction" value="2" />
<field id="tenant" value="3" />
<field id="category" value="4" />
<field id="account" value="5" />
<field id="subject" value="6" />
<field id="destination" value="7" />
<field id="setup_time" value="8" />
<field id="answer_time" value="9" />
<field id="usage" value="10" />
<field id="extr1" value="11" />
<field id="extr2" value="12" />
</fields>
</configuration>
</document>`
@@ -123,19 +123,19 @@ func TestGetCdrcCfgs(t *testing.T) {
expectCdrc := &CgrXmlCdrcCfg{Enabled: true, CdrsAddress: "internal", CdrType: "csv", CsvSeparator: ",",
RunDelay: 0, CdrInDir: "/var/log/cgrates/cdrc/in", CdrOutDir: "/var/log/cgrates/cdrc/out", CdrSourceId: "freeswitch_csv"}
cdrFlds := []*CdrcField{
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.ACCID, Filter: "0"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.REQTYPE, Filter: "1"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.DIRECTION, Filter: "2"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.TENANT, Filter: "3"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.CATEGORY, Filter: "4"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.ACCOUNT, Filter: "5"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.SUBJECT, Filter: "6"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.DESTINATION, Filter: "7"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.SETUP_TIME, Filter: "8"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.ANSWER_TIME, Filter: "9"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.USAGE, Filter: "10"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: "extr1", Filter: "11"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: "extr2", Filter: "12"}}
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.ACCID, Value: "0"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.REQTYPE, Value: "1"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.DIRECTION, Value: "2"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.TENANT, Value: "3"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.CATEGORY, Value: "4"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.ACCOUNT, Value: "5"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.SUBJECT, Value: "6"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.DESTINATION, Value: "7"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.SETUP_TIME, Value: "8"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.ANSWER_TIME, Value: "9"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: utils.USAGE, Value: "10"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: "extr1", Value: "11"},
&CdrcField{XMLName: xml.Name{Local: "field"}, Id: "extr2", Value: "12"}}
for _, fld := range cdrFlds {
fld.PopulateRSRField()
}

View File

@@ -50,7 +50,7 @@ func TestXmlCdreCfgPopulateCdreRSRFIeld(t *testing.T) {
func TestXmlCdreCfgParseXmlConfig(t *testing.T) {
cfgXmlStr := `<?xml version="1.0" encoding="UTF-8"?>
<document type="cgrates/xml">
<configuration section="cdre" type="fixed_width" id="CDRE-FW1">
<configuration section="cdre" id="CDRE-FW1">
<cdr_format>fwv</cdr_format>
<data_usage_multiply_factor>0.0</data_usage_multiply_factor>
<cost_multiply_factor>0.0</cost_multiply_factor>

View File

@@ -51,7 +51,6 @@ type CgrXmlCfgDocument struct {
type CgrXmlConfiguration struct {
XMLName xml.Name `xml:"configuration"`
Section string `xml:"section,attr"`
Type string `xml:"type,attr"`
Id string `xml:"id,attr"`
RawConfig []byte `xml:",innerxml"` // Used to store the configuration struct, as raw so we can store different types
}