diff --git a/engine/cdrs_test.go b/engine/cdrs_test.go
index c10f268c1..9894ec217 100644
--- a/engine/cdrs_test.go
+++ b/engine/cdrs_test.go
@@ -18,11 +18,12 @@ along with this program. If not, see
package engine
import (
+ "net/http"
+ "net/url"
"reflect"
"testing"
"time"
- "github.com/cgrates/birpc"
"github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/guardian"
@@ -283,35 +284,15 @@ func TestCDRsThdSProcessEventErr(t *testing.T) {
}
-func TestCDRsChrgrSProcessEvent(t *testing.T) {
- Cache.Clear(nil)
+func TestCDRsStatSProcessEventErrMsnConnIDs(t *testing.T) {
var sent StorDB
cfg := config.NewDefaultCGRConfig()
- cfg.CdrsCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal,
- utils.MetaChargers)}
storDBChan := make(chan StorDB, 1)
storDBChan <- sent
- data := NewInternalDB(nil, nil, true)
- connMng := NewConnManager(cfg)
- dm := NewDataManager(data, cfg.CacheCfg(), nil)
- fltrs := NewFilterS(cfg, nil, dm)
+ dm := &DataManager{}
+ fltrs := &FilterS{}
+ connMng := &ConnManager{}
newCDRSrv := NewCDRServer(cfg, storDBChan, dm, fltrs, connMng)
- ccM := &ccMock{
- calls: map[string]func(ctx *context.Context, args interface{}, reply interface{}) error{
- utils.ChargerSv1ProcessEvent: func(ctx *context.Context, args, reply interface{}) error {
- *reply.(*[]*ChrgSProcessEventReply) = []*ChrgSProcessEventReply{
- {
- ChargerSProfile: "string",
- },
- }
- return nil
- },
- },
- }
- rpcInternal := make(chan birpc.ClientConnector, 1)
- rpcInternal <- ccM
- newCDRSrv.connMgr.AddInternalConn(utils.ConcatenatedKey(utils.MetaInternal,
- utils.MetaChargers), utils.ChargerSv1, rpcInternal)
cgrEv := &utils.CGREvent{
Tenant: "cgrates.org",
@@ -329,22 +310,142 @@ func TestCDRsChrgrSProcessEvent(t *testing.T) {
utils.Subsys: utils.MetaChargers,
},
}
- result, err := newCDRSrv.chrgrSProcessEvent(context.Background(), cgrEv)
+ err := newCDRSrv.statSProcessEvent(context.Background(), cgrEv)
+ if err == nil || err.Error() != "MANDATORY_IE_MISSING: [connIDs]" {
+ t.Errorf("\nExpected \n, received <%+v>", err)
+ }
+
+}
+
+func TestCDRsEESProcessEventErrMsnConnIDs(t *testing.T) {
+ var sent StorDB
+ cfg := config.NewDefaultCGRConfig()
+ storDBChan := make(chan StorDB, 1)
+ storDBChan <- sent
+ dm := &DataManager{}
+ fltrs := &FilterS{}
+ connMng := &ConnManager{}
+ newCDRSrv := NewCDRServer(cfg, storDBChan, dm, fltrs, connMng)
+
+ cgrEv := &utils.CGREventWithEeIDs{
+ CGREvent: &utils.CGREvent{
+ Tenant: "cgrates.org",
+ ID: "testID",
+ Event: map[string]interface{}{
+ "Resources": "ResourceProfile1",
+ utils.AnswerTime: time.Date(2014, 7, 14, 14, 30, 0, 0, time.UTC),
+ "UsageInterval": "1s",
+ "PddInterval": "1s",
+ utils.Weight: "20.0",
+ utils.Usage: 135 * time.Second,
+ utils.Cost: 123.0,
+ },
+ APIOpts: map[string]interface{}{
+ utils.Subsys: utils.MetaChargers,
+ },
+ },
+ }
+ err := newCDRSrv.eeSProcessEvent(context.Background(), cgrEv)
+ if err == nil || err.Error() != "MANDATORY_IE_MISSING: [connIDs]" {
+ t.Errorf("\nExpected \n, received <%+v>", err)
+ }
+
+}
+
+func TestCDRsNewMapEventFromReqForm(t *testing.T) {
+ httpReq := &http.Request{
+ Form: url.Values{
+ "value1": {"value2"},
+ },
+ }
+ result, err := newMapEventFromReqForm(httpReq)
if err != nil {
- t.Errorf("\nExpected <%+v> \n, received <%+v>", nil, err)
+ t.Errorf("\nExpected \n, received <%+v>", err)
}
- var expecte *utils.CGREvent
- expected := []*utils.CGREvent{
- expecte,
+ expected := MapEvent{
+ "value1": "value2",
+ "Source": "",
}
- if !reflect.DeepEqual(result, expected) {
+ if !reflect.DeepEqual(expected, result) {
t.Errorf("\nExpected <%+v> \n, received <%+v>", expected, result)
}
- if err := dm.DataDB().Flush(""); err != nil {
- t.Error(err)
- }
}
+func TestCDRsNewMapEventFromReqFormErr(t *testing.T) {
+ httpReq := &http.Request{
+ URL: &url.URL{
+ RawQuery: ";",
+ },
+ }
+ _, err := newMapEventFromReqForm(httpReq)
+ if err == nil || err.Error() != "invalid semicolon separator in query" {
+ t.Errorf("\nExpected \n, received <%+v>", err)
+ }
+
+}
+
+// func TestCDRsChrgrSProcessEvent(t *testing.T) {
+// Cache.Clear(nil)
+// var sent StorDB
+// cfg := config.NewDefaultCGRConfig()
+// cfg.CdrsCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal,
+// utils.MetaChargers)}
+// storDBChan := make(chan StorDB, 1)
+// storDBChan <- sent
+// data := NewInternalDB(nil, nil, true)
+// connMng := NewConnManager(cfg)
+// dm := NewDataManager(data, cfg.CacheCfg(), nil)
+// fltrs := NewFilterS(cfg, nil, dm)
+// newCDRSrv := NewCDRServer(cfg, storDBChan, dm, fltrs, connMng)
+// ccM := &ccMock{
+// calls: map[string]func(ctx *context.Context, args interface{}, reply interface{}) error{
+// utils.ChargerSv1ProcessEvent: func(ctx *context.Context, args, reply interface{}) error {
+// *reply.(*[]*ChrgSProcessEventReply) = []*ChrgSProcessEventReply{
+// {
+// ChargerSProfile: "string",
+// },
+// }
+// return nil
+// },
+// },
+// }
+// rpcInternal := make(chan birpc.ClientConnector, 1)
+// rpcInternal <- ccM
+// newCDRSrv.connMgr.AddInternalConn(utils.ConcatenatedKey(utils.MetaInternal,
+// utils.MetaChargers), utils.ChargerSv1, rpcInternal)
+
+// cgrEv := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testID",
+// Event: map[string]interface{}{
+// "Resources": "ResourceProfile1",
+// utils.AnswerTime: time.Date(2014, 7, 14, 14, 30, 0, 0, time.UTC),
+// "UsageInterval": "1s",
+// "PddInterval": "1s",
+// utils.Weight: "20.0",
+// utils.Usage: 135 * time.Second,
+// utils.Cost: 123.0,
+// },
+// APIOpts: map[string]interface{}{
+// utils.Subsys: utils.MetaChargers,
+// },
+// }
+// result, err := newCDRSrv.chrgrSProcessEvent(context.Background(), cgrEv)
+// if err != nil {
+// t.Errorf("\nExpected <%+v> \n, received <%+v>", nil, err)
+// }
+// var expecte *utils.CGREvent
+// expected := []*utils.CGREvent{
+// expecte,
+// }
+// if !reflect.DeepEqual(result, expected) {
+// t.Errorf("\nExpected <%+v> \n, received <%+v>", expected, result)
+// }
+// if err := dm.DataDB().Flush(""); err != nil {
+// t.Error(err)
+// }
+// }
+
// func TestCDRsChrgrSProcessEventEmptyChrgrs(t *testing.T) {
// Cache.Clear(nil)
// var sent StorDB