Refactored some tests and added TestCGREventClone

This commit is contained in:
edwardro22
2018-01-15 18:42:59 +02:00
committed by Dan Christian Bogos
parent d5216718ff
commit 47be4d94cd
4 changed files with 79 additions and 53 deletions

View File

@@ -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)

View File

@@ -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 {

View File

@@ -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{

View File

@@ -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)
}
}