diff --git a/engine/account_test.go b/engine/account_test.go index b31fc40cb..14e0a1361 100644 --- a/engine/account_test.go +++ b/engine/account_test.go @@ -2329,24 +2329,6 @@ func TestAccountGetBalanceWithID(t *testing.T) { } } -// func TestAccountgetCreditForPrefix(t *testing.T) { -// acc := &Account{ -// BalanceMap: map[string]Balances{ -// utils.MetaMonetary: { -// &Balance{ -// ID: "testID", -// SharedGroups: utils.StringMap{ -// "testKey": false, -// }, -// }, -// }, -// }, -// } -// cd := &CallDescriptor{} -// rcvdur, rcvcredit, rcvblncs := acc.getCreditForPrefix(cd) -// fmt.Println(rcvdur, rcvcredit, rcvblncs) -// } - func TestAccountSetRecurrent(t *testing.T) { aType := "testType" var ptrType *string = &aType diff --git a/engine/version_test.go b/engine/version_test.go index 2be20b797..e16d93e06 100644 --- a/engine/version_test.go +++ b/engine/version_test.go @@ -18,6 +18,7 @@ along with this program. If not, see package engine import ( + "fmt" "reflect" "strings" "testing" @@ -130,3 +131,181 @@ func TestCurrentDBVersions(t *testing.T) { t.Errorf("Expected %+v, received %+v", expStr, rcv) } } + +type storageMock struct { + testcase string +} + +func (sM *storageMock) Close() {} + +func (sM *storageMock) Flush(string) error { + return nil +} + +func (sM *storageMock) GetKeysForPrefix(string) ([]string, error) { + return nil, nil +} + +func (sM *storageMock) RemoveKeysForPrefix(string) error { + return nil +} + +func (sM *storageMock) GetVersions(itm string) (vrs Versions, err error) { + switch sM.testcase { + case "GetVersions non-nil error": + err = fmt.Errorf("GetVersions mock error") + return nil, err + case "GetVersions ErrNotFound": + return nil, utils.ErrNotFound + case "ErrNotFound empty db": + return nil, utils.ErrNotFound + case "ErrNotFound IsDBEmpty error": + return nil, utils.ErrNotFound + } + return nil, nil +} + +func (sM *storageMock) SetVersions(vrs Versions, overwrite bool) (err error) { + switch sM.testcase { + case "setDBVersions error": + err = fmt.Errorf("SetVersions error") + return + case "ErrNotFound empty db": + err = fmt.Errorf("OverwriteDBVersions mock error") + return + } + return +} + +func (sM *storageMock) RemoveVersions(vrs Versions) (err error) { + return nil +} + +func (sM *storageMock) SelectDatabase(dbName string) (err error) { + return nil +} + +func (sM *storageMock) GetStorageType() string { + switch sM.testcase { + case "Compare returns non-nil message": + return utils.Postgres + } + return "" +} + +func (sM *storageMock) IsDBEmpty() (resp bool, err error) { + switch sM.testcase { + case "ErrNotFound empty db": + return true, nil + case "ErrNotFound IsDBEmpty error": + err = fmt.Errorf("IsDBEmpty mock error") + return false, err + } + return false, nil +} + +func TestVersionSetDBVersions(t *testing.T) { + storage := &storageMock{} + + err := SetDBVersions(storage) + + if err != nil { + t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err) + } +} + +func TestVersionisDataDB(t *testing.T) { + var storage Storage = &MongoStorage{} + rcv := isDataDB(storage) + + if rcv != false { + t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", false, rcv) + } +} + +func TestVersionsetDBVersions(t *testing.T) { + storage := &storageMock{ + testcase: "setDBVersions error", + } + + experr := "SetVersions error" + err := setDBVersions(storage, false) + + if err == nil || err.Error() != experr { + t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err) + } +} + +func TestVersionCheckVersionsNilError(t *testing.T) { + storage := &storageMock{} + err := CheckVersions(storage) + + if err != nil { + t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err) + } +} + +func TestVersionCheckVersionsGetVersionsNonNilErr(t *testing.T) { + storage := &storageMock{ + testcase: "GetVersions non-nil error", + } + + experr := "GetVersions mock error" + err := CheckVersions(storage) + + if err == nil || err.Error() != experr { + t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err) + } +} + +func TestVersionCheckVersionsGetVersionsErrNotFoundEmptyDB(t *testing.T) { + storage := &storageMock{ + testcase: "ErrNotFound empty db", + } + + experr := "OverwriteDBVersions mock error" + err := CheckVersions(storage) + + if err == nil || err.Error() != experr { + t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err) + } +} + +func TestVersionCheckVersionsGetVersionsErrNotFoundNonEmptyDB(t *testing.T) { + storage := &storageMock{ + testcase: "GetVersions ErrNotFound", + } + + experr := "No versions defined: please backup cgrates data and run : " + err := CheckVersions(storage) + + if err == nil || err.Error() != experr { + t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err) + } +} + +func TestVersionCheckVersionsGetVersionsErrNotFoundDataDBErr(t *testing.T) { + storage := &storageMock{ + testcase: "ErrNotFound IsDBEmpty error", + } + + experr := "IsDBEmpty mock error" + err := CheckVersions(storage) + + if err == nil || err.Error() != experr { + t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err) + } +} + +func TestVersionCheckVersionsCompareNonNilMsg(t *testing.T) { + storage := &storageMock{ + testcase: "Compare returns non-nil message", + } + + experr := fmt.Sprintf("Migration needed: please backup cgr data and run : <%s>", "cgr-migrator -exec=*cost_details") + err := CheckVersions(storage) + + if err == nil || err.Error() != experr { + t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err) + } +} diff --git a/general_tests/libtest.go b/general_tests/lib_test.go similarity index 100% rename from general_tests/libtest.go rename to general_tests/lib_test.go