Improve logger and libindex tests

This commit is contained in:
arberkatellari
2023-02-23 10:53:07 -05:00
committed by Dan Christian Bogos
parent db3ff231c6
commit f912ab04e8
3 changed files with 253 additions and 131 deletions

View File

@@ -2444,3 +2444,210 @@ func TestUpdateFilterIndexRateProfilesErr2(t *testing.T) {
}
}
func TestUpdateFilterIndexDispatcherIndex(t *testing.T) {
tmp := Cache
defer func() {
Cache = tmp
}()
Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
dataDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
dm := NewDataManager(dataDB, cfg.CacheCfg(), nil)
oldFlt := &Filter{
Tenant: "cgrates.org",
ID: "fltr_test",
Rules: []*FilterRule{
{
Type: utils.MetaString,
Element: "~*req.Cost",
Values: []string{"unRegVal2"},
},
},
}
if err := oldFlt.Compile(); err != nil {
t.Error(err)
}
if err := dm.SetFilter(context.Background(), oldFlt, true); err != nil {
t.Error(err)
}
dpp := &DispatcherProfile{
Tenant: "cgrates.org",
ID: "ID",
FilterIDs: []string{"fltr_test"},
Weight: 65,
Strategy: utils.MetaLoad,
StrategyParams: map[string]interface{}{"k": "v"},
Hosts: DispatcherHostProfiles{
{
ID: "C2",
FilterIDs: []string{"fltr3"},
Weight: 10,
Params: map[string]interface{}{
"param3": "value3",
},
Blocker: false,
},
},
}
if err := dm.SetDispatcherProfile(context.Background(), dpp, true); err != nil {
t.Error(err)
}
expindx := map[string]utils.StringSet{
"*string:*req.Cost:unRegVal2": {"ID": {}},
}
getindx, err := dm.GetIndexes(context.Background(), utils.CacheDispatcherFilterIndexes, utils.CGRateSorg, utils.EmptyString, utils.EmptyString, true, true)
if err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expindx, getindx) {
t.Errorf("Expected \n<%v>, \nReceived \n<%v>", utils.ToJSON(expindx), utils.ToJSON(getindx))
}
newFlt := &Filter{
Tenant: "cgrates.org",
ID: "fltr_test",
Rules: []*FilterRule{
{
Type: utils.MetaPrefix,
Element: "~*req.Usage",
Values: []string{"10s"},
},
},
}
if err := newFlt.Compile(); err != nil {
t.Error(err)
}
if err := dm.SetFilter(context.Background(), newFlt, false); err != nil {
t.Error(err)
}
if err := UpdateFilterIndex(context.Background(), dm, oldFlt, newFlt); err != nil {
t.Error(err)
}
expindxNew := map[string]utils.StringSet{
"*prefix:*req.Usage:10s": {"ID": {}},
}
getindxNew, err := dm.GetIndexes(context.Background(), utils.CacheDispatcherFilterIndexes, utils.CGRateSorg, utils.EmptyString, utils.EmptyString, true, true)
if err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expindxNew, getindxNew) {
t.Errorf("Expected \n<%v>, \nReceived \n<%v>", utils.ToJSON(expindxNew), utils.ToJSON(getindxNew))
}
}
func TestUpdateFilterDispatcherIndexErr1(t *testing.T) {
tmp := Cache
defer func() {
Cache = tmp
}()
Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
dataDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
dm := NewDataManager(dataDB, cfg.CacheCfg(), nil)
dm.dataDB = &DataDBMock{
GetIndexesDrvF: func(ctx *context.Context, idxItmType, tntCtx, idxKey, transactionID string) (indexes map[string]utils.StringSet, err error) {
return map[string]utils.StringSet{
utils.CacheDispatcherFilterIndexes: {
"ATTR_TEST": {},
},
}, nil
},
SetIndexesDrvF: func(ctx *context.Context, idxItmType, tntCtx string, indexes map[string]utils.StringSet, commit bool, transactionID string) (err error) {
return utils.ErrNotImplemented
},
}
oldFlt := &Filter{
Tenant: "cgrates.org",
ID: "fltr_test",
Rules: []*FilterRule{
{
Type: utils.MetaString,
Element: "~*req.Cost",
Values: []string{"unRegVal2"},
},
},
}
newFlt := &Filter{
Tenant: "cgrates.org",
ID: "fltr_test",
Rules: []*FilterRule{
{
Type: utils.MetaPrefix,
Element: "~*req.Usage",
Values: []string{"10s"},
},
},
}
expErr := utils.ErrNotImplemented
if err := UpdateFilterIndex(context.Background(), dm, oldFlt, newFlt); err != expErr {
t.Errorf("Expected error <%v>, Received error <%v>", expErr, err)
}
}
func TestUpdateFilterIndexDispatcherErr2(t *testing.T) {
tmp := Cache
defer func() {
Cache = tmp
}()
Cache.Clear(nil)
cfg := config.NewDefaultCGRConfig()
dataDB := NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
dm := NewDataManager(dataDB, cfg.CacheCfg(), nil)
dm.dataDB = &DataDBMock{
GetIndexesDrvF: func(ctx *context.Context, idxItmType, tntCtx, idxKey, transactionID string) (indexes map[string]utils.StringSet, err error) {
return map[string]utils.StringSet{
utils.CacheDispatcherFilterIndexes: {
"ATTR_TEST": {},
},
}, nil
},
SetIndexesDrvF: func(ctx *context.Context, idxItmType, tntCtx string, indexes map[string]utils.StringSet, commit bool, transactionID string) (err error) {
return nil
},
}
oldFlt := &Filter{
Tenant: "cgrates.org",
ID: "fltr_test",
Rules: []*FilterRule{
{
Type: utils.MetaString,
Element: "~*req.Cost",
Values: []string{"unRegVal2"},
},
},
}
newFlt := &Filter{
Tenant: "cgrates.org",
ID: "fltr_test",
Rules: []*FilterRule{
{
Type: utils.MetaPrefix,
Element: "~*req.Usage",
Values: []string{"10s"},
},
},
}
expErr := "SERVER_ERROR: NOT_IMPLEMENTED"
if err := UpdateFilterIndex(context.Background(), dm, oldFlt, newFlt); err.Error() != expErr {
t.Errorf("Expected error <%v>, Received error <%v>", expErr, err)
}
}

View File

@@ -124,6 +124,12 @@ func testEmergencyLogger(t *testing.T) {
if err := newLogger.Emerg("emergency_panic"); err != nil {
t.Error(err)
}
newLogger.SetLogLevel(-1)
if err := newLogger.Emerg("emergency_panic2"); err != nil {
t.Error(err)
}
if err := writer.Close(); err != nil {
t.Error(err)
}
@@ -133,8 +139,11 @@ func testEmergencyLogger(t *testing.T) {
t.Error(err)
}
expected := "emergency_panic"
expected2 := "emergency_panic2"
if rcv := l.String(); !strings.Contains(rcv, expected) {
t.Errorf("Expected %q, received %q", expected, rcv)
} else if strings.Contains(rcv, expected2) {
t.Errorf("Expected %q to not exist, received %q", expected, rcv)
}
}
@@ -160,6 +169,12 @@ func testAlertLogger(t *testing.T) {
if err := newLogger.Alert("emergency_alert"); err != nil {
t.Error(err)
}
newLogger.SetLogLevel(0)
if err := newLogger.Alert("emergency_alert2"); err != nil {
t.Error(err)
}
if err := writer.Close(); err != nil {
t.Error(err)
}
@@ -169,8 +184,11 @@ func testAlertLogger(t *testing.T) {
t.Error(err)
}
expected := "emergency_alert"
expected2 := "emergency_alert2"
if rcv := l.String(); !strings.Contains(rcv, expected) {
t.Errorf("Expected %q, received %q", expected, rcv)
} else if strings.Contains(rcv, expected2) {
t.Errorf("Expected %q to not exist, received %q", expected, rcv)
}
}
@@ -195,6 +213,13 @@ func testCriticalLogger(t *testing.T) {
if err := newLogger.Crit("critical_panic"); err != nil {
t.Error(err)
}
newLogger.SetLogLevel(1)
if err := newLogger.Crit("critical_panic2"); err != nil {
t.Error(err)
}
if err := writer.Close(); err != nil {
t.Error(err)
}
@@ -204,8 +229,11 @@ func testCriticalLogger(t *testing.T) {
t.Error(err)
}
expected := "critical_panic"
expected2 := "critical_panic2"
if rcv := l.String(); !strings.Contains(rcv, expected) {
t.Errorf("Expected %q, received %q", expected, rcv)
} else if strings.Contains(rcv, expected2) {
t.Errorf("Expected %q to not exist, received %q", expected, rcv)
}
}
@@ -301,6 +329,12 @@ func testNoticeLogger(t *testing.T) {
t.Error(err)
}
newLogger.SetLogLevel(4)
if err := newLogger.Notice("notice_panic2"); err != nil {
t.Error(err)
}
if err := writer.Close(); err != nil {
t.Error(err)
}
@@ -310,8 +344,11 @@ func testNoticeLogger(t *testing.T) {
t.Error(err)
}
expected := "notice_panic"
expected2 := "notice_panic2"
if rcv := l.String(); !strings.Contains(rcv, expected) {
t.Errorf("Expected %q, received %q", expected, rcv)
} else if strings.Contains(rcv, expected2) {
t.Errorf("Expected %q to not exist, received %q", expected, rcv)
}
}
@@ -371,6 +408,12 @@ func testDebugLogger(t *testing.T) {
if err := newLogger.Debug("debug_panic"); err != nil {
t.Error(err)
}
newLogger.SetLogLevel(6)
if err := newLogger.Debug("debug_panic2"); err != nil {
t.Error(err)
}
if err := writer.Close(); err != nil {
t.Error(err)
}
@@ -380,7 +423,10 @@ func testDebugLogger(t *testing.T) {
t.Error(err)
}
expected := "debug_panic"
expected2 := "debug_panic2"
if rcv := l.String(); !strings.Contains(rcv, expected) {
t.Errorf("Expected %q, received %q", expected, rcv)
} else if strings.Contains(rcv, expected2) {
t.Errorf("Expected %q to not exist, received %q", expected, rcv)
}
}

View File

@@ -235,18 +235,6 @@ func TestLoggerStdLoggerDebug(t *testing.T) {
t.Errorf("expected: <%s>, \nreceived: <%s>", expMsg, buf.String())
}
}
func TestCloseSysLogger(t *testing.T) {
if noSysLog {
t.SkipNow()
}
sl, _ := NewSysLogger("test", 2)
if err := sl.Close(); err != nil {
t.Errorf("Expected <nil>, received %v", err)
}
}
func TestWriteSysLogger(t *testing.T) {
if noSysLog {
t.SkipNow()
@@ -261,125 +249,6 @@ func TestWriteSysLogger(t *testing.T) {
}
}
func TestAlertSysLogger(t *testing.T) {
if noSysLog {
t.SkipNow()
}
sl, _ := NewSysLogger("test", 0)
if err := sl.Alert("Alert Message"); err != nil {
t.Errorf("Expected <nil>, received %v", err)
}
sl, _ = NewSysLogger("test2", 2)
if err := sl.Alert("Alert Message 2"); err != nil {
t.Errorf("Expected <nil>, received %v", err)
}
}
func TestCritSysLogger(t *testing.T) {
if noSysLog {
t.SkipNow()
}
sl, _ := NewSysLogger("test", 1)
if err := sl.Crit("Critical Message"); err != nil {
t.Errorf("Expected <nil>, received %v", err)
}
sl, _ = NewSysLogger("test2", 4)
if err := sl.Crit("Critical Message 2"); err != nil {
t.Errorf("Expected <nil>, received %v", err)
}
}
func TestDebugSysLogger(t *testing.T) {
if noSysLog {
t.SkipNow()
}
sl, _ := NewSysLogger("test", 6)
if err := sl.Debug("Debug Message"); err != nil {
t.Errorf("Expected <nil>, received %v", err)
}
sl, _ = NewSysLogger("test2", 8)
if err := sl.Debug("Debug Message 2"); err != nil {
t.Errorf("Expected <nil>, received %v", err)
}
}
func TestEmergSysLogger(t *testing.T) {
if noSysLog {
t.SkipNow()
}
sl, _ := NewSysLogger("test", -1)
if err := sl.Emerg("Emergency Message"); err != nil {
t.Errorf("Expected <nil>, received %v", err)
}
// always broadcasts message from journal
// sl, _ = NewSysLogger("test2", 1)
// if err := sl.Emerg("Emergency Message 2"); err != nil {
// t.Errorf("Expected <nil>, received %v", err)
// }
}
func TestErrSysLogger(t *testing.T) {
if noSysLog {
t.SkipNow()
}
sl, _ := NewSysLogger("test", 2)
if err := sl.Err("Error Message"); err != nil {
t.Errorf("Expected <nil>, received %v", err)
}
sl, _ = NewSysLogger("test2", 4)
if err := sl.Err("Error Message 2"); err != nil {
t.Errorf("Expected <nil>, received %v", err)
}
}
func TestInfoSysLogger(t *testing.T) {
if noSysLog {
t.SkipNow()
}
sl, _ := NewSysLogger("test", 5)
if err := sl.Info("Info Message"); err != nil {
t.Errorf("Expected <nil>, received %v", err)
}
sl, _ = NewSysLogger("test2", 7)
if err := sl.Info("Info Message 2"); err != nil {
t.Errorf("Expected <nil>, received %v", err)
}
}
func TestNoticeSysLogger(t *testing.T) {
if noSysLog {
t.SkipNow()
}
sl, _ := NewSysLogger("test", 4)
if err := sl.Notice("Notice Message"); err != nil {
t.Errorf("Expected <nil>, received %v", err)
}
sl, _ = NewSysLogger("test2", 6)
if err := sl.Notice("Notice Message 2"); err != nil {
t.Errorf("Expected <nil>, received %v", err)
}
}
func TestWarningSysLogger(t *testing.T) {
if noSysLog {
t.SkipNow()
}
sl, _ := NewSysLogger("test", 3)
if err := sl.Warning("Warning Message"); err != nil {
t.Errorf("Expected <nil>, received %v", err)
}
sl, _ = NewSysLogger("test2", 5)
if err := sl.Warning("Warning Message 2"); err != nil {
t.Errorf("Expected <nil>, received %v", err)
}
}
func TestCloseNopCloser(t *testing.T) {
var nC NopCloser