mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-16 05:39:54 +05:00
Covered sessions test
This commit is contained in:
committed by
Dan Christian Bogos
parent
793fa1b8d7
commit
cb3b16133a
@@ -82,6 +82,7 @@ var (
|
||||
testBiRPCv1AuthorizeEvent,
|
||||
testBiRPCv1AuthorizeEvent2,
|
||||
testBiRPCv1AuthorizeEventWithDigest,
|
||||
testBiRPCv1InitiateSession,
|
||||
}
|
||||
)
|
||||
|
||||
@@ -2741,3 +2742,96 @@ func testBiRPCv1AuthorizeEventWithDigest(t *testing.T) {
|
||||
t.Errorf("Expected %+v, received %+v", expected, err)
|
||||
}
|
||||
}
|
||||
|
||||
func testBiRPCv1InitiateSession(t *testing.T) {
|
||||
tmp := engine.Cache
|
||||
|
||||
engine.Cache.Clear(nil)
|
||||
clnt := &testMockClients{
|
||||
calls: map[string]func(args interface{}, reply interface{}) error{
|
||||
utils.ChargerSv1ProcessEvent: func(args interface{}, reply interface{}) error {
|
||||
cghrgs := []*engine.ChrgSProcessEventReply{
|
||||
{
|
||||
CGREvent: &utils.CGREvent{
|
||||
Tenant: "cgrates.org",
|
||||
ID: "TestID",
|
||||
Event: map[string]interface{}{
|
||||
utils.Usage: "10s",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
*reply.(*[]*engine.ChrgSProcessEventReply) = cghrgs
|
||||
return nil
|
||||
},
|
||||
utils.ResourceSv1AuthorizeResources: func(args interface{}, reply interface{}) error {
|
||||
if args.(*utils.ArgRSv1ResourceUsage).Tenant == "new_tenant" {
|
||||
return utils.ErrNotImplemented
|
||||
}
|
||||
return nil
|
||||
},
|
||||
utils.ResourceSv1AllocateResources: func(args interface{}, reply interface{}) error {
|
||||
return nil
|
||||
},
|
||||
utils.AttributeSv1ProcessEvent: func(args interface{}, reply interface{}) error {
|
||||
return nil
|
||||
},
|
||||
},
|
||||
}
|
||||
chanInternal := make(chan rpcclient.ClientConnector, 1)
|
||||
chanInternal <- clnt
|
||||
cfg := config.NewDefaultCGRConfig()
|
||||
cfg.CacheCfg().Partitions[utils.CacheRPCResponses].Limit = 1
|
||||
cfg.SessionSCfg().AttrSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes)}
|
||||
cfg.SessionSCfg().ResSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources)}
|
||||
cfg.SessionSCfg().ChargerSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)}
|
||||
data := engine.NewInternalDB(nil, nil, true)
|
||||
connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): chanInternal,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): chanInternal,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): chanInternal,
|
||||
})
|
||||
dm := engine.NewDataManager(data, cfg.CacheCfg(), connMgr)
|
||||
sessions := NewSessionS(cfg, dm, connMgr)
|
||||
|
||||
cgrEvent := &utils.CGREvent{
|
||||
Event: map[string]interface{}{
|
||||
utils.Usage: "10s",
|
||||
utils.OriginID: "TEST_ID",
|
||||
},
|
||||
}
|
||||
args := NewV1InitSessionArgs(true, []string{},
|
||||
false, []string{}, false, []string{}, true, false,
|
||||
nil, true)
|
||||
|
||||
rply := &V1InitSessionReply{}
|
||||
|
||||
expected := "MANDATORY_IE_MISSING: [CGREvent]"
|
||||
if err := sessions.BiRPCv1InitiateSession(nil, args, rply); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expected %+v, received %+v", expected, err)
|
||||
}
|
||||
|
||||
args.CGREvent = cgrEvent
|
||||
if err := sessions.BiRPCv1InitiateSession(nil, args, rply); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
//get from cache error
|
||||
cgrEvent.ID = "SESSIONS_ID_TEST"
|
||||
args = NewV1InitSessionArgs(true, []string{},
|
||||
false, []string{}, false, []string{}, true, false,
|
||||
cgrEvent, true)
|
||||
caches := engine.NewCacheS(cfg, dm, nil)
|
||||
value := &utils.CachedRPCResponse{
|
||||
Result: &V1InitSessionReply{
|
||||
ResourceAllocation: utils.StringPointer("ROUTE_LEASTCOST_1"),
|
||||
},
|
||||
}
|
||||
engine.SetCache(caches)
|
||||
caches.SetWithoutReplicate(utils.CacheRPCResponses, utils.ConcatenatedKey(utils.SessionSv1AuthorizeEvent, args.CGREvent.ID),
|
||||
value, nil, true, utils.NonTransactional)
|
||||
if err := sessions.BiRPCv1InitiateSession(nil, args, rply); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
engine.Cache = tmp
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user