From c600ce39b9e887b67c348909b9ab9835d7465e8f Mon Sep 17 00:00:00 2001 From: Trial97 Date: Mon, 31 May 2021 12:35:03 +0300 Subject: [PATCH] Added tests for cgr-migrator --- cmd/cgr-migrator/cgr-migrator.go | 17 +- cmd/cgr-migrator/cgr-migrator_test.go | 234 ++++++++++++++++++++++++++ 2 files changed, 240 insertions(+), 11 deletions(-) create mode 100644 cmd/cgr-migrator/cgr-migrator_test.go diff --git a/cmd/cgr-migrator/cgr-migrator.go b/cmd/cgr-migrator/cgr-migrator.go index 42fa7aeca..f7e25552f 100644 --- a/cmd/cgr-migrator/cgr-migrator.go +++ b/cmd/cgr-migrator/cgr-migrator.go @@ -149,7 +149,7 @@ func main() { // inDataDB if *inDataDBType != dfltCfg.DataDbCfg().Type { - mgrCfg.DataDbCfg().Type = strings.TrimPrefix(*inDataDBType, utils.MaskChar) + mgrCfg.DataDbCfg().Type = strings.TrimPrefix(*inDataDBType, utils.Meta) } if *inDataDBHost != dfltCfg.DataDbCfg().Host { mgrCfg.DataDbCfg().Host = *inDataDBHost @@ -206,7 +206,7 @@ func main() { mgrCfg.MigratorCgrCfg().OutDataDBType = mgrCfg.DataDbCfg().Type } } else { - mgrCfg.MigratorCgrCfg().OutDataDBType = strings.TrimPrefix(*outDataDBType, utils.MaskChar) + mgrCfg.MigratorCgrCfg().OutDataDBType = strings.TrimPrefix(*outDataDBType, utils.Meta) } if *outDataDBHost == utils.MetaDataDB { @@ -285,7 +285,7 @@ func main() { // inStorDB if *inStorDBType != dfltCfg.StorDbCfg().Type { - mgrCfg.StorDbCfg().Type = strings.TrimPrefix(*inStorDBType, utils.MaskChar) + mgrCfg.StorDbCfg().Type = strings.TrimPrefix(*inStorDBType, utils.Meta) } if *inStorDBHost != dfltCfg.StorDbCfg().Host { mgrCfg.StorDbCfg().Host = *inStorDBHost @@ -309,7 +309,7 @@ func main() { mgrCfg.MigratorCgrCfg().OutStorDBType = mgrCfg.StorDbCfg().Type } } else { - mgrCfg.MigratorCgrCfg().OutStorDBType = strings.TrimPrefix(*outStorDBType, utils.MaskChar) + mgrCfg.MigratorCgrCfg().OutStorDBType = strings.TrimPrefix(*outStorDBType, utils.Meta) } if *outStorDBHost == utils.MetaStorDB { if dfltCfg.MigratorCgrCfg().OutStorDBHost == mgrCfg.MigratorCgrCfg().OutStorDBHost { @@ -386,16 +386,11 @@ func main() { defer m.Close() config.SetCgrConfig(mgrCfg) if exec != nil && *exec != utils.EmptyString { // Run migrator - migrstats := make(map[string]int) - mig := strings.Split(*exec, utils.FieldsSep) - err, migrstats = m.Migrate(mig) - if err != nil { + if err, migrstats := m.Migrate(strings.Split(*exec, utils.FieldsSep)); err != nil { log.Fatal(err) - } - if *verbose != false { + } else if *verbose { log.Printf("Data migrated: %+v", migrstats) } - return } } diff --git a/cmd/cgr-migrator/cgr-migrator_test.go b/cmd/cgr-migrator/cgr-migrator_test.go new file mode 100644 index 000000000..9ffc11ade --- /dev/null +++ b/cmd/cgr-migrator/cgr-migrator_test.go @@ -0,0 +1,234 @@ +/* +Real-time Online/Offline Charging System (OerS) for Telecom & ISP environments +Copyright (C) ITsysCOM GmbH + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see +*/ + +package main + +import ( + "testing" +) + +// if the flag change this should fail +// do not use constants in this test +func TestFlags(t *testing.T) { + if err := cgrMigratorFlags.Parse([]string{"-config_path", "true"}); err != nil { + t.Fatal(err) + } else if *cfgPath != "true" { + t.Errorf("Expected true received:%v ", *cfgPath) + } + if err := cgrMigratorFlags.Parse([]string{"-exec", "true"}); err != nil { + t.Fatal(err) + } else if *exec != "true" { + t.Errorf("Expected true received:%v ", *exec) + } + if err := cgrMigratorFlags.Parse([]string{"-version", "true"}); err != nil { + t.Fatal(err) + } else if !*version { + t.Errorf("Expected true received:%v ", *version) + } + if err := cgrMigratorFlags.Parse([]string{"-datadb_type", "true"}); err != nil { + t.Fatal(err) + } else if *inDataDBType != "true" { + t.Errorf("Expected true received:%v ", *inDataDBType) + } + if err := cgrMigratorFlags.Parse([]string{"-datadb_host", "true"}); err != nil { + t.Fatal(err) + } else if *inDataDBHost != "true" { + t.Errorf("Expected true received:%v ", *inDataDBHost) + } + if err := cgrMigratorFlags.Parse([]string{"-datadb_port", "true"}); err != nil { + t.Fatal(err) + } else if *inDataDBPort != "true" { + t.Errorf("Expected true received:%v ", *inDataDBPort) + } + if err := cgrMigratorFlags.Parse([]string{"-datadb_name", "true"}); err != nil { + t.Fatal(err) + } else if *inDataDBName != "true" { + t.Errorf("Expected true received:%v ", *inDataDBName) + } + if err := cgrMigratorFlags.Parse([]string{"-datadb_user", "true"}); err != nil { + t.Fatal(err) + } else if *inDataDBUser != "true" { + t.Errorf("Expected true received:%v ", *inDataDBUser) + } + if err := cgrMigratorFlags.Parse([]string{"-datadb_passwd", "true"}); err != nil { + t.Fatal(err) + } else if *inDataDBPass != "true" { + t.Errorf("Expected true received:%v ", *inDataDBPass) + } + if err := cgrMigratorFlags.Parse([]string{"-dbdata_encoding", "true"}); err != nil { + t.Fatal(err) + } else if *inDBDataEncoding != "true" { + t.Errorf("Expected true received:%v ", *inDBDataEncoding) + } + if err := cgrMigratorFlags.Parse([]string{"-redisSentinel", "true"}); err != nil { + t.Fatal(err) + } else if *inDataDBRedisSentinel != "true" { + t.Errorf("Expected true received:%v ", *inDataDBRedisSentinel) + } + if err := cgrMigratorFlags.Parse([]string{"-redisCluster", "true"}); err != nil { + t.Fatal(err) + } else if !*dbRedisCluster { + t.Errorf("Expected true received:%v ", *dbRedisCluster) + } + if err := cgrMigratorFlags.Parse([]string{"-redisClusterSync", "true"}); err != nil { + t.Fatal(err) + } else if *dbRedisClusterSync != "true" { + t.Errorf("Expected true received:%v ", *dbRedisClusterSync) + } + if err := cgrMigratorFlags.Parse([]string{"-redisClusterOndownDelay", "true"}); err != nil { + t.Fatal(err) + } else if *dbRedisClusterDownDelay != "true" { + t.Errorf("Expected true received:%v ", *dbRedisClusterDownDelay) + } + if err := cgrMigratorFlags.Parse([]string{"-mongoQueryTimeout", "true"}); err != nil { + t.Fatal(err) + } else if *dbQueryTimeout != "true" { + t.Errorf("Expected true received:%v ", *dbQueryTimeout) + } + if err := cgrMigratorFlags.Parse([]string{"-redisTLS", "true"}); err != nil { + t.Fatal(err) + } else if !*dbRedisTls { + t.Errorf("Expected true received:%v ", *dbRedisTls) + } + if err := cgrMigratorFlags.Parse([]string{"-redisClientCertificate", "true"}); err != nil { + t.Fatal(err) + } else if *dbRedisClientCertificate != "true" { + t.Errorf("Expected true received:%v ", *dbRedisClientCertificate) + } + if err := cgrMigratorFlags.Parse([]string{"-redisClientKey", "true"}); err != nil { + t.Fatal(err) + } else if *dbRedisClientKey != "true" { + t.Errorf("Expected true received:%v ", *dbRedisClientKey) + } + if err := cgrMigratorFlags.Parse([]string{"-redisCACertificate", "true"}); err != nil { + t.Fatal(err) + } else if *dbRedisCACertificate != "true" { + t.Errorf("Expected true received:%v ", *dbRedisCACertificate) + } + if err := cgrMigratorFlags.Parse([]string{"-out_datadb_type", "true"}); err != nil { + t.Fatal(err) + } else if *outDataDBType != "true" { + t.Errorf("Expected true received:%v ", *outDataDBType) + } + if err := cgrMigratorFlags.Parse([]string{"-out_datadb_host", "true"}); err != nil { + t.Fatal(err) + } else if *outDataDBHost != "true" { + t.Errorf("Expected true received:%v ", *outDataDBHost) + } + if err := cgrMigratorFlags.Parse([]string{"-out_datadb_port", "true"}); err != nil { + t.Fatal(err) + } else if *outDataDBPort != "true" { + t.Errorf("Expected true received:%v ", *outDataDBPort) + } + if err := cgrMigratorFlags.Parse([]string{"-out_datadb_name", "true"}); err != nil { + t.Fatal(err) + } else if *outDataDBName != "true" { + t.Errorf("Expected true received:%v ", *outDataDBName) + } + if err := cgrMigratorFlags.Parse([]string{"-out_datadb_user", "true"}); err != nil { + t.Fatal(err) + } else if *outDataDBUser != "true" { + t.Errorf("Expected true received:%v ", *outDataDBUser) + } + if err := cgrMigratorFlags.Parse([]string{"-out_datadb_password", "true"}); err != nil { + t.Fatal(err) + } else if *outDataDBPass != "true" { + t.Errorf("Expected true received:%v ", *outDataDBPass) + } + if err := cgrMigratorFlags.Parse([]string{"-out_datadb_encoding", "true"}); err != nil { + t.Fatal(err) + } else if *outDBDataEncoding != "true" { + t.Errorf("Expected true received:%v ", *outDBDataEncoding) + } + if err := cgrMigratorFlags.Parse([]string{"-out_redis_sentinel", "true"}); err != nil { + t.Fatal(err) + } else if *outDataDBRedisSentinel != "true" { + t.Errorf("Expected true received:%v ", *outDataDBRedisSentinel) + } + if err := cgrMigratorFlags.Parse([]string{"-stordb_type", "true"}); err != nil { + t.Fatal(err) + } else if *inStorDBType != "true" { + t.Errorf("Expected true received:%v ", *inStorDBType) + } + if err := cgrMigratorFlags.Parse([]string{"-stordb_host", "true"}); err != nil { + t.Fatal(err) + } else if *inStorDBHost != "true" { + t.Errorf("Expected true received:%v ", *inStorDBHost) + } + if err := cgrMigratorFlags.Parse([]string{"-stordb_port", "true"}); err != nil { + t.Fatal(err) + } else if *inStorDBPort != "true" { + t.Errorf("Expected true received:%v ", *inStorDBPort) + } + if err := cgrMigratorFlags.Parse([]string{"-stordb_name", "true"}); err != nil { + t.Fatal(err) + } else if *inStorDBName != "true" { + t.Errorf("Expected true received:%v ", *inStorDBName) + } + if err := cgrMigratorFlags.Parse([]string{"-stordb_user", "true"}); err != nil { + t.Fatal(err) + } else if *inStorDBUser != "true" { + t.Errorf("Expected true received:%v ", *inStorDBUser) + } + if err := cgrMigratorFlags.Parse([]string{"-stordb_passwd", "true"}); err != nil { + t.Fatal(err) + } else if *inStorDBPass != "true" { + t.Errorf("Expected true received:%v ", *inStorDBPass) + } + if err := cgrMigratorFlags.Parse([]string{"-out_stordb_type", "true"}); err != nil { + t.Fatal(err) + } else if *outStorDBType != "true" { + t.Errorf("Expected true received:%v ", *outStorDBType) + } + if err := cgrMigratorFlags.Parse([]string{"-out_stordb_host", "true"}); err != nil { + t.Fatal(err) + } else if *outStorDBHost != "true" { + t.Errorf("Expected true received:%v ", *outStorDBHost) + } + if err := cgrMigratorFlags.Parse([]string{"-out_stordb_port", "true"}); err != nil { + t.Fatal(err) + } else if *outStorDBPort != "true" { + t.Errorf("Expected true received:%v ", *outStorDBPort) + } + if err := cgrMigratorFlags.Parse([]string{"-out_stordb_name", "true"}); err != nil { + t.Fatal(err) + } else if *outStorDBName != "true" { + t.Errorf("Expected true received:%v ", *outStorDBName) + } + if err := cgrMigratorFlags.Parse([]string{"-out_stordb_user", "true"}); err != nil { + t.Fatal(err) + } else if *outStorDBUser != "true" { + t.Errorf("Expected true received:%v ", *outStorDBUser) + } + if err := cgrMigratorFlags.Parse([]string{"-out_stordb_password", "true"}); err != nil { + t.Fatal(err) + } else if *outStorDBPass != "true" { + t.Errorf("Expected true received:%v ", *outStorDBPass) + } + if err := cgrMigratorFlags.Parse([]string{"-dry_run", "true"}); err != nil { + t.Fatal(err) + } else if !*dryRun { + t.Errorf("Expected true received:%v ", *dryRun) + } + if err := cgrMigratorFlags.Parse([]string{"-verbose", "true"}); err != nil { + t.Fatal(err) + } else if !*verbose { + t.Errorf("Expected true received:%v ", *verbose) + } + +}