mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-17 14:19:54 +05:00
Config and utils unit testing
This commit is contained in:
committed by
Dan Christian Bogos
parent
8e2fa41705
commit
37dfdf6e58
@@ -184,6 +184,85 @@ func TestSessionSCfgloadFromJsonCfgCase1(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestSessionSCfgloadFromJsonCfgCase13(t *testing.T) {
|
||||
cfgJSON := &SessionSJsonCfg{
|
||||
Opts: &SessionsOptsJson{
|
||||
TTL: []*utils.DynamicStringOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: "1c",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
errExpect := `time: unknown unit "c" in duration "1c"`
|
||||
jsonCfg := NewDefaultCGRConfig()
|
||||
if err = jsonCfg.sessionSCfg.loadFromJSONCfg(cfgJSON); err == nil || err.Error() != errExpect {
|
||||
t.Errorf("Expected %v \n but received \n %v", errExpect, err.Error())
|
||||
}
|
||||
cfgJSON.Opts.TTL = nil
|
||||
|
||||
/////
|
||||
cfgJSON.Opts.DebitInterval = []*utils.DynamicStringOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: "1c",
|
||||
},
|
||||
}
|
||||
if err = jsonCfg.sessionSCfg.loadFromJSONCfg(cfgJSON); err == nil || err.Error() != errExpect {
|
||||
t.Errorf("Expected %v \n but received \n %v", errExpect, err.Error())
|
||||
}
|
||||
cfgJSON.Opts.DebitInterval = nil
|
||||
|
||||
/////
|
||||
cfgJSON.Opts.LastUsage = []*utils.DynamicStringOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: "1c",
|
||||
},
|
||||
}
|
||||
if err = jsonCfg.sessionSCfg.loadFromJSONCfg(cfgJSON); err == nil || err.Error() != errExpect {
|
||||
t.Errorf("Expected %v \n but received \n %v", errExpect, err.Error())
|
||||
}
|
||||
cfgJSON.Opts.LastUsage = nil
|
||||
|
||||
/////
|
||||
cfgJSON.Opts.LastUsed = []*utils.DynamicStringOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: "1c",
|
||||
},
|
||||
}
|
||||
if err = jsonCfg.sessionSCfg.loadFromJSONCfg(cfgJSON); err == nil || err.Error() != errExpect {
|
||||
t.Errorf("Expected %v \n but received \n %v", errExpect, err.Error())
|
||||
}
|
||||
cfgJSON.Opts.LastUsed = nil
|
||||
|
||||
/////
|
||||
cfgJSON.Opts.Usage = []*utils.DynamicStringOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: "1c",
|
||||
},
|
||||
}
|
||||
if err = jsonCfg.sessionSCfg.loadFromJSONCfg(cfgJSON); err == nil || err.Error() != errExpect {
|
||||
t.Errorf("Expected %v \n but received \n %v", errExpect, err.Error())
|
||||
}
|
||||
cfgJSON.Opts.Usage = nil
|
||||
|
||||
/////
|
||||
cfgJSON.Opts.MaxDelay = []*utils.DynamicStringOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: "1c",
|
||||
},
|
||||
}
|
||||
if err = jsonCfg.sessionSCfg.loadFromJSONCfg(cfgJSON); err == nil || err.Error() != errExpect {
|
||||
t.Errorf("Expected %v \n but received \n %v", errExpect, err.Error())
|
||||
}
|
||||
cfgJSON.Opts.MaxDelay = nil
|
||||
}
|
||||
|
||||
func TestSessionSCfgloadFromJsonCfgCase2(t *testing.T) {
|
||||
cfgJSON := &SessionSJsonCfg{
|
||||
Replication_conns: &[]string{utils.MetaInternal},
|
||||
@@ -1703,18 +1782,42 @@ func TestDiffSessionsOptsJsonCfg(t *testing.T) {
|
||||
var d *SessionsOptsJson
|
||||
|
||||
v1 := &SessionsOpts{
|
||||
Accounts: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
Attributes: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
CDRs: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
Chargers: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
Resources: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
Routes: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
Stats: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
@@ -1751,21 +1854,159 @@ func TestDiffSessionsOptsJsonCfg(t *testing.T) {
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
AttributesDerivedReply: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
BlockerError: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
CDRsDerivedReply: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
ResourcesAuthorize: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
ResourcesAllocate: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
ResourcesRelease: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
ResourcesDerivedReply: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
RoutesDerivedReply: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
StatsDerivedReply: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
ThresholdsDerivedReply: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
MaxUsage: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
ForceDuration: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
TTL: []*utils.DynamicDurationOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: 3 * time.Second,
|
||||
},
|
||||
},
|
||||
Chargeable: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: false,
|
||||
},
|
||||
},
|
||||
LastUsage: []*utils.DynamicDurationPointerOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: utils.DurationPointer(5 * time.Second),
|
||||
},
|
||||
},
|
||||
LastUsed: []*utils.DynamicDurationPointerOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: utils.DurationPointer(5 * time.Second),
|
||||
},
|
||||
},
|
||||
DebitInterval: []*utils.DynamicDurationOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: 3 * time.Second,
|
||||
},
|
||||
},
|
||||
MaxDelay: []*utils.DynamicDurationOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: 3 * time.Second,
|
||||
},
|
||||
},
|
||||
Usage: []*utils.DynamicDurationPointerOpt{
|
||||
{
|
||||
Tenant: "cgrates.org",
|
||||
Value: utils.DurationPointer(5 * time.Second),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
v2 := &SessionsOpts{
|
||||
Accounts: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
Attributes: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
CDRs: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
Chargers: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
Resources: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
Routes: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
Stats: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
@@ -1802,21 +2043,159 @@ func TestDiffSessionsOptsJsonCfg(t *testing.T) {
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
AttributesDerivedReply: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
BlockerError: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
CDRsDerivedReply: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
ResourcesAuthorize: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
ResourcesAllocate: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
ResourcesRelease: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
ResourcesDerivedReply: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
RoutesDerivedReply: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
StatsDerivedReply: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
ThresholdsDerivedReply: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
MaxUsage: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
ForceDuration: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
TTL: []*utils.DynamicDurationOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: 4 * time.Second,
|
||||
},
|
||||
},
|
||||
Chargeable: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
LastUsage: []*utils.DynamicDurationPointerOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: utils.DurationPointer(6 * time.Second),
|
||||
},
|
||||
},
|
||||
LastUsed: []*utils.DynamicDurationPointerOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: utils.DurationPointer(6 * time.Second),
|
||||
},
|
||||
},
|
||||
DebitInterval: []*utils.DynamicDurationOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: 4 * time.Second,
|
||||
},
|
||||
},
|
||||
MaxDelay: []*utils.DynamicDurationOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: 4 * time.Second,
|
||||
},
|
||||
},
|
||||
Usage: []*utils.DynamicDurationPointerOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: utils.DurationPointer(4 * time.Second),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
expected := &SessionsOptsJson{
|
||||
Accounts: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
Attributes: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
CDRs: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
Chargers: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
Resources: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
Routes: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
Stats: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
@@ -1853,10 +2232,124 @@ func TestDiffSessionsOptsJsonCfg(t *testing.T) {
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
AttributesDerivedReply: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
BlockerError: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
CDRsDerivedReply: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
ResourcesAuthorize: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
ResourcesAllocate: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
ResourcesRelease: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
ResourcesDerivedReply: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
RoutesDerivedReply: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
StatsDerivedReply: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
ThresholdsDerivedReply: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
MaxUsage: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
ForceDuration: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
TTL: []*utils.DynamicStringOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: "4s",
|
||||
},
|
||||
},
|
||||
Chargeable: []*utils.DynamicBoolOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: true,
|
||||
},
|
||||
},
|
||||
LastUsage: []*utils.DynamicStringOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: "6s",
|
||||
},
|
||||
},
|
||||
LastUsed: []*utils.DynamicStringOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: "6s",
|
||||
},
|
||||
},
|
||||
DebitInterval: []*utils.DynamicStringOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: "4s",
|
||||
},
|
||||
},
|
||||
MaxDelay: []*utils.DynamicStringOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: "4s",
|
||||
},
|
||||
},
|
||||
Usage: []*utils.DynamicStringOpt{
|
||||
{
|
||||
Tenant: "cgrates.net",
|
||||
Value: "4s",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
rcv := diffSessionsOptsJsonCfg(d, v1, v2)
|
||||
if !reflect.DeepEqual(rcv, expected) {
|
||||
t.Errorf("Expected %v \n but received \n %v", expected, rcv)
|
||||
t.Errorf("Expected %v \n but received \n %v", utils.ToJSON(expected), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -549,3 +549,297 @@ func TestDynamicInterfaceOptEqual(t *testing.T) {
|
||||
t.Error("Expected slices to differ")
|
||||
}
|
||||
}
|
||||
|
||||
func TestStringToDecimalBigDynamicOpts(t *testing.T) {
|
||||
dsOpt := []*DynamicStringOpt{
|
||||
{
|
||||
FilterIDs: []string{"fld1", "fld2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: "200",
|
||||
},
|
||||
}
|
||||
|
||||
exp := []*DynamicDecimalBigOpt{
|
||||
{
|
||||
FilterIDs: []string{"fld1", "fld2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: new(decimal.Big).SetUint64(200),
|
||||
},
|
||||
}
|
||||
|
||||
rcv, err := StringToDecimalBigDynamicOpts(dsOpt)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
// fmt.Println(rcv[0].Value)
|
||||
if !reflect.DeepEqual(rcv, exp) {
|
||||
t.Errorf("Expected %v \n but received \n %v", exp, rcv)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDynamicIntPointerOptEqual(t *testing.T) {
|
||||
v1 := []*DynamicIntPointerOpt{
|
||||
{
|
||||
FilterIDs: []string{"fld1", "fld2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: IntPointer(200),
|
||||
},
|
||||
}
|
||||
|
||||
v2 := []*DynamicIntPointerOpt{
|
||||
{
|
||||
FilterIDs: []string{"fld3"},
|
||||
Tenant: "cgrates.net",
|
||||
Value: IntPointer(300),
|
||||
},
|
||||
}
|
||||
|
||||
if DynamicIntPointerOptEqual(v1, v2) {
|
||||
t.Error("Expected items to be different")
|
||||
}
|
||||
|
||||
v1 = v2
|
||||
if !DynamicIntPointerOptEqual(v1, v2) {
|
||||
t.Error("Expected items to be the same")
|
||||
}
|
||||
}
|
||||
|
||||
func TestDynamicDurationPointerOptEqual(t *testing.T) {
|
||||
v1 := []*DynamicDurationPointerOpt{
|
||||
{
|
||||
FilterIDs: []string{"fld3"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: DurationPointer(3 * time.Second),
|
||||
},
|
||||
}
|
||||
|
||||
v2 := []*DynamicDurationPointerOpt{
|
||||
{
|
||||
FilterIDs: []string{"fltr4"},
|
||||
Tenant: "cgrates.net",
|
||||
Value: DurationPointer(5 * time.Second),
|
||||
},
|
||||
}
|
||||
|
||||
if DynamicDurationPointerOptEqual(v1, v2) {
|
||||
t.Error("Expected items to be different")
|
||||
}
|
||||
|
||||
v1 = v2
|
||||
if !DynamicDurationPointerOptEqual(v1, v2) {
|
||||
t.Error("Expected items to be the same")
|
||||
}
|
||||
}
|
||||
|
||||
func TestDecimalBigToStringDynamicOpts(t *testing.T) {
|
||||
dbOpt := []*DynamicDecimalBigOpt{
|
||||
{
|
||||
FilterIDs: []string{"test_filter", "test_filter2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: new(decimal.Big).SetUint64(300),
|
||||
},
|
||||
}
|
||||
|
||||
exp := []*DynamicStringOpt{
|
||||
{
|
||||
FilterIDs: []string{"test_filter", "test_filter2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: "300",
|
||||
},
|
||||
}
|
||||
|
||||
rcv := DecimalBigToStringDynamicOpts(dbOpt)
|
||||
if !reflect.DeepEqual(rcv, exp) {
|
||||
t.Errorf("Expected %v \n but received \n %v", exp, rcv)
|
||||
}
|
||||
}
|
||||
|
||||
func TestStringToDurationDynamicOpts(t *testing.T) {
|
||||
sOpts := []*DynamicStringOpt{
|
||||
{
|
||||
FilterIDs: []string{"test_filter", "test_filter2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: "50s",
|
||||
},
|
||||
}
|
||||
|
||||
exp := []*DynamicDurationOpt{
|
||||
{
|
||||
FilterIDs: []string{"test_filter", "test_filter2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: 50 * time.Second,
|
||||
},
|
||||
}
|
||||
|
||||
rcv, err := StringToDurationDynamicOpts(sOpts)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if !reflect.DeepEqual(rcv, exp) {
|
||||
t.Errorf("Expected %v \n but received \n %v", exp, rcv)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDurationToStringDynamicOpts(t *testing.T) {
|
||||
exp := []*DynamicStringOpt{
|
||||
{
|
||||
FilterIDs: []string{"test_filter", "test_filter2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: "50s",
|
||||
},
|
||||
}
|
||||
|
||||
sOpts := []*DynamicDurationOpt{
|
||||
{
|
||||
FilterIDs: []string{"test_filter", "test_filter2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: 50 * time.Second,
|
||||
},
|
||||
}
|
||||
|
||||
rcv := DurationToStringDynamicOpts(sOpts)
|
||||
if !reflect.DeepEqual(rcv, exp) {
|
||||
t.Errorf("Expected %v \n but received \n %v", exp, rcv)
|
||||
}
|
||||
}
|
||||
|
||||
func TestIntToIntPointerDynamicOpts(t *testing.T) {
|
||||
iOpts := []*DynamicIntOpt{
|
||||
{
|
||||
FilterIDs: []string{"test_filter", "test_filter2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: 50,
|
||||
},
|
||||
}
|
||||
|
||||
exp := []*DynamicIntPointerOpt{
|
||||
{
|
||||
FilterIDs: []string{"test_filter", "test_filter2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: IntPointer(50),
|
||||
},
|
||||
}
|
||||
|
||||
rcv := IntToIntPointerDynamicOpts(iOpts)
|
||||
if !reflect.DeepEqual(rcv, exp) {
|
||||
t.Errorf("Expected %v \n but received \n %v", exp, rcv)
|
||||
}
|
||||
}
|
||||
|
||||
func TestIntPointerToIntDynamicOpts(t *testing.T) {
|
||||
exp := []*DynamicIntOpt{
|
||||
{
|
||||
FilterIDs: []string{"test_filter", "test_filter2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: 50,
|
||||
},
|
||||
}
|
||||
|
||||
iOpts := []*DynamicIntPointerOpt{
|
||||
{
|
||||
FilterIDs: []string{"test_filter", "test_filter2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: IntPointer(50),
|
||||
},
|
||||
}
|
||||
|
||||
rcv := IntPointerToIntDynamicOpts(iOpts)
|
||||
if !reflect.DeepEqual(rcv, exp) {
|
||||
t.Errorf("Expected %v \n but received \n %v", exp, rcv)
|
||||
}
|
||||
}
|
||||
|
||||
func TestStringToDurationPointerDynamicOpts(t *testing.T) {
|
||||
sOpts := []*DynamicStringOpt{
|
||||
{
|
||||
FilterIDs: []string{"test_filter", "test_filter2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: "50s",
|
||||
},
|
||||
}
|
||||
|
||||
exp := []*DynamicDurationPointerOpt{
|
||||
{
|
||||
FilterIDs: []string{"test_filter", "test_filter2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: DurationPointer(50 * time.Second),
|
||||
},
|
||||
}
|
||||
|
||||
rcv, err := StringToDurationPointerDynamicOpts(sOpts)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if !reflect.DeepEqual(rcv, exp) {
|
||||
t.Errorf("Expected %v \n but received \n %v", exp, rcv)
|
||||
}
|
||||
}
|
||||
func TestDurationPointerToStringDynamicOpts(t *testing.T) {
|
||||
exp := []*DynamicStringOpt{
|
||||
{
|
||||
FilterIDs: []string{"test_filter", "test_filter2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: "50s",
|
||||
},
|
||||
}
|
||||
|
||||
dpOpts := []*DynamicDurationPointerOpt{
|
||||
{
|
||||
FilterIDs: []string{"test_filter", "test_filter2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: DurationPointer(50 * time.Second),
|
||||
},
|
||||
}
|
||||
|
||||
rcv := DurationPointerToStringDynamicOpts(dpOpts)
|
||||
if !reflect.DeepEqual(rcv, exp) {
|
||||
t.Errorf("Expected %v \n but received \n %v", exp, rcv)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCloneDynamicIntPointerOpt(t *testing.T) {
|
||||
ipOpt := []*DynamicIntPointerOpt{
|
||||
{
|
||||
FilterIDs: []string{"fld1", "fld2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: IntPointer(200),
|
||||
},
|
||||
}
|
||||
|
||||
exp := []*DynamicIntPointerOpt{
|
||||
{
|
||||
FilterIDs: []string{"fld1", "fld2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: IntPointer(200),
|
||||
},
|
||||
}
|
||||
|
||||
rcv := CloneDynamicIntPointerOpt(ipOpt)
|
||||
if !reflect.DeepEqual(rcv, exp) {
|
||||
t.Errorf("Expected %v \n but received \n %v", exp, rcv)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCloneDynamicDurationPointerOpt(t *testing.T) {
|
||||
dpOpts := []*DynamicDurationPointerOpt{
|
||||
{
|
||||
FilterIDs: []string{"test_filter", "test_filter2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: DurationPointer(50 * time.Second),
|
||||
},
|
||||
}
|
||||
|
||||
exp := []*DynamicDurationPointerOpt{
|
||||
{
|
||||
FilterIDs: []string{"test_filter", "test_filter2"},
|
||||
Tenant: "cgrates.org",
|
||||
Value: DurationPointer(50 * time.Second),
|
||||
},
|
||||
}
|
||||
|
||||
rcv := CloneDynamicDurationPointerOpt(dpOpts)
|
||||
if !reflect.DeepEqual(rcv, exp) {
|
||||
t.Errorf("Expected %v \n but received \n %v", exp, rcv)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user