Adding more RSRTests

This commit is contained in:
DanB
2014-04-10 19:12:27 +02:00
parent f2eade654c
commit 5d9e7bae67
4 changed files with 83 additions and 0 deletions

View File

@@ -180,3 +180,57 @@ func TestSearchReplaceInExtraFields(t *testing.T) {
t.Error("Error parsing extra fields: ", extraFields)
}
}
func TestDDazRSRExtraFields(t *testing.T) {
eFieldsCfg := []byte(`[cdrs]
extra_fields = ~effective_caller_id_number:s/(\d+)/+$1/
`)
simpleJsonCdr := []byte(`{
"core-uuid": "feef0b51-7fdf-4c4a-878e-aff233752de2",
"channel_data": {
"state": "CS_REPORTING",
"direction": "inbound",
"state_number": "11",
"flags": "0=1;1=1;3=1;36=1;37=1;39=1;42=1;47=1;52=1;73=1;75=1;94=1",
"caps": "1=1;2=1;3=1;4=1;5=1;6=1"
},
"variables": {
"direction": "inbound",
"uuid": "86cfd6e2-dbda-45a3-b59d-f683ec368e8b",
"session_id": "5",
"accountcode": "1001",
"user_context": "default",
"effective_caller_id_name": "Extension 1001",
"effective_caller_id_number": "4986517174963",
"outbound_caller_id_name": "FreeSWITCH",
"outbound_caller_id_number": "0000000000"
},
"times": {
"created_time": "1396984221278217",
"profile_created_time": "1396984221278217",
"progress_time": "0",
"progress_media_time": "0",
"answered_time": "0",
"hangup_time": "0",
"resurrect_time": "0",
"transfer_time": "1396984221377035"
}
}`)
var err error
cfg, err = config.NewCGRConfigFromBytes(eFieldsCfg)
if err != nil {
t.Error("Could not parse the config", err.Error())
} else if !reflect.DeepEqual(cfg.CDRSExtraFields, []*utils.RSRField{&utils.RSRField{Id: "effective_caller_id_number",
RSRule: &utils.ReSearchReplace{regexp.MustCompile(`(\d+)`), "+$1"}}}) {
t.Errorf("Unexpected value for config CdrsExtraFields: %v", cfg.CDRSExtraFields)
}
fsCdr, err := new(FSCdr).New(simpleJsonCdr)
if err != nil {
t.Error("Could not parse cdr", err.Error())
}
extraFields := fsCdr.GetExtraFields()
if extraFields["effective_caller_id_number"] != "+4986517174963" {
t.Error("Unexpected effective_caller_id_number received", extraFields["effective_caller_id_number"])
}
}

View File

@@ -21,6 +21,7 @@ package config
import (
"fmt"
"reflect"
"regexp"
"testing"
"time"
@@ -324,6 +325,15 @@ extra_fields = extr1,extr2
t.Errorf("Unexpected value for CdrsExtraFields: %v", cfg.CDRSExtraFields)
}
eFieldsCfg = []byte(`[cdrs]
extra_fields = ~effective_caller_id_number:s/(\d+)/+$1/
`)
if cfg, err := NewCGRConfigFromBytes(eFieldsCfg); err != nil {
t.Error("Could not parse the config", err.Error())
} else if !reflect.DeepEqual(cfg.CDRSExtraFields, []*utils.RSRField{&utils.RSRField{Id: "effective_caller_id_number",
RSRule: &utils.ReSearchReplace{regexp.MustCompile(`(\d+)`), "+$1"}}}) {
t.Errorf("Unexpected value for config CdrsExtraFields: %v", cfg.CDRSExtraFields)
}
eFieldsCfg = []byte(`[cdrs]
extra_fields = extr1,extr2,
`)
if _, err := NewCGRConfigFromBytes(eFieldsCfg); err == nil {
@@ -335,6 +345,7 @@ extra_fields = extr1,~extr2:s/x.+/
if _, err := NewCGRConfigFromBytes(eFieldsCfg); err == nil {
t.Error("Failed to detect failed RSRParsing")
}
}
func TestCdreExtraFields(t *testing.T) {

View File

@@ -31,3 +31,12 @@ func TestProcessReSearchReplace(t *testing.T) {
t.Error("Unexpected output from SearchReplace: ", outStr)
}
}
func TestProcessReSearchReplace2(t *testing.T) {
rsr := &ReSearchReplace{regexp.MustCompile(`(\d+)`), "+$1"}
source := "4986517174963"
expectOut := "+4986517174963"
if outStr := rsr.Process(source); outStr != expectOut {
t.Error("Unexpected output from SearchReplace: ", outStr)
}
}

View File

@@ -83,3 +83,12 @@ func TestNewRSRField(t *testing.T) {
t.Errorf("Unexpected RSRField received: %v", rsrField)
}
}
func TestNewRSRFieldDDz(t *testing.T) {
expectRSRField := &RSRField{Id: "effective_caller_id_number", RSRule: &ReSearchReplace{regexp.MustCompile(`(\d+)`), "+$1"}}
if rsrField, err := NewRSRField(`~effective_caller_id_number:s/(\d+)/+$1/`); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rsrField, expectRSRField) {
t.Errorf("Unexpected RSRField received: %v", rsrField)
}
}