mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Refactored some tests and added TestCGREventClone
This commit is contained in:
committed by
Dan Christian Bogos
parent
d5216718ff
commit
47be4d94cd
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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{
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user