Coverage tests for ees

This commit is contained in:
nickolasdaniel
2021-03-19 17:09:38 +02:00
committed by Dan Christian Bogos
parent 9047fab68c
commit 1b443b5abb
2 changed files with 123 additions and 10 deletions

View File

@@ -34,33 +34,30 @@ import (
"github.com/cgrates/cgrates/utils"
)
func NewSQLEe(cgrCfg *config.CGRConfig, cfgIdx int, filterS *engine.FilterS,
dc utils.MapStorage) (sqlEe *SQLEe, err error) {
sqlEe = &SQLEe{id: cgrCfg.EEsCfg().Exporters[cfgIdx].ID,
cgrCfg: cgrCfg, cfgIdx: cfgIdx, filterS: filterS, dc: dc}
func (sqlEe *SQLEe) NewSQLEeUrl(cgrCfg *config.CGRConfig) (dialect gorm.Dialector, err error) {
var u *url.URL
if u, err = url.Parse(strings.TrimPrefix(cgrCfg.EEsCfg().Exporters[cfgIdx].ExportPath, utils.Meta)); err != nil {
// var err error
if u, err = url.Parse(strings.TrimPrefix(cgrCfg.EEsCfg().Exporters[0].ExportPath, utils.Meta)); err != nil {
return
}
password, _ := u.User.Password()
dbname := utils.SQLDefaultDBName
if vals, has := cgrCfg.EEsCfg().Exporters[cfgIdx].Opts[utils.SQLDBName]; has {
if vals, has := cgrCfg.EEsCfg().Exporters[0].Opts[utils.SQLDBName]; has {
dbname = utils.IfaceAsString(vals)
}
ssl := utils.SQLDefaultSSLMode
if vals, has := cgrCfg.EEsCfg().Exporters[cfgIdx].Opts[utils.SQLSSLMode]; has {
if vals, has := cgrCfg.EEsCfg().Exporters[0].Opts[utils.SQLSSLMode]; has {
ssl = utils.IfaceAsString(vals)
}
// tableName is mandatory in opts
if iface, has := cgrCfg.EEsCfg().Exporters[cfgIdx].Opts[utils.SQLTableName]; !has {
if iface, has := cgrCfg.EEsCfg().Exporters[0].Opts[utils.SQLTableName]; !has {
return nil, utils.NewErrMandatoryIeMissing(utils.SQLTableName)
} else {
sqlEe.tableName = utils.IfaceAsString(iface)
}
var dialect gorm.Dialector
// var dialect gorm.Dialector
switch u.Scheme {
case utils.MySQL:
dialect = mysql.Open(fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8&loc=Local&parseTime=true&sql_mode='ALLOW_INVALID_DATES'",
@@ -70,6 +67,18 @@ func NewSQLEe(cgrCfg *config.CGRConfig, cfgIdx int, filterS *engine.FilterS,
default:
return nil, fmt.Errorf("db type <%s> not supported", u.Scheme)
}
return
}
func NewSQLEe(cgrCfg *config.CGRConfig, cfgIdx int, filterS *engine.FilterS,
dc utils.MapStorage) (sqlEe *SQLEe, err error) {
sqlEe = &SQLEe{id: cgrCfg.EEsCfg().Exporters[cfgIdx].ID,
cgrCfg: cgrCfg, cfgIdx: cfgIdx, filterS: filterS, dc: dc}
dialect, err := sqlEe.NewSQLEeUrl(cgrCfg)
if err != nil {
return
}
var db *gorm.DB
if db, err = gorm.Open(dialect, &gorm.Config{AllowGlobalUpdate: true}); err != nil {
return