coverage tests in engine

This commit is contained in:
gezimbll
2022-11-07 10:32:13 -05:00
committed by Dan Christian Bogos
parent 3e6774a263
commit 5c7a5a9e9c
4 changed files with 276 additions and 2 deletions

View File

@@ -1010,6 +1010,75 @@ func TestAttributesParseAttributeSIPCID(t *testing.T) {
} else if _, err = ParseAttribute(dp, utils.MetaUsageDifference, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to;~*req.from", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{}, utils.MetaSum, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to;~*req.from", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{}, utils.MetaDifference, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to;~*req.from", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{}, utils.MetaMultiply, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to;~*req.from", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{}, utils.MetaDivide, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to;~*req.from", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{}, utils.MetaUnixTimestamp, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to;~*req.from", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{}, utils.MetaDateTime, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to;~*req.from", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{}, utils.MetaPrefix, "`val", config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to;~*req.from", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{}, utils.MetaSuffix, "`val", config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to;~*req.from", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{}, utils.MetaCCUsage, "`val", config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to;~*req.from", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{}, "default", utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to;~*req.from", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{}, "default", utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{utils.MetaReq: utils.MapStorage{"cid": "12345"}}, utils.MetaUsageDifference, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra", utils.InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{utils.MetaReq: utils.MapStorage{"cid": "12345", "extra": "1003"}}, utils.MetaUsageDifference, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{utils.MetaReq: utils.MapStorage{"cid": "0", "extra": "1003"}}, utils.MetaUsageDifference, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{utils.MetaReq: utils.MapStorage{}}, utils.MetaUsageDifference, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{utils.MetaReq: utils.MapStorage{"extra": "1003", "to": "1001"}}, utils.MetaCCUsage, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{utils.MetaReq: utils.MapStorage{"cid": "val", "extra": "1003", "to": "1001"}}, utils.MetaCCUsage, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{utils.MetaReq: utils.MapStorage{"cid": "12233", "to": "1001"}}, utils.MetaCCUsage, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{utils.MetaReq: utils.MapStorage{"cid": "12232", "extra": "val", "to": "1001"}}, utils.MetaCCUsage, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{utils.MetaReq: utils.MapStorage{"cid": "12233", "extra": "1001"}}, utils.MetaCCUsage, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
} else if _, err = ParseAttribute(utils.MapStorage{utils.MetaReq: utils.MapStorage{"cid": "12232", "extra": "1001", "to": "val"}}, utils.MetaCCUsage, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err == nil {
t.Errorf("received <%+v>", err)
}
expDur := 100000 * time.Nanosecond
if val, err := ParseAttribute(utils.MapStorage{utils.MetaReq: utils.MapStorage{"cid": "1000", "extra": "100", "to": "100"}}, utils.MetaCCUsage, utils.EmptyString, config.NewRSRParsersMustCompile("~*req.cid;~*req.extra;~*req.to", utils.
InfieldSep), 0, utils.EmptyString, utils.EmptyString, utils.InfieldSep); err != nil {
t.Errorf("received <%+v>", err)
} else if val != expDur {
t.Errorf("expected %v,received %v", expDur, val)
}
}
func TestAttributesParseAttributeSIPCIDWrongPathErr(t *testing.T) {
@@ -1148,6 +1217,10 @@ func TestAttributesV1ProcessEventMultipleRuns1(t *testing.T) {
t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ToJSON(exp), utils.ToJSON(reply))
}
}
if err := alS.V1ProcessEvent(nil, reply); err == nil {
t.Error("expected error")
}
}
func TestAttributesV1ProcessEventMultipleRuns2(t *testing.T) {

View File

@@ -1931,8 +1931,29 @@ func TestCallDescriptorUpdateFromCGREvent(t *testing.T) {
t.Error(err)
} else if err = cd.UpdateFromCGREvent(cgrEv, []string{utils.Subject}); err == nil {
t.Error(err)
} else if err = cd.UpdateFromCGREvent(cgrEv, []string{"Extra"}); err == nil {
t.Error(err)
}
cgrEv = &utils.CGREvent{
Event: map[string]interface{}{
"Extra": "Value",
},
}
cd = &CallDescriptor{
ExtraFields: map[string]string{
"Extra": "Value",
},
}
cdExpected = &CallDescriptor{
ExtraFields: map[string]string{
"Extra": "Value",
},
}
if err = cd.UpdateFromCGREvent(cgrEv, []string{"Extra"}); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(cd, cdExpected) {
t.Errorf("expected %v ,received %v", utils.ToJSON(cd), utils.ToJSON(cdExpected))
}
}
func TestCallDescriptorAsCGREvent(t *testing.T) {
@@ -2523,5 +2544,4 @@ func TestValidateCallData(t *testing.T) {
if err = cd.ValidateCallData(); err != nil {
t.Error(err)
}
}

View File

@@ -124,4 +124,17 @@ func TestTaskFieldAsString(t *testing.T) {
if !reflect.DeepEqual(eOut, rcv) {
t.Errorf("Expecting: %q, received: %q", eOut, rcv)
}
if _, err = task.FieldAsString([]string{"default"}); err == nil {
t.Error(err)
}
}
func TestTaskExecute(t *testing.T) {
task := &Task{
AccountID: "accID",
}
if err := task.Execute(&FilterS{}); err == nil {
t.Error(err)
}
}

View File

@@ -1969,6 +1969,14 @@ func TestMerge(t *testing.T) {
} else if !tss1.Equal(eMergedTSS) {
t.Errorf("Expecting: %+v, received: %+v", eMergedTSS, tss1)
}
tss1.TimeEnd = time.Date(2015, 1, 9, 16, 20, 0, 0, time.UTC)
if merged := tss1.Merge(tss2); merged {
t.Error("expected false")
}
tss1.MatchedSubject = "match_subj1"
if merged := tss1.Merge(tss2); merged {
t.Error("expected false")
}
}
func TestIncrementClone(t *testing.T) {
@@ -1993,3 +2001,163 @@ func TestIncrementClone(t *testing.T) {
t.Errorf("Expecting %+v, received: %+v", utils.ToJSON(eOut), utils.ToJSON(clone))
}
}
func TestTimeSpansMerge(t *testing.T) {
tss := &TimeSpans{
{
CompressFactor: 4,
DurationIndex: 1 * time.Hour,
Cost: 12,
TimeStart: time.Date(2022, 12, 1, 18, 0, 0, 0, time.UTC),
TimeEnd: time.Date(2022, 12, 1, 19, 0, 0, 0, time.UTC),
Increments: Increments{
&Increment{
Duration: 2 * time.Minute,
Cost: 23.22,
},
{
Duration: 5 * time.Minute,
Cost: 12.32,
},
},
RateInterval: &RateInterval{
Timing: &RITiming{
ID: "id",
Years: utils.Years{2, 1, 3},
},
Rating: &RIRate{
ConnectFee: 12.11,
RoundingMethod: "method",
RoundingDecimals: 13,
MaxCost: 494,
},
Weight: 2.3,
},
MatchedSubject: "subject",
MatchedPrefix: "match_prefix",
MatchedDestId: "dest_id",
RatingPlanId: "rate_id",
},
{
CompressFactor: 4,
DurationIndex: 1 * time.Hour,
Cost: 12,
TimeStart: time.Date(2022, 12, 1, 19, 0, 0, 0, time.UTC),
TimeEnd: time.Date(2022, 12, 1, 20, 0, 0, 0, time.UTC),
Increments: Increments{
&Increment{
Duration: 2 * time.Minute,
Cost: 23.22,
},
{
Duration: 5 * time.Minute,
Cost: 12.32,
},
},
RateInterval: &RateInterval{
Timing: &RITiming{
ID: "id",
Years: utils.Years{2, 1, 3},
},
Rating: &RIRate{
ConnectFee: 12.11,
RoundingMethod: "method",
RoundingDecimals: 13,
MaxCost: 494,
},
Weight: 2.3,
},
MatchedSubject: "subject",
MatchedPrefix: "match_prefix",
MatchedDestId: "dest_id",
RatingPlanId: "rate_id",
}, {
Cost: 11,
DurationIndex: 1 * time.Hour,
CompressFactor: 4,
TimeStart: time.Date(2022, 12, 1, 20, 0, 0, 0, time.UTC),
TimeEnd: time.Date(2022, 12, 1, 21, 0, 0, 0, time.UTC),
Increments: Increments{
&Increment{
Duration: 2 * time.Minute,
Cost: 23.22,
},
{
Duration: 5 * time.Minute,
Cost: 12.32,
},
},
RateInterval: &RateInterval{
Timing: &RITiming{
ID: "id",
Years: utils.Years{2, 1, 3},
},
Rating: &RIRate{
ConnectFee: 12.11,
RoundingMethod: "method",
RoundingDecimals: 13,
MaxCost: 494,
},
Weight: 2.3,
},
MatchedSubject: "subject",
MatchedPrefix: "match_prefix",
MatchedDestId: "dest_id",
RatingPlanId: "rate_id",
},
}
expMerge := &TimeSpans{{
CompressFactor: 4,
DurationIndex: 1 * time.Hour,
Cost: 35,
TimeStart: time.Date(2022, 12, 1, 18, 0, 0, 0, time.UTC),
TimeEnd: time.Date(2022, 12, 1, 21, 0, 0, 0, time.UTC),
Increments: Increments{
{
Duration: 2 * time.Minute,
Cost: 23.22,
},
{
Duration: 5 * time.Minute,
Cost: 12.32,
},
{
Duration: 2 * time.Minute,
Cost: 23.22,
},
{
Duration: 5 * time.Minute,
Cost: 12.32,
},
{
Duration: 2 * time.Minute,
Cost: 23.22,
},
{
Duration: 5 * time.Minute,
Cost: 12.32,
},
},
RateInterval: &RateInterval{
Timing: &RITiming{
ID: "id",
Years: utils.Years{2, 1, 3},
},
Rating: &RIRate{
ConnectFee: 12.11,
RoundingMethod: "method",
RoundingDecimals: 13,
MaxCost: 494,
},
Weight: 2.3,
},
MatchedSubject: "subject",
MatchedPrefix: "match_prefix",
MatchedDestId: "dest_id",
RatingPlanId: "rate_id",
}}
if tss.Merge(); !reflect.DeepEqual(tss, expMerge) {
t.Errorf("expected %v ,recived %v", utils.ToJSON(expMerge), utils.ToJSON(tss))
}
}