From 47be4d94cd509894166d8a982938b124271cc063 Mon Sep 17 00:00:00 2001 From: edwardro22 Date: Mon, 15 Jan 2018 18:42:59 +0200 Subject: [PATCH] Refactored some tests and added TestCGREventClone --- apier/v1/filterindexecache_it_test.go | 10 +-- cmd/cgr-loader/cgr-loader.go | 2 - engine/suppliers_test.go | 16 ++-- utils/cgrevent_test.go | 104 ++++++++++++++++---------- 4 files changed, 79 insertions(+), 53 deletions(-) diff --git a/apier/v1/filterindexecache_it_test.go b/apier/v1/filterindexecache_it_test.go index dca6e1f34..b85f7fcfe 100644 --- a/apier/v1/filterindexecache_it_test.go +++ b/apier/v1/filterindexecache_it_test.go @@ -1289,10 +1289,10 @@ func testV1FIdxCaGetResourceProfileWithNotFound(t *testing.T) { }, Units: 6, } - if err := tFIdxCaRpc.Call(utils.ResourceSv1AllocateResource, argsRU, &reply); err == nil || err.Error() != utils.ErrResourceUnavailable.Error() { + if err := tFIdxCaRpc.Call(utils.ResourceSv1AllocateResources, argsRU, &reply); err == nil || err.Error() != utils.ErrResourceUnavailable.Error() { t.Error(err) } - if err := tFIdxCaRpc.Call(utils.ResourceSv1AuthorizeResources, argsRU, &reply); err.Error() != utils.ErrResourceUnavailable.Error() { + if err := tFIdxCaRpc.Call(utils.ResourceSv1AuthorizeResources, argsRU, &reply); err.Error() != utils.ErrResourceUnauthorized.Error() { t.Error(err) } if indexes, err = onStor.GetFilterReverseIndexes(engine.GetDBIndexKey(utils.StatQueueProfilePrefix, "cgrates.org", true), @@ -1362,7 +1362,7 @@ func testV1FIdxCaSetResourceProfile(t *testing.T) { }, Units: 6, } - if err := tFIdxCaRpc.Call(utils.ResourceSv1AllocateResource, argsRU, &result); err != nil { + if err := tFIdxCaRpc.Call(utils.ResourceSv1AllocateResources, argsRU, &result); err != nil { t.Error(err) } else if result != "Approved" { t.Error("Unexpected reply returned", result) @@ -1397,7 +1397,7 @@ func testV1FIdxCaGetResourceProfileFromTP(t *testing.T) { }, Units: 6, } - if err := tFIdxCaRpc.Call(utils.ResourceSv1AllocateResource, argsRU, &reply); err != nil { + if err := tFIdxCaRpc.Call(utils.ResourceSv1AllocateResources, argsRU, &reply); err != nil { t.Error(err) } else if reply != "Approved" { t.Error("Unexpected reply returned", reply) @@ -1599,7 +1599,7 @@ func testV1FIdxCaRemoveResourceProfile(t *testing.T) { }, Units: 6, } - if err := tFIdxCaRpc.Call(utils.ResourceSv1AllocateResource, argsReU, &resp); err != nil { + if err := tFIdxCaRpc.Call(utils.ResourceSv1AllocateResources, argsReU, &resp); err != nil { t.Error(err) } else if resp != "MessageAllocation" { t.Error("Unexpected reply returned", resp) diff --git a/cmd/cgr-loader/cgr-loader.go b/cmd/cgr-loader/cgr-loader.go index 45bad3184..c7a46198f 100755 --- a/cmd/cgr-loader/cgr-loader.go +++ b/cmd/cgr-loader/cgr-loader.go @@ -88,14 +88,12 @@ func main() { storDb, errStorDb = engine.ConfigureLoadStorage(*stor_db_type, *stor_db_host, *stor_db_port, *stor_db_name, *stor_db_user, *stor_db_pass, *dbdata_encoding, config.CgrConfig().StorDBMaxOpenConns, config.CgrConfig().StorDBMaxIdleConns, config.CgrConfig().StorDBConnMaxLifetime, config.CgrConfig().StorDBCDRSIndexes) } - // Stop on db errors for _, err = range []error{errDataDB, errDataDB, errStorDb} { if err != nil { log.Fatalf("Could not open database connection: %v", err) } } - // Defer databases opened to be closed when we are done for _, db := range []engine.Storage{dm.DataDB(), storDb} { if db != nil { diff --git a/engine/suppliers_test.go b/engine/suppliers_test.go index 404994e75..2b43bc931 100644 --- a/engine/suppliers_test.go +++ b/engine/suppliers_test.go @@ -189,17 +189,17 @@ func TestSuppliersPopulateSupplierService(t *testing.T) { sorter: ssd, } ssd[utils.MetaLeastCost] = NewLeastCostSorter(&splserv) - ev := make(map[string]interface{}) - ev["supplierprofile1"] = "Supplier" - ev["supplierprofile2"] = "Supplier" - ev[utils.AnswerTime] = time.Date(2014, 7, 14, 14, 30, 0, 0, time.UTC).Local() - ev["UsageInterval"] = "1s" - ev["PddInterval"] = "1s" - ev["Weight"] = "20.0" sev = &utils.CGREvent{ Tenant: "cgrates.org", ID: "utils.CGREvent1", - Event: ev, + Event: map[string]interface{}{ + "supplierprofile1": "Supplier", + "supplierprofile2": "Supplier", + utils.AnswerTime: time.Date(2014, 7, 14, 14, 30, 0, 0, time.UTC).Local(), + "UsageInterval": "1s", + "PddInterval": "1s", + "Weight": "20.0", + }, } sprsmatch = SupplierProfiles{ &SupplierProfile{ diff --git a/utils/cgrevent_test.go b/utils/cgrevent_test.go index 0358ce051..51efb5551 100644 --- a/utils/cgrevent_test.go +++ b/utils/cgrevent_test.go @@ -25,24 +25,24 @@ import ( ) func TestLibSuppliersUsage(t *testing.T) { - event := make(map[string]interface{}) - event[Usage] = time.Duration(20 * time.Second) se := &CGREvent{ Tenant: "cgrates.org", - ID: "supplierevent1", - Event: event, + ID: "supplierEvent1", + Event: map[string]interface{}{ + Usage: time.Duration(20 * time.Second), + }, } seErr := &CGREvent{ Tenant: "cgrates.org", - ID: "supplierevent1", + ID: "supplierEvent1", Event: make(map[string]interface{}), } answ, err := se.FieldAsDuration(Usage) if err != nil { t.Error(err) } - if answ != event[Usage] { - t.Errorf("Expecting: %+v, received: %+v", event[Usage], answ) + if answ != se.Event[Usage] { + t.Errorf("Expecting: %+v, received: %+v", se.Event[Usage], answ) } answ, err = seErr.FieldAsDuration(Usage) if err != ErrNotFound { @@ -51,24 +51,24 @@ func TestLibSuppliersUsage(t *testing.T) { } func TestCGREventFieldAsTime(t *testing.T) { - event := make(map[string]interface{}) - event[AnswerTime] = time.Now().Local() se := &CGREvent{ Tenant: "cgrates.org", - ID: "supplierevent1", - Event: event, + ID: "supplierEvent1", + Event: map[string]interface{}{ + AnswerTime: time.Now().Local(), + }, } seErr := &CGREvent{ Tenant: "cgrates.org", - ID: "supplierevent1", + ID: "supplierEvent1", Event: make(map[string]interface{}), } answ, err := se.FieldAsTime(AnswerTime, "UTC") if err != nil { t.Error(err) } - if answ != event[AnswerTime] { - t.Errorf("Expecting: %+v, received: %+v", event[AnswerTime], answ) + if answ != se.Event[AnswerTime] { + t.Errorf("Expecting: %+v, received: %+v", se.Event[AnswerTime], answ) } answ, err = seErr.FieldAsTime(AnswerTime, "CET") if err != ErrNotFound { @@ -77,76 +77,76 @@ func TestCGREventFieldAsTime(t *testing.T) { } func TestCGREventFieldAsString(t *testing.T) { - event := make(map[string]interface{}) - event["supplierprofile1"] = "Supplier" - event["UsageInterval"] = time.Duration(1 * time.Second) - event["PddInterval"] = "1s" - event["Weight"] = 20.0 se := &CGREvent{ Tenant: "cgrates.org", - ID: "supplierevent1", - Event: event, + ID: "supplierEvent1", + Event: map[string]interface{}{ + "supplierprofile1": "Supplier", + "UsageInterval": time.Duration(1 * time.Second), + "PddInterval": "1s", + "Weight": 20.0, + }, } answ, err := se.FieldAsString("UsageInterval") if err != nil { t.Error(err) } if answ != "1s" { - t.Errorf("Expecting: %+v, received: %+v", event["UsageInterval"], answ) + t.Errorf("Expecting: %+v, received: %+v", se.Event["UsageInterval"], answ) } answ, err = se.FieldAsString("PddInterval") if err != nil { t.Error(err) } - if answ != event["PddInterval"] { - t.Errorf("Expecting: %+v, received: %+v", event["PddInterval"], answ) + if answ != se.Event["PddInterval"] { + t.Errorf("Expecting: %+v, received: %+v", se.Event["PddInterval"], answ) } answ, err = se.FieldAsString("supplierprofile1") if err != nil { t.Error(err) } - if answ != event["supplierprofile1"] { - t.Errorf("Expecting: %+v, received: %+v", event["supplierprofile1"], answ) + if answ != se.Event["supplierprofile1"] { + t.Errorf("Expecting: %+v, received: %+v", se.Event["supplierprofile1"], answ) } answ, err = se.FieldAsString("Weight") if err != nil { t.Error(err) } if answ != "20" { - t.Errorf("Expecting: %+v, received: %+v", event["Weight"], answ) + t.Errorf("Expecting: %+v, received: %+v", se.Event["Weight"], answ) } } func TestCGREventFieldAsFloat64(t *testing.T) { err1 := fmt.Errorf("cannot cast %s to string", AnswerTime) - event := make(map[string]interface{}) - event[AnswerTime] = time.Now().Local() - event["supplierprofile1"] = "Supplier" - event["UsageInterval"] = "54.2" - event["PddInterval"] = "1s" - event["Weight"] = 20.0 se := &CGREvent{ Tenant: "cgrates.org", - ID: "supplierevent1", - Event: event, + ID: "supplierEvent1", + Event: map[string]interface{}{ + AnswerTime: time.Now().Local(), + "supplierprofile1": "Supplier", + "UsageInterval": "54.2", + "PddInterval": "1s", + "Weight": 20.0, + }, } answ, err := se.FieldAsFloat64("UsageInterval") if err != nil { t.Error(err) } if answ != float64(54.2) { - t.Errorf("Expecting: %+v, received: %+v", event["UsageInterval"], answ) + t.Errorf("Expecting: %+v, received: %+v", se.Event["UsageInterval"], answ) } answ, err = se.FieldAsFloat64("Weight") if err != nil { t.Error(err) } if answ != float64(20.0) { - t.Errorf("Expecting: %+v, received: %+v", event["Weight"], answ) + t.Errorf("Expecting: %+v, received: %+v", se.Event["Weight"], answ) } answ, err = se.FieldAsFloat64("PddInterval") //TODO: Make an error to be expected : - // cgrevent_test.go:149: strconv.ParseFloat: parsing "1s": invalid syntax + // cgrEvent_test.go:149: strconv.ParseFloat: parsing "1s": invalid syntax // if err != nil { // t.Error(err) // } @@ -162,3 +162,31 @@ func TestCGREventFieldAsFloat64(t *testing.T) { t.Errorf("Expecting: %+v, received: %+v", 0, answ) } } +func TestCGREventClone(t *testing.T) { + contest := "cntxt" + now := time.Now() + ev := &CGREvent{ + Tenant: "cgrates.org", + ID: "supplierEvent1", + Context: &contest, + Time: &now, + Event: map[string]interface{}{ + AnswerTime: time.Now().Local(), + "supplierprofile1": "Supplier", + "UsageInterval": "54.2", + "PddInterval": "1s", + "Weight": 20.0, + }, + } + cloned := ev.Clone() + if !reflect.DeepEqual(ev, cloned) { + t.Errorf("Expecting: %+v, received: %+v", ev, cloned) + } + if cloned.Context == ev.Context { + t.Errorf("Expecting: different pointer but received: %+v", cloned.Context) + } + if cloned.Time == ev.Time { + t.Errorf("Expecting: different pointer but received: %+v", cloned.Time) + } + +}