diff --git a/internal/parsers/schedule_def.go b/internal/parsers/schedule_def.go index d607f3c..8433684 100644 --- a/internal/parsers/schedule_def.go +++ b/internal/parsers/schedule_def.go @@ -205,6 +205,22 @@ var ( 3: Register, }, }, + { + /** + * 深圳航空 (ZH) + *204) W/Z 31OCT ZH9783 B5670 CAT1 (10) SZX0045 0355TSN + */ + Airlines: []string{"ZH"}, + MinLen: 9, + WaypointStart: 7, + Fields: map[int]string{ + 0: Index, + 1: Task, + 2: Date, + 3: FlightNumber, + 4: Register, + }, + }, } ) diff --git a/internal/parsers/schedule_parser_test.go b/internal/parsers/schedule_parser_test.go index 063ae3d..67064e2 100644 --- a/internal/parsers/schedule_parser_test.go +++ b/internal/parsers/schedule_parser_test.go @@ -424,4 +424,24 @@ var _ = Describe("Parse Line with PreDef", func() { }) }) + Context("ZH", func() { + It("204) W/Z 31OCT ZH9783 B5670 CAT1 (10) SZX0045 0355TSN", func() { + lineText := "204) W/Z 31OCT ZH9783 B5670 CAT1 (10) SZX0045 0355TSN" + def := FindDef("ZH") + Expect(def).NotTo(BeNil()) + schedule := ParseWithDef(lineText, def) + Expect(schedule).NotTo(BeNil()) + Expect(schedule.Index).To(Equal("204)")) + Expect(schedule.Task).To(Equal("W/Z")) + Expect(len(schedule.FlightNumber)).To(Equal(1)) + Expect(schedule.FlightNumber[0]).To(Equal("ZH9783")) + Expect(schedule.AircraftReg).To(Equal("B5670")) + Expect(len(schedule.Waypoints)).To(Equal(2)) + Expect(schedule.Waypoints[0].Airport).To(Equal("SZX")) + Expect(schedule.Waypoints[0].DepartureTime).To(Equal("0045")) + Expect(schedule.Waypoints[1].Airport).To(Equal("TSN")) + Expect(schedule.Waypoints[1].ArrivalTime).To(Equal("0355")) + }) + }) + })