From 15f15ec14605cceac64570815c4601c878f7a29c Mon Sep 17 00:00:00 2001 From: windyboy Date: Wed, 24 Jul 2024 14:38:32 +0800 Subject: [PATCH] refactor: Rename clean function to cleanMessage for clarity and consistency The code changes in `aviation_parser.go` and `aviation_parser_test.go` rename the `clean` function to `cleanMessage` to improve clarity and consistency in function naming. This change ensures that the function's purpose is more accurately reflected in its name, making it easier for developers to understand and maintain the code. --- internal/parsers/aviation_parser.go | 4 +- internal/parsers/aviation_parser_test.go | 54 +++++++++++++++++++++++- 2 files changed, 55 insertions(+), 3 deletions(-) diff --git a/internal/parsers/aviation_parser.go b/internal/parsers/aviation_parser.go index 563960d..0aed3fa 100644 --- a/internal/parsers/aviation_parser.go +++ b/internal/parsers/aviation_parser.go @@ -164,7 +164,7 @@ func Parse(rawText string) (*domain.ParsedMessage, error) { return &message, nil } -func clean(text string) string { +func cleanMessage(text string) string { cleanedText := emptyLineRemove.ReplaceAllString(text, "") cleanText := strings.ReplaceAll(cleanedText, "\n\n", "\n") if match := bodyOnly.FindStringSubmatch(cleanText); len(match) > 1 { @@ -179,7 +179,7 @@ func clean(text string) string { func ParseHeader(fullMessage string) (domain.ParsedMessage, error) { log := utils.GetSugaredLogger() - fullMessage = clean(fullMessage) + fullMessage = cleanMessage(fullMessage) lines := strings.Split(fullMessage, "\n") if len(lines) < 3 { diff --git a/internal/parsers/aviation_parser_test.go b/internal/parsers/aviation_parser_test.go index 1a7c484..4035f11 100644 --- a/internal/parsers/aviation_parser_test.go +++ b/internal/parsers/aviation_parser_test.go @@ -17,7 +17,7 @@ GG ZBTJZXZX (ARR-CES5470-ZBTJ-ZSHC1614) NNNN` It("should get a clean body text", func() { - body := clean(message) + body := cleanMessage(message) expected := `ZCZC TMQ2530 141614 GG ZBTJZXZX 141614 ZSHCZTZX @@ -247,4 +247,56 @@ NNNN }) }) }) + + Describe("Utility Functions", func() { + + It("should clean text correctly", func() { + text := `ZCZC TMQ2530 141614 + +1234 + 4567 +NNNN` + expect := "ZCZC TMQ2530 141614\n1234\n 4567" + cleaned := cleanMessage(text) + Expect(cleaned).To(Equal(expect)) + }) + + It("should parse start indicator correctly", func() { + line := "ZCZC TMQ2530 141614" + startIndicator, messageID, dateTime, err := parseStartIndicator(line) + Expect(err).ToNot(HaveOccurred()) + Expect(startIndicator).To(Equal("ZCZC")) + Expect(messageID).To(Equal("TMQ2530")) + Expect(dateTime).To(Equal("141614")) + }) + + It("should return error for invalid start indicator line", func() { + line := "Invalid Line" + _, _, _, err := parseStartIndicator(line) + Expect(err).To(HaveOccurred()) + }) + + It("should parse priority and primary address correctly", func() { + line := "QU TSNZPCA" + priority, primary := parsePriorityAndPrimary(line) + Expect(priority).To(Equal("QU")) + Expect(primary).To(Equal("TSNZPCA")) + }) + + It("should return empty strings for invalid priority and primary address line", func() { + line := "Invalid-Line" + priority, primary := parsePriorityAndPrimary(line) + Expect(priority).To(BeEmpty()) + Expect(primary).To(BeEmpty()) + }) + + It("should parse remaining lines correctly", func() { + lines := []string{"QU PEKUDCA TSNUOCA TSNZPCA TSNUFCA", ".SELOZKE 170999", "BEGIN PART 01"} + secondaryAddresses, originator, originatorDateTime, bodyAndFooter := parseRemainingLines(lines) + Expect(secondaryAddresses).To(Equal([]string{"QU PEKUDCA TSNUOCA TSNZPCA TSNUFCA"})) + Expect(originator).To(Equal("SELOZKE")) + Expect(originatorDateTime).To(Equal("170999")) + Expect(bodyAndFooter).To(Equal("BEGIN PART 01\n")) + }) + }) })