From ee2c8abd08b2a9a3e3757a9f215af1717f312390 Mon Sep 17 00:00:00 2001 From: Fred Boniface Date: Sat, 6 Apr 2024 22:27:14 +0100 Subject: [PATCH] Add test for metadata generation --- cif/process_test.go | 57 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 cif/process_test.go diff --git a/cif/process_test.go b/cif/process_test.go new file mode 100644 index 0000000..6117003 --- /dev/null +++ b/cif/process_test.go @@ -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) + } +}