Add test for metadata generation
This commit is contained in:
parent
43d89119bf
commit
ee2c8abd08
57
cif/process_test.go
Normal file
57
cif/process_test.go
Normal file
@ -0,0 +1,57 @@
|
||||
package cif
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"git.fjla.uk/owlboard/go-types/pkg/upstreamApi"
|
||||
"git.fjla.uk/owlboard/timetable-mgr/dbAccess"
|
||||
)
|
||||
|
||||
func TestGenerateMetadata(t *testing.T) {
|
||||
header := &upstreamApi.JsonTimetableV1{
|
||||
Classification: "public",
|
||||
Timestamp: 1711227636,
|
||||
Owner: "Network Rail",
|
||||
Sender: upstreamApi.TimetableSender{
|
||||
Organisation: "Rockshore",
|
||||
Application: "NTROD",
|
||||
Component: "SCHEDULE",
|
||||
},
|
||||
Metadata: upstreamApi.TimetableMetadata{
|
||||
Type: "update",
|
||||
Sequence: 4307,
|
||||
},
|
||||
}
|
||||
|
||||
expected := &dbAccess.CifMetadata{
|
||||
Doctype: dbAccess.Doctype,
|
||||
LastTimestamp: header.Timestamp,
|
||||
LastSequence: header.Metadata.Sequence,
|
||||
LastUpdate: time.Now().In(londonTimezone),
|
||||
}
|
||||
|
||||
result := generateMetadata(header)
|
||||
|
||||
if result == nil {
|
||||
t.Errorf("generateMetadata returned nil pointer")
|
||||
}
|
||||
|
||||
if result.Doctype != expected.Doctype {
|
||||
t.Errorf("Doctype: expected %s, got %s", expected.Doctype, result.Doctype)
|
||||
}
|
||||
|
||||
if result.LastTimestamp != expected.LastTimestamp {
|
||||
t.Errorf("LastTimestamp: expected %d, got %d", expected.LastTimestamp, result.LastTimestamp)
|
||||
}
|
||||
|
||||
if result.LastSequence != expected.LastSequence {
|
||||
t.Errorf("LastSequence: expected %d, got %d", expected.LastSequence, result.LastSequence)
|
||||
}
|
||||
|
||||
tolerance := time.Second
|
||||
if !result.LastUpdate.Before(expected.LastUpdate.Add(tolerance)) ||
|
||||
!result.LastUpdate.After(expected.LastUpdate.Add(-tolerance)) {
|
||||
t.Errorf("LastUpdate: expected %s, got %s", expected.LastUpdate, result.LastUpdate)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user