CdrExporter using Value instead CdrFieldId for better flexibility

This commit is contained in:
DanB
2015-02-11 19:31:22 +01:00
parent 1fe2c60365
commit 654e0cfe12
5 changed files with 79 additions and 69 deletions

View File

@@ -142,3 +142,11 @@ func ParseRSRFieldsFromSlice(flds []string) (RSRFields, error) {
}
type RSRFields []*RSRField
// Return first Id of the rsrFields, used in cdre
func (self RSRFields) Id() string {
if len(self) == 0 {
return ""
}
return self[0].Id
}

View File

@@ -206,3 +206,18 @@ func TestFilterPasses(t *testing.T) {
t.Error("Passing filter")
}
}
func TestRSRFieldsId(t *testing.T) {
fieldsStr1 := `~account:s/^\w+[mpls]\d{6}$//;~subject:s/^0\d{9}$//;^destination/+4912345/;~mediation_runid:s/^default$/default/`
if rsrFlds, err := ParseRSRFields(fieldsStr1, INFIELD_SEP); err != nil {
t.Error("Unexpected error: ", err)
} else if idRcv := rsrFlds.Id(); idRcv != "account" {
t.Errorf("Received id: %s", idRcv)
}
fieldsStr2 := ""
if rsrFlds, err := ParseRSRFields(fieldsStr2, INFIELD_SEP); err != nil {
t.Error("Unexpected error: ", err)
} else if idRcv := rsrFlds.Id(); idRcv != "" {
t.Errorf("Received id: %s", idRcv)
}
}