Fixup SM parse time bug discovered by DigiDaz, adding some more tests

This commit is contained in:
DanB
2014-04-18 18:03:05 +02:00
parent 4637c247fe
commit 05e4772f6d
4 changed files with 30 additions and 7 deletions

View File

@@ -151,7 +151,7 @@ func (fsev FSEvent) MissingParameter() bool {
}
func (fsev FSEvent) GetSetupTime(fieldName string) (t time.Time, err error) {
fsSTimeStr, hasKey := fsev[SETUP_TIME]
if hasKey {
if hasKey && fsSTimeStr != "0" {
// Discard the nanoseconds information since MySQL cannot store them in early versions and csv uses default seconds so cgrid will not corelate
fsSTimeStr = fsSTimeStr[:len(fsSTimeStr)-6]
}
@@ -163,7 +163,7 @@ func (fsev FSEvent) GetSetupTime(fieldName string) (t time.Time, err error) {
}
func (fsev FSEvent) GetAnswerTime(fieldName string) (t time.Time, err error) {
fsATimeStr, hasKey := fsev[ANSWER_TIME]
if hasKey {
if hasKey && fsATimeStr != "0" {
// Discard the nanoseconds information since MySQL cannot store them in early versions and csv uses default seconds so cgrid will not corelate
fsATimeStr = fsATimeStr[:len(fsATimeStr)-6]
}

View File

@@ -130,3 +130,26 @@ Task-Runtime: 1349437318`
dur != time.Duration(65)*time.Second)
}
}
func TestDDazEmptyTime(t *testing.T) {
body := `Event-Name: RE_SCHEDULE
Core-UUID: 792e181c-b6e6-499c-82a1-52a778e7d82d
FreeSWITCH-Hostname: h1.ip-switch.net
FreeSWITCH-Switchname: h1.ip-switch.net
FreeSWITCH-IPv4: 88.198.12.156
Caller-Channel-Created-Time: 0
Caller-Channel-Answered-Time
Task-Runtime: 1349437318`
var nilTime time.Time
ev := new(FSEvent).New(body)
if setupTime, err := ev.GetSetupTime(""); err != nil {
t.Error("Error when parsing empty setupTime")
} else if setupTime != nilTime {
t.Error("Expecting nil time, got: ", setupTime)
}
if answerTime, err := ev.GetAnswerTime(""); err != nil {
t.Error("Error when parsing empty setupTime")
} else if answerTime != nilTime {
t.Error("Expecting nil time, got: ", answerTime)
}
}