Done testing onEvicted cases

This commit is contained in:
nickolasdaniel
2021-10-26 15:09:48 +03:00
committed by Dan Christian Bogos
parent cccbec76b0
commit e75a5b5acf

View File

@@ -1421,3 +1421,73 @@ func TestErsOnEvictedDumpToJSONInvalidPath(t *testing.T) {
t.Error(err)
}
}
func TestErsOnEvictedDumpToJSONEncodeErr(t *testing.T) {
utils.Logger.SetLogLevel(4)
utils.Logger.SetSyslog(nil)
var buf bytes.Buffer
log.SetOutput(&buf)
defer func() {
log.SetOutput(os.Stderr)
}()
dirPath := "/tmp/TestErsOnEvictedDumpToJSON"
err := os.MkdirAll(dirPath, 0755)
if err != nil {
t.Error(err)
}
value := &erEvents{
events: []*utils.CGREvent{
{
Tenant: "cgrates.org",
ID: "EventErsOnEvicted",
Event: map[string]interface{}{
utils.AccountField: "1001",
utils.Usage: "10s",
utils.Category: "call",
utils.Destination: "1002",
utils.OriginHost: "local",
utils.OriginID: "123456",
utils.ToR: utils.MetaVoice,
utils.CGRID: "1133dc80896edf5049b46aa911cb9085eeb27f4c",
utils.Password: "secure_pass",
"Additional_Field": "Additional_Value",
"EncodeErr": func() {
},
},
},
},
rdrCfg: &config.EventReaderCfg{ // CacheDumpFields will be empty
ID: "ER1",
Type: utils.MetaNone,
Opts: map[string]interface{}{
utils.PartialCacheActionOpt: utils.MetaDumpToJSON,
utils.PartialPathOpt: dirPath,
utils.PartialOrderFieldOpt: 2,
},
},
}
cfg := config.NewDefaultCGRConfig()
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
fltrS := engine.NewFilterS(cfg, nil, dm)
erS := &ERService{
cfg: cfg,
rdrEvents: make(chan *erEvent, 1),
filterS: fltrS,
}
expLog := "error: json: unsupported type: func()"
erS.onEvicted("ID_JSON", value)
rcvLog := buf.String()[20:]
if !strings.Contains(rcvLog, expLog) {
t.Errorf("expected <%+v> to be included in: <%+v>", expLog, rcvLog)
}
utils.Logger.SetLogLevel(0)
if err := os.RemoveAll(dirPath); err != nil {
t.Error(err)
}
}