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