mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-21 15:18:44 +05:00
Adding more RSRTests
This commit is contained in:
@@ -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"])
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user