From c937a2427d62adb1796dc0969798b95dfbb13571 Mon Sep 17 00:00:00 2001 From: Trial97 Date: Thu, 21 Feb 2019 19:30:45 +0200 Subject: [PATCH] Udated integration tests for aliases, users and derived chargers migration --- migrator/alias_it_test.go | 13 ++++++++ migrator/derived_chargers_it_test.go | 25 +++++++++++++-- migrator/user_it_test.go | 23 ++++++++++++-- migrator/user_test.go | 46 +++++++++++++--------------- 4 files changed, 76 insertions(+), 31 deletions(-) diff --git a/migrator/alias_it_test.go b/migrator/alias_it_test.go index 263580a68..e9dc4b7f1 100644 --- a/migrator/alias_it_test.go +++ b/migrator/alias_it_test.go @@ -227,6 +227,19 @@ func testAlsITMigrateAndMove(t *testing.T) { t.Error("Error should be not found : ", err) } + expAlsIdx := map[string]utils.StringMap{ + "*string:Account:1001": utils.StringMap{ + "*out:*any:*any:1001:call_1001:*rated": true, + }, + "*string:Subject:call_1001": utils.StringMap{ + "*out:*any:*any:1001:call_1001:*rated": true, + }, + } + if alsidx, err := alsMigrator.dmOut.DataManager().GetFilterIndexes(utils.PrefixToIndexCache[utils.AttributeProfilePrefix], utils.ConcatenatedKey("cgrates.org", utils.META_ANY), utils.MetaString, nil); err != nil { + t.Error(err) + } else if !reflect.DeepEqual(expAlsIdx, alsidx) { + t.Errorf("Expected %v, recived: %v", utils.ToJSON(expAlsIdx), utils.ToJSON(alsidx)) + } case utils.Move: /* // No Move tests if err := alsMigrator.dmIN.DataManager().DataDB().SetAlias(alias, utils.NonTransactional); err != nil { diff --git a/migrator/derived_chargers_it_test.go b/migrator/derived_chargers_it_test.go index 67197eddf..6deb9ed9f 100644 --- a/migrator/derived_chargers_it_test.go +++ b/migrator/derived_chargers_it_test.go @@ -146,8 +146,8 @@ func testDCITMigrateAndMove(t *testing.T) { DestinationIDs: utils.StringMap{"1001": true, "1002": true, "1003": true}, Chargers: []*v1DerivedCharger{ &v1DerivedCharger{ - RunID: "RunID", - RunFilters: "~filterhdr1:s/(.+)/special_run3/", + RunID: "RunID", + // RunFilters: "~filterhdr1:s/(.+)/special_run3/", RequestTypeField: utils.MetaDefault, CategoryField: utils.MetaDefault, @@ -190,7 +190,7 @@ func testDCITMigrateAndMove(t *testing.T) { FilterIDs: []string{ "*destination:Destination:1001;1002;1003", "*string:Account:1003", - "*rsr::~filterhdr1:s/(.+)/special_run3/", + // "*rsr::~filterhdr1:s/(.+)/special_run3/", }, ActivationInterval: nil, RunID: "RunID", @@ -252,6 +252,25 @@ func testDCITMigrateAndMove(t *testing.T) { if _, err = dcMigrator.dmIN.getV1DerivedChargers(); err != utils.ErrNoMoreData { t.Error("Error should be not found : ", err) } + expDcIdx := map[string]utils.StringMap{ + "*string:Account:1003": utils.StringMap{ + "*out:cgrates.org:*any:1003:*any_0": true, + }, + } + if dcidx, err := dcMigrator.dmOut.DataManager().GetFilterIndexes(utils.PrefixToIndexCache[utils.AttributeProfilePrefix], utils.ConcatenatedKey("cgrates.org", utils.META_ANY), utils.MetaString, nil); err != nil { + t.Error(err) + } else if !reflect.DeepEqual(expDcIdx, dcidx) { + t.Errorf("Expected %v, recived: %v", utils.ToJSON(expDcIdx), utils.ToJSON(dcidx)) + } + expDcIdx = map[string]utils.StringMap{ + "*string:Account:1003": utils.StringMap{ + "*out:cgrates.org:*any:1003:*any_0": true, + }, + } + if dcidx, err := dcMigrator.dmOut.DataManager().GetFilterIndexes(utils.PrefixToIndexCache[utils.ChargerProfilePrefix], utils.ConcatenatedKey("cgrates.org", utils.META_ANY), + utils.MetaString, nil); err == nil || err.Error() != utils.ErrNotFound.Error() { + t.Errorf("Expected error %v, recived: %v with reply: %v", utils.ErrNotFound, err, utils.ToJSON(dcidx)) + } case utils.Move: /* // No Move tests diff --git a/migrator/user_it_test.go b/migrator/user_it_test.go index b96ca2a9a..346f9fe6a 100644 --- a/migrator/user_it_test.go +++ b/migrator/user_it_test.go @@ -131,7 +131,7 @@ func testUsrITFlush(t *testing.T) { func testUsrITMigrateAndMove(t *testing.T) { user := &v1UserProfile{ - Tenant: defaultTenant, + Tenant: "cgrates.com", UserName: "1001", Masked: false, Profile: map[string]string{ @@ -149,7 +149,13 @@ func testUsrITMigrateAndMove(t *testing.T) { ActivationInterval: nil, Attributes: []*engine.Attribute{ { - FieldName: "ReqType", + FieldName: utils.MetaTenant, + Initial: utils.META_ANY, + Substitute: config.NewRSRParsersMustCompile("cgrates.com", true, utils.INFIELD_SEP), + Append: true, + }, + { + FieldName: utils.RequestType, Initial: utils.META_ANY, Substitute: config.NewRSRParsersMustCompile("*prepaid", true, utils.INFIELD_SEP), Append: true, @@ -194,7 +200,7 @@ func testUsrITMigrateAndMove(t *testing.T) { t.Errorf("Unexpected version returned: %d", vrs[utils.User]) } //check if user was migrate correctly - result, err := usrMigrator.dmOut.DataManager().DataDB().GetAttributeProfileDrv(user.Tenant, user.UserName) + result, err := usrMigrator.dmOut.DataManager().DataDB().GetAttributeProfileDrv(defaultTenant, user.UserName) if err != nil { t.Fatalf("Error when getting Attributes %v", err.Error()) } @@ -213,6 +219,17 @@ func testUsrITMigrateAndMove(t *testing.T) { t.Error("Error should be not found : ", err) } + expUsrIdx := map[string]utils.StringMap{ + "*string:Account:1002": utils.StringMap{ + "1001": true, + }, + } + if usridx, err := usrMigrator.dmOut.DataManager().GetFilterIndexes(utils.PrefixToIndexCache[utils.AttributeProfilePrefix], utils.ConcatenatedKey("cgrates.org", utils.META_ANY), utils.MetaString, nil); err != nil { + t.Error(err) + } else if !reflect.DeepEqual(expUsrIdx, usridx) { + t.Errorf("Expected %v, recived: %v", utils.ToJSON(expUsrIdx), utils.ToJSON(usridx)) + } + case utils.Move: /* // No Move tests if err := usrMigrator.dmIN.DataManager().DataDB().SetUserDrv(user); err != nil { diff --git a/migrator/user_test.go b/migrator/user_test.go index ee497b93e..292f462a9 100644 --- a/migrator/user_test.go +++ b/migrator/user_test.go @@ -18,11 +18,21 @@ along with this program. If not, see package migrator -/* FixMe: with default tenant different than the user one +import ( + "reflect" + "sort" + "testing" + + "github.com/cgrates/cgrates/config" + "github.com/cgrates/cgrates/engine" + "github.com/cgrates/cgrates/utils" +) + func TestUserProfile2attributeProfile(t *testing.T) { usrCfgIn := config.CgrConfig() usrCfgIn.MigratorCgrCfg().UsersFilters = []string{"Account"} config.SetCgrConfig(usrCfgIn) + usrTenant := "cgrates.com" users := map[int]*v1UserProfile{ 0: &v1UserProfile{ Tenant: defaultTenant, @@ -32,7 +42,7 @@ func TestUserProfile2attributeProfile(t *testing.T) { Weight: 10, }, 1: &v1UserProfile{ - Tenant: defaultTenant, + Tenant: usrTenant, UserName: "1001", Masked: true, Profile: map[string]string{ @@ -53,7 +63,7 @@ func TestUserProfile2attributeProfile(t *testing.T) { Weight: 10, }, 3: &v1UserProfile{ - Tenant: defaultTenant, + Tenant: usrTenant, UserName: "1001", Masked: false, Profile: map[string]string{ @@ -70,16 +80,9 @@ func TestUserProfile2attributeProfile(t *testing.T) { Contexts: []string{utils.META_ANY}, FilterIDs: make([]string, 0), ActivationInterval: nil, - Attributes: []*engine.Attribute{ - { - FieldName: utils.MetaTenant, - Initial: utils.META_ANY, - Substitute: config.NewRSRParsersMustCompile(defaultTenant, true, utils.INFIELD_SEP), - Append: true, - }, - }, - Blocker: false, - Weight: 10, + Attributes: []*engine.Attribute{}, + Blocker: false, + Weight: 10, }, 1: { Tenant: defaultTenant, @@ -91,7 +94,7 @@ func TestUserProfile2attributeProfile(t *testing.T) { { FieldName: utils.MetaTenant, Initial: utils.META_ANY, - Substitute: config.NewRSRParsersMustCompile(defaultTenant, true, utils.INFIELD_SEP), + Substitute: config.NewRSRParsersMustCompile(usrTenant, true, utils.INFIELD_SEP), Append: true, }, { @@ -112,13 +115,7 @@ func TestUserProfile2attributeProfile(t *testing.T) { ActivationInterval: nil, Attributes: []*engine.Attribute{ { - FieldName: utils.MetaTenant, - Initial: utils.META_ANY, - Substitute: config.NewRSRParsersMustCompile(defaultTenant, true, utils.INFIELD_SEP), - Append: true, - }, - { - FieldName: "ReqType", + FieldName: utils.RequestType, Initial: utils.META_ANY, Substitute: config.NewRSRParsersMustCompile("*prepaid", true, utils.INFIELD_SEP), Append: true, @@ -143,11 +140,11 @@ func TestUserProfile2attributeProfile(t *testing.T) { { FieldName: utils.MetaTenant, Initial: utils.META_ANY, - Substitute: config.NewRSRParsersMustCompile(defaultTenant, true, utils.INFIELD_SEP), + Substitute: config.NewRSRParsersMustCompile(usrTenant, true, utils.INFIELD_SEP), Append: true, }, { - FieldName: "ReqType", + FieldName: utils.RequestType, Initial: utils.META_ANY, Substitute: config.NewRSRParsersMustCompile("*prepaid", true, utils.INFIELD_SEP), Append: true, @@ -166,8 +163,7 @@ func TestUserProfile2attributeProfile(t *testing.T) { return rply.Attributes[i].FieldName < rply.Attributes[j].FieldName }) // only for test; map returns random keys if !reflect.DeepEqual(expected[i], rply) { - t.Errorf("For %v expected: %s ,recived: %s ", i, utils.ToJSON(expected[i]), utils.ToJSON(rply)) + t.Errorf("For %v expected: %s ,received: %s ", i, utils.ToJSON(expected[i]), utils.ToJSON(rply)) } } } -*/