mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Fixed data checking value from objdp + test
This commit is contained in:
committed by
Dan Christian Bogos
parent
fac633cad3
commit
98aa157f76
@@ -62,6 +62,9 @@ func (objDP *ObjectDP) FieldAsInterface(fldPath []string) (data interface{}, err
|
||||
// []string{ BalanceMap *monetary[0] Value }
|
||||
var has bool
|
||||
if data, has = objDP.getCache(strings.Join(fldPath, utils.NestingSep)); has {
|
||||
if data == nil { // field doesn't exist
|
||||
err = utils.ErrNotFound
|
||||
}
|
||||
return
|
||||
}
|
||||
data = obj // in case the fldPath is empty we need to return the whole object
|
||||
|
||||
@@ -2246,14 +2246,42 @@ func TestFilterPassRSRFieldsWithMultplieValues(t *testing.T) {
|
||||
cfg := config.NewDefaultCGRConfig()
|
||||
dm := NewDataManager(NewInternalDB(nil, nil, true), cfg.CacheCfg(), nil)
|
||||
flts := NewFilterS(cfg, nil, dm)
|
||||
if passes, err := flts.Pass("cgrate.org", []string{"*rsr:~*req.23:dan|1001"}, ev); err != nil {
|
||||
if passes, err := flts.Pass("cgrates.org", []string{"*rsr:~*req.23:dan|1001"}, ev); err != nil {
|
||||
t.Error(err)
|
||||
} else if !passes {
|
||||
t.Error("Not passing")
|
||||
}
|
||||
if passes, err := flts.Pass("cgrate.org", []string{"*rsr:~*req.23:dan"}, ev); err != nil {
|
||||
if passes, err := flts.Pass("cgrates.org", []string{"*rsr:~*req.23:dan"}, ev); err != nil {
|
||||
t.Error(err)
|
||||
} else if !passes {
|
||||
t.Error("Not passing")
|
||||
}
|
||||
}
|
||||
|
||||
func TestFilterGreaterThanOnObjectDP(t *testing.T) {
|
||||
cfg := config.NewDefaultCGRConfig()
|
||||
cfg.FilterSCfg().ResourceSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources)}
|
||||
dm := NewDataManager(NewInternalDB(nil, nil, true), cfg.CacheCfg(), nil)
|
||||
mockConn := &ccMock{
|
||||
calls: map[string]func(args interface{}, reply interface{}) error{
|
||||
utils.ResourceSv1GetResourceWithConfig: func(args interface{}, reply interface{}) error {
|
||||
*(reply.(*ResourceWithConfig)) = ResourceWithConfig{
|
||||
Resource: &Resource{},
|
||||
}
|
||||
return nil
|
||||
},
|
||||
},
|
||||
}
|
||||
mockChan := make(chan rpcclient.ClientConnector, 1)
|
||||
mockChan <- mockConn
|
||||
connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): mockChan,
|
||||
})
|
||||
flts := NewFilterS(cfg, connMgr, dm)
|
||||
ev := utils.MapStorage{}
|
||||
|
||||
if _, err := flts.Pass("cgrates.org", []string{"*gte:~*resources.RES1.Available2:2",
|
||||
"*lt:~*resources.RES1.Available2:10"}, ev); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user