From be41b33e509bdbceb594e2f435159bc2a93804fe Mon Sep 17 00:00:00 2001 From: TeoV Date: Fri, 11 Jan 2019 04:56:14 -0500 Subject: [PATCH] Add test in engine/onstor_it_test.go for dispatcher --- apier/v1/dispatcher_it_test.go | 1 - engine/onstor_it_test.go | 76 ++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 1 deletion(-) diff --git a/apier/v1/dispatcher_it_test.go b/apier/v1/dispatcher_it_test.go index 3ecd16e6f..7303689e2 100644 --- a/apier/v1/dispatcher_it_test.go +++ b/apier/v1/dispatcher_it_test.go @@ -173,7 +173,6 @@ func testDispatcherSUpdateDispatcherProfile(t *testing.T) { } else if !reflect.DeepEqual(dispatcherProfile, dsp) { t.Errorf("Expecting : %+v, received: %+v", dispatcherProfile, dsp) } - } func testDispatcherSRemDispatcherProfile(t *testing.T) { diff --git a/engine/onstor_it_test.go b/engine/onstor_it_test.go index 28d91baa2..5c1f3dd18 100644 --- a/engine/onstor_it_test.go +++ b/engine/onstor_it_test.go @@ -80,6 +80,7 @@ var sTestsOnStorIT = []func(t *testing.T){ testOnStorITIsDBEmpty, testOnStorITTestAttributeSubstituteIface, testOnStorITChargerProfile, + testOnStorITDispatcherProfile, //testOnStorITCacheActionTriggers, //testOnStorITCacheAlias, @@ -2617,3 +2618,78 @@ func testOnStorITChargerProfile(t *testing.T) { t.Error(rcvErr) } } + +func testOnStorITDispatcherProfile(t *testing.T) { + dpp := &DispatcherProfile{ + Tenant: "cgrates.org", + ID: "Dsp1", + FilterIDs: []string{"*string:Account:1001"}, + ActivationInterval: &utils.ActivationInterval{ + ActivationTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC), + }, + Strategy: utils.MetaFirst, + Hosts: []string{"192.168.56.203"}, + Weight: 20, + } + if _, rcvErr := onStor.GetDispatcherProfile("cgrates.org", "Dsp1", + true, false, utils.NonTransactional); rcvErr != nil && rcvErr != utils.ErrNotFound { + t.Error(rcvErr) + } + if err := onStor.SetDispatcherProfile(dpp, false); err != nil { + t.Error(err) + } + //get from cache + if rcv, err := onStor.GetDispatcherProfile("cgrates.org", "Dsp1", + true, false, utils.NonTransactional); err != nil { + t.Error(err) + } else if !(reflect.DeepEqual(dpp, rcv)) { + t.Errorf("Expecting: %v, received: %v", dpp, rcv) + } + //get from database + if rcv, err := onStor.GetDispatcherProfile("cgrates.org", "Dsp1", + false, false, utils.NonTransactional); err != nil { + t.Error(err) + } else if !(reflect.DeepEqual(dpp, rcv)) { + t.Errorf("Expecting: %v, received: %v", dpp, rcv) + } + expectedT := []string{"dpp_cgrates.org:Dsp1"} + if itm, err := onStor.DataDB().GetKeysForPrefix(utils.DispatcherProfilePrefix); err != nil { + t.Error(err) + } else if !reflect.DeepEqual(expectedT, itm) { + t.Errorf("Expected : %+v, but received %+v", expectedT, itm) + } + //update + dpp.FilterIDs = []string{"*string:Accout:1001", "*prefix:Destination:10"} + if err := onStor.SetDispatcherProfile(dpp, false); err != nil { + t.Error(err) + } + time.Sleep(sleepDelay) + //get from cache + if rcv, err := onStor.GetDispatcherProfile("cgrates.org", "Dsp1", + true, false, utils.NonTransactional); err != nil { + t.Error(err) + } else if !(reflect.DeepEqual(dpp, rcv)) { + t.Errorf("Expecting: %v, received: %v", dpp, rcv) + } + //get from database + if rcv, err := onStor.GetDispatcherProfile("cgrates.org", "Dsp1", + false, false, utils.NonTransactional); err != nil { + t.Error(err) + } else if !(reflect.DeepEqual(dpp, rcv)) { + t.Errorf("Expecting: %v, received: %v", dpp, rcv) + } + if err := onStor.RemoveDispatcherProfile(dpp.Tenant, dpp.ID, + utils.NonTransactional, false); err != nil { + t.Error(err) + } + //check cache if removed + if _, rcvErr := onStor.GetDispatcherProfile("cgrates.org", "Dsp1", + true, false, utils.NonTransactional); rcvErr != nil && rcvErr != utils.ErrNotFound { + t.Error(rcvErr) + } + //check database if removed + if _, rcvErr := onStor.GetDispatcherProfile("cgrates.org", "Dsp1", + false, false, utils.NonTransactional); rcvErr != nil && rcvErr != utils.ErrNotFound { + t.Error(rcvErr) + } +}