Added tests for thresholds and resources update

This commit is contained in:
Trial97
2021-05-24 17:07:23 +03:00
committed by Dan Christian Bogos
parent 6d6cf380e7
commit 7ae7db09d2
2 changed files with 230 additions and 0 deletions

View File

@@ -1068,3 +1068,111 @@ func TestThresholdsProcessEvent2(t *testing.T) {
}
}
}
func TestThresholdsUpdateThreshold(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
dm := NewDataManager(NewInternalDB(nil, nil, true), cfg.CacheCfg(), nil)
thp := &ThresholdProfile{
Tenant: "cgrates.org",
ID: "THUP1",
}
th := &Threshold{
Tenant: thp.Tenant,
ID: thp.ID,
Hits: 5,
Snooze: time.Now(),
}
expTh := &Threshold{
Tenant: thp.Tenant,
ID: thp.ID,
}
if err := dm.SetThresholdProfile(thp, true); err != nil {
t.Fatal(err)
}
if th, err := dm.GetThreshold(thp.Tenant, thp.ID, false, false, utils.NonTransactional); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(expTh, th) {
t.Errorf("Expected: %s, received: %s", utils.ToJSON(expTh), utils.ToJSON(th))
}
if err := dm.RemoveThreshold(th.Tenant, th.ID, utils.NonTransactional); err != nil {
t.Fatal(err)
}
if err := dm.SetThresholdProfile(thp, true); err != nil {
t.Fatal(err)
}
if th, err := dm.GetThreshold(thp.Tenant, thp.ID, false, false, utils.NonTransactional); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(expTh, th) {
t.Errorf("Expected: %s, received: %s", utils.ToJSON(expTh), utils.ToJSON(th))
}
if err := dm.SetThreshold(th); err != nil {
t.Fatal(err)
}
thp = &ThresholdProfile{
Tenant: "cgrates.org",
ID: "THUP1",
MaxHits: 1,
}
if err := dm.SetThresholdProfile(thp, true); err != nil {
t.Fatal(err)
}
if th, err := dm.GetThreshold(thp.Tenant, thp.ID, false, false, utils.NonTransactional); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(expTh, th) {
t.Errorf("Expected: %s, received: %s", utils.ToJSON(expTh), utils.ToJSON(th))
}
if err := dm.SetThreshold(th); err != nil {
t.Fatal(err)
}
thp = &ThresholdProfile{
Tenant: "cgrates.org",
ID: "THUP1",
MaxHits: 1,
MinHits: 1,
}
if err := dm.SetThresholdProfile(thp, true); err != nil {
t.Fatal(err)
}
if th, err := dm.GetThreshold(thp.Tenant, thp.ID, false, false, utils.NonTransactional); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(expTh, th) {
t.Errorf("Expected: %s, received: %s", utils.ToJSON(expTh), utils.ToJSON(th))
}
if err := dm.SetThreshold(th); err != nil {
t.Fatal(err)
}
thp = &ThresholdProfile{
Tenant: "cgrates.org",
ID: "THUP1",
MaxHits: 1,
MinHits: 1,
MinSleep: 1,
}
if err := dm.SetThresholdProfile(thp, true); err != nil {
t.Fatal(err)
}
if th, err := dm.GetThreshold(thp.Tenant, thp.ID, false, false, utils.NonTransactional); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(expTh, th) {
t.Errorf("Expected: %s, received: %s", utils.ToJSON(expTh), utils.ToJSON(th))
}
if err := dm.RemoveThresholdProfile(thp.Tenant, thp.ID, utils.NonTransactional, true); err != nil {
t.Fatal(err)
}
if _, err := dm.GetThreshold(thp.Tenant, thp.ID, false, false, utils.NonTransactional); err != utils.ErrNotFound {
t.Fatal(err)
}
}

View File

@@ -3644,3 +3644,125 @@ func TestResourcesProcessThresholdsThdConnMetaNone(t *testing.T) {
t.Errorf("\nexpected nil, received: %+v", err)
}
}
func TestResourcesUpdateResource(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
dm := NewDataManager(NewInternalDB(nil, nil, true), cfg.CacheCfg(), nil)
Cache.Clear(nil)
res := &ResourceProfile{
Tenant: "cgrates.org",
ID: "RES1",
UsageTTL: 0,
Limit: 10,
Stored: true,
}
r := &Resource{
Tenant: res.Tenant,
ID: res.ID,
Usages: map[string]*ResourceUsage{
"jkbdfgs": {
Tenant: res.Tenant,
ID: "jkbdfgs",
ExpiryTime: time.Now(),
Units: 5,
},
},
TTLIdx: []string{"jkbdfgs"},
}
expR := &Resource{
Tenant: res.Tenant,
ID: res.ID,
Usages: make(map[string]*ResourceUsage),
}
if err := dm.SetResourceProfile(res, true); err != nil {
t.Fatal(err)
}
if r, err := dm.GetResource(res.Tenant, res.ID, false, false, utils.NonTransactional); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(r, expR) {
t.Errorf("Expected: %s, received: %s", utils.ToJSON(expR), utils.ToJSON(r))
}
if err := dm.RemoveResource(r.Tenant, r.ID, utils.NonTransactional); err != nil {
t.Fatal(err)
}
if err := dm.SetResourceProfile(res, true); err != nil {
t.Fatal(err)
}
if r, err := dm.GetResource(res.Tenant, res.ID, false, false, utils.NonTransactional); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(r, expR) {
t.Errorf("Expected: %s, received: %s", utils.ToJSON(expR), utils.ToJSON(r))
}
if err := dm.SetResource(r); err != nil {
t.Fatal(err)
}
res = &ResourceProfile{
Tenant: "cgrates.org",
ID: "RES1",
UsageTTL: 0,
Limit: 5,
Stored: true,
}
if err := dm.SetResourceProfile(res, true); err != nil {
t.Fatal(err)
}
if r, err := dm.GetResource(res.Tenant, res.ID, false, false, utils.NonTransactional); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(r, expR) {
t.Errorf("Expected: %s, received: %s", utils.ToJSON(expR), utils.ToJSON(r))
}
if err := dm.SetResource(r); err != nil {
t.Fatal(err)
}
res = &ResourceProfile{
Tenant: "cgrates.org",
ID: "RES1",
UsageTTL: 10,
Limit: 5,
Stored: true,
}
if err := dm.SetResourceProfile(res, true); err != nil {
t.Fatal(err)
}
if r, err := dm.GetResource(res.Tenant, res.ID, false, false, utils.NonTransactional); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(r, expR) {
t.Errorf("Expected: %s, received: %s", utils.ToJSON(expR), utils.ToJSON(r))
}
if err := dm.SetResource(r); err != nil {
t.Fatal(err)
}
res = &ResourceProfile{
Tenant: "cgrates.org",
ID: "RES1",
UsageTTL: 10,
Limit: 5,
Stored: false,
}
if err := dm.SetResourceProfile(res, true); err != nil {
t.Fatal(err)
}
if r, err := dm.GetResource(res.Tenant, res.ID, false, false, utils.NonTransactional); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(r, expR) {
t.Errorf("Expected: %s, received: %s", utils.ToJSON(expR), utils.ToJSON(r))
}
if err := dm.RemoveResourceProfile(res.Tenant, res.ID, utils.NonTransactional, true); err != nil {
t.Fatal(err)
}
if _, err := dm.GetResource(res.Tenant, res.ID, false, false, utils.NonTransactional); err != utils.ErrNotFound {
t.Fatal(err)
}
}