Skip to content

Commit 4bfb09b

Browse files
committed
Add v3 unit tests
1 parent 9b72669 commit 4bfb09b

File tree

2 files changed

+234
-0
lines changed

2 files changed

+234
-0
lines changed

BoardingPassKit.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
/* Begin PBXBuildFile section */
1010
24AEAF8D2055151100311ED5 /* BoardingPassExamplev4Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24AEAF8B205514F200311ED5 /* BoardingPassExamplev4Tests.swift */; };
11+
24AEAF8F205517F800311ED5 /* BoardingPassExamplev3Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24AEAF8E205517F800311ED5 /* BoardingPassExamplev3Tests.swift */; };
1112
24B3F50B1FF3E06F002E489B /* BoardingPassKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 24B3F5091FF3E06F002E489B /* BoardingPassKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
1213
24B3F5141FF3E22F002E489B /* BPKBoardingPass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B3F5131FF3E22F002E489B /* BPKBoardingPass.swift */; };
1314
24B3F5161FF3E2AE002E489B /* BPKFlightSegment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B3F5151FF3E2AE002E489B /* BPKFlightSegment.swift */; };
@@ -32,6 +33,7 @@
3233
/* Begin PBXFileReference section */
3334
24AEAF892054D45A00311ED5 /* BoardingPassKit.podspec */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BoardingPassKit.podspec; sourceTree = "<group>"; };
3435
24AEAF8B205514F200311ED5 /* BoardingPassExamplev4Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BoardingPassExamplev4Tests.swift; sourceTree = "<group>"; };
36+
24AEAF8E205517F800311ED5 /* BoardingPassExamplev3Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BoardingPassExamplev3Tests.swift; sourceTree = "<group>"; };
3537
24B3F5061FF3E06F002E489B /* BoardingPassKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BoardingPassKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
3638
24B3F5091FF3E06F002E489B /* BoardingPassKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BoardingPassKit.h; sourceTree = "<group>"; };
3739
24B3F50A1FF3E06F002E489B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
@@ -119,6 +121,7 @@
119121
isa = PBXGroup;
120122
children = (
121123
24B3F5311FFFCAEB002E489B /* BaggageTagRangeExampleTests.swift */,
124+
24AEAF8E205517F800311ED5 /* BoardingPassExamplev3Tests.swift */,
122125
24AEAF8B205514F200311ED5 /* BoardingPassExamplev4Tests.swift */,
123126
24B3F51E1FFE9086002E489B /* BoardingPassExamplev5Tests.swift */,
124127
24B3F5271FFE90C0002E489B /* Info.plist */,
@@ -249,6 +252,7 @@
249252
isa = PBXSourcesBuildPhase;
250253
buildActionMask = 2147483647;
251254
files = (
255+
24AEAF8F205517F800311ED5 /* BoardingPassExamplev3Tests.swift in Sources */,
252256
24AEAF8D2055151100311ED5 /* BoardingPassExamplev4Tests.swift in Sources */,
253257
24B3F5331FFFCB09002E489B /* BaggageTagRangeExampleTests.swift in Sources */,
254258
24B3F52E1FFE90C6002E489B /* BoardingPassExamplev5Tests.swift in Sources */,
Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
import BoardingPassKit
2+
import XCTest
3+
4+
class BoardingPassExamplev3Tests: XCTestCase {
5+
private let securityData = "GIWVC5EH7JNT684FVNJ91W2QA4DVN5J8K4F0L0GEQ3DF5TGBN8709HKT5D3DW3GBHFCVHMY7J5T6HFR41W2QA4DVN5J8K4F0L0GE"
6+
.data(using: .ascii)!
7+
8+
func testExample1() throws {
9+
let data = ("M1DESMARAIS/LUC EABC123 YULFRAAC 0834 226F001A0025 100^164").data(using: .ascii)! + securityData
10+
let boardingPass = try BPKBoardingPass(data: data)
11+
XCTAssertEqual(boardingPass.legs.count, 1)
12+
XCTAssertEqual(boardingPass.firstName, "LUC")
13+
XCTAssertEqual(boardingPass.lastName, "DESMARAIS")
14+
XCTAssertEqual(boardingPass.securityType, "1")
15+
XCTAssertEqual(boardingPass.securityData, securityData)
16+
17+
let leg = boardingPass.legs[0]
18+
XCTAssertEqual(leg.pnrCode, "ABC123")
19+
XCTAssertEqual(leg.fromIATA, "YUL")
20+
XCTAssertEqual(leg.toIATA, "FRA")
21+
XCTAssertEqual(leg.operatingAirlineIATA, "AC")
22+
XCTAssertEqual(leg.flightNumber, "0834")
23+
XCTAssertEqual(leg.dayOfYear, 226)
24+
XCTAssertEqual(leg.cabinCode, "F")
25+
XCTAssertEqual(leg.seatNumber, "001A")
26+
XCTAssertEqual(leg.checkinSequence, "0025")
27+
XCTAssertEqual(leg.passengerStatus, "1")
28+
}
29+
30+
func testExample2() throws {
31+
let data = "M1DESMARAIS/LUC EABC123 YULFRAAC 0834 226F001A0025 14C>3181WW6225BAC 0085123456003290141234567890 1AC AC 1234567890123 2PCLX58Z^164".data(using: .ascii)! + securityData
32+
let boardingPass = try BPKBoardingPass(data: data)
33+
XCTAssertEqual(boardingPass.legs.count, 1)
34+
XCTAssertEqual(boardingPass.firstName, "LUC")
35+
XCTAssertEqual(boardingPass.lastName, "DESMARAIS")
36+
XCTAssertEqual(boardingPass.securityType, "1")
37+
XCTAssertEqual(boardingPass.securityData, securityData)
38+
39+
XCTAssertEqual(boardingPass.passengerDescription, "1")
40+
XCTAssertEqual(boardingPass.checkinSource, "W")
41+
XCTAssertEqual(boardingPass.boardingPassSource, "W")
42+
XCTAssertEqual(boardingPass.boardingPassIssueYear, 6)
43+
XCTAssertEqual(boardingPass.boardingPassIssueDay, 225)
44+
XCTAssertEqual(boardingPass.documentType, "B")
45+
XCTAssertEqual(boardingPass.boardingPassIssuer, "AC")
46+
47+
XCTAssertEqual(boardingPass.baggageTagRanges.count, 1)
48+
let tagRange = boardingPass.baggageTagRanges[0]
49+
XCTAssertEqual(tagRange.type, 0)
50+
XCTAssertEqual(tagRange.airlineNumeric, 85)
51+
XCTAssertEqual(tagRange.numberRange, 123456...123459)
52+
53+
let leg = boardingPass.legs[0]
54+
XCTAssertEqual(leg.pnrCode, "ABC123")
55+
XCTAssertEqual(leg.fromIATA, "YUL")
56+
XCTAssertEqual(leg.toIATA, "FRA")
57+
XCTAssertEqual(leg.operatingAirlineIATA, "AC")
58+
XCTAssertEqual(leg.flightNumber, "0834")
59+
XCTAssertEqual(leg.dayOfYear, 226)
60+
XCTAssertEqual(leg.cabinCode, "F")
61+
XCTAssertEqual(leg.seatNumber, "001A")
62+
XCTAssertEqual(leg.checkinSequence, "0025")
63+
XCTAssertEqual(leg.passengerStatus, "1")
64+
65+
XCTAssertEqual(leg.documentAirlineNumeric, 14)
66+
XCTAssertEqual(leg.documentNumber, "1234567890")
67+
XCTAssertNil(leg.selectee)
68+
XCTAssertEqual(leg.internationalDocumentVerification, "1")
69+
XCTAssertEqual(leg.marketingAirlineIATA, "AC")
70+
XCTAssertEqual(leg.frequentFlyerAirline, "AC")
71+
XCTAssertEqual(leg.frequentFlyerNumber, "1234567890123")
72+
XCTAssertNil(leg.idAdIndicator)
73+
XCTAssertEqual(leg.freeBaggageAllowance, "2PC")
74+
XCTAssertEqual(leg.airlineData, "LX58Z".data(using: .ascii)!)
75+
}
76+
77+
func testExample3() throws {
78+
let data = "M1GRANDMAIRE/MELANIE EABC123 GVACDGAF 0123 228C002F0025 113>3000D0571234567890^164"
79+
.data(using: .ascii)! + securityData
80+
let boardingPass = try BPKBoardingPass(data: data)
81+
XCTAssertEqual(boardingPass.legs.count, 1)
82+
XCTAssertEqual(boardingPass.firstName, "MELANIE")
83+
XCTAssertEqual(boardingPass.lastName, "GRANDMAIRE")
84+
XCTAssertEqual(boardingPass.securityType, "1")
85+
XCTAssertEqual(boardingPass.securityData, securityData)
86+
87+
let leg = boardingPass.legs[0]
88+
XCTAssertEqual(leg.pnrCode, "ABC123")
89+
XCTAssertEqual(leg.fromIATA, "GVA")
90+
XCTAssertEqual(leg.toIATA, "CDG")
91+
XCTAssertEqual(leg.operatingAirlineIATA, "AF")
92+
XCTAssertEqual(leg.flightNumber, "0123")
93+
XCTAssertEqual(leg.dayOfYear, 228)
94+
XCTAssertEqual(leg.cabinCode, "C")
95+
XCTAssertEqual(leg.seatNumber, "002F")
96+
XCTAssertEqual(leg.checkinSequence, "0025")
97+
XCTAssertEqual(leg.passengerStatus, "1")
98+
99+
XCTAssertEqual(leg.documentAirlineNumeric, 57)
100+
XCTAssertEqual(leg.documentNumber, "1234567890")
101+
}
102+
103+
func testExample4() throws {
104+
let data = "M2DESMARAIS/LUC EABC123 YULFRAAC 0834 226F001A0025 14C>3181WW6225BAC 0085123456003290141234567890 1AC AC 1234567890123 20KLX58ZDEF456 FRAGVALH 3664 227C012C0002 12D290140987654321 1AC AC 1234567890123 2PCWQ^164"
105+
.data(using: .ascii)! + securityData
106+
let boardingPass = try BPKBoardingPass(data: data)
107+
XCTAssertEqual(boardingPass.legs.count, 2)
108+
XCTAssertEqual(boardingPass.firstName, "LUC")
109+
XCTAssertEqual(boardingPass.lastName, "DESMARAIS")
110+
XCTAssertEqual(boardingPass.securityType, "1")
111+
XCTAssertEqual(boardingPass.securityData, securityData)
112+
113+
XCTAssertEqual(boardingPass.passengerDescription, "1")
114+
XCTAssertEqual(boardingPass.checkinSource, "W")
115+
XCTAssertEqual(boardingPass.boardingPassSource, "W")
116+
XCTAssertEqual(boardingPass.boardingPassIssueYear, 6)
117+
XCTAssertEqual(boardingPass.boardingPassIssueDay, 225)
118+
XCTAssertEqual(boardingPass.documentType, "B")
119+
XCTAssertEqual(boardingPass.boardingPassIssuer, "AC")
120+
121+
XCTAssertEqual(boardingPass.baggageTagRanges.count, 1)
122+
let tagRange = boardingPass.baggageTagRanges[0]
123+
XCTAssertEqual(tagRange.type, 0)
124+
XCTAssertEqual(tagRange.airlineNumeric, 85)
125+
XCTAssertEqual(tagRange.numberRange, 123456...123459)
126+
127+
var leg = boardingPass.legs[0]
128+
XCTAssertEqual(leg.pnrCode, "ABC123")
129+
XCTAssertEqual(leg.fromIATA, "YUL")
130+
XCTAssertEqual(leg.toIATA, "FRA")
131+
XCTAssertEqual(leg.operatingAirlineIATA, "AC")
132+
XCTAssertEqual(leg.flightNumber, "0834")
133+
XCTAssertEqual(leg.dayOfYear, 226)
134+
XCTAssertEqual(leg.cabinCode, "F")
135+
XCTAssertEqual(leg.seatNumber, "001A")
136+
XCTAssertEqual(leg.checkinSequence, "0025")
137+
XCTAssertEqual(leg.passengerStatus, "1")
138+
139+
XCTAssertEqual(leg.documentAirlineNumeric, 14)
140+
XCTAssertEqual(leg.documentNumber, "1234567890")
141+
XCTAssertNil(leg.selectee)
142+
XCTAssertEqual(leg.internationalDocumentVerification, "1")
143+
XCTAssertEqual(leg.marketingAirlineIATA, "AC")
144+
XCTAssertEqual(leg.frequentFlyerAirline, "AC")
145+
XCTAssertEqual(leg.frequentFlyerNumber, "1234567890123")
146+
XCTAssertNil(leg.idAdIndicator)
147+
XCTAssertEqual(leg.freeBaggageAllowance, "20K")
148+
XCTAssertEqual(leg.airlineData, "LX58Z".data(using: .ascii)!)
149+
150+
leg = boardingPass.legs[1]
151+
XCTAssertEqual(leg.pnrCode, "DEF456")
152+
XCTAssertEqual(leg.fromIATA, "FRA")
153+
XCTAssertEqual(leg.toIATA, "GVA")
154+
XCTAssertEqual(leg.operatingAirlineIATA, "LH")
155+
XCTAssertEqual(leg.flightNumber, "3664")
156+
XCTAssertEqual(leg.dayOfYear, 227)
157+
XCTAssertEqual(leg.cabinCode, "C")
158+
XCTAssertEqual(leg.seatNumber, "012C")
159+
XCTAssertEqual(leg.checkinSequence, "0002")
160+
XCTAssertEqual(leg.passengerStatus, "1")
161+
162+
XCTAssertEqual(leg.documentAirlineNumeric, 14)
163+
XCTAssertEqual(leg.documentNumber, "0987654321")
164+
XCTAssertNil(leg.selectee)
165+
XCTAssertEqual(leg.internationalDocumentVerification, "1")
166+
XCTAssertEqual(leg.marketingAirlineIATA, "AC")
167+
XCTAssertEqual(leg.frequentFlyerAirline, "AC")
168+
XCTAssertEqual(leg.frequentFlyerNumber, "1234567890123")
169+
XCTAssertNil(leg.idAdIndicator)
170+
XCTAssertEqual(leg.freeBaggageAllowance, "2PC")
171+
XCTAssertEqual(leg.airlineData, "WQ".data(using: .ascii)!)
172+
}
173+
174+
func testExample5() throws {
175+
let data = "M2GRANDMAIRE/MELANIE EABC123 GVACDGAF 0123 228C002F0025 12F>300290571234567890 20KDEF456 CDGDTWNW 0049 228F001A0002 12B29012098765432101 2PC^164"
176+
.data(using: .ascii)! + securityData
177+
let boardingPass = try BPKBoardingPass(data: data)
178+
XCTAssertEqual(boardingPass.legs.count, 2)
179+
XCTAssertEqual(boardingPass.firstName, "MELANIE")
180+
XCTAssertEqual(boardingPass.lastName, "GRANDMAIRE")
181+
XCTAssertEqual(boardingPass.securityType, "1")
182+
XCTAssertEqual(boardingPass.securityData, securityData)
183+
184+
var leg = boardingPass.legs[0]
185+
XCTAssertEqual(leg.pnrCode, "ABC123")
186+
XCTAssertEqual(leg.fromIATA, "GVA")
187+
XCTAssertEqual(leg.toIATA, "CDG")
188+
XCTAssertEqual(leg.operatingAirlineIATA, "AF")
189+
XCTAssertEqual(leg.flightNumber, "0123")
190+
XCTAssertEqual(leg.dayOfYear, 228)
191+
XCTAssertEqual(leg.cabinCode, "C")
192+
XCTAssertEqual(leg.seatNumber, "002F")
193+
XCTAssertEqual(leg.checkinSequence, "0025")
194+
XCTAssertEqual(leg.passengerStatus, "1")
195+
196+
XCTAssertEqual(leg.documentAirlineNumeric, 57)
197+
XCTAssertEqual(leg.documentNumber, "1234567890")
198+
XCTAssertNil(leg.selectee)
199+
XCTAssertNil(leg.internationalDocumentVerification)
200+
XCTAssertNil(leg.marketingAirlineIATA)
201+
XCTAssertNil(leg.frequentFlyerAirline)
202+
XCTAssertNil(leg.frequentFlyerNumber)
203+
XCTAssertNil(leg.idAdIndicator)
204+
XCTAssertEqual(leg.freeBaggageAllowance, "20K")
205+
XCTAssertNil(leg.airlineData)
206+
207+
leg = boardingPass.legs[1]
208+
XCTAssertEqual(leg.pnrCode, "DEF456")
209+
XCTAssertEqual(leg.fromIATA, "CDG")
210+
XCTAssertEqual(leg.toIATA, "DTW")
211+
XCTAssertEqual(leg.operatingAirlineIATA, "NW")
212+
XCTAssertEqual(leg.flightNumber, "0049")
213+
XCTAssertEqual(leg.dayOfYear, 228)
214+
XCTAssertEqual(leg.cabinCode, "F")
215+
XCTAssertEqual(leg.seatNumber, "001A")
216+
XCTAssertEqual(leg.checkinSequence, "0002")
217+
XCTAssertEqual(leg.passengerStatus, "1")
218+
219+
XCTAssertEqual(leg.documentAirlineNumeric, 12)
220+
XCTAssertEqual(leg.documentNumber, "0987654321")
221+
XCTAssertEqual(leg.selectee, "0")
222+
XCTAssertEqual(leg.internationalDocumentVerification, "1")
223+
XCTAssertNil(leg.marketingAirlineIATA)
224+
XCTAssertNil(leg.frequentFlyerAirline)
225+
XCTAssertNil(leg.frequentFlyerNumber)
226+
XCTAssertNil(leg.idAdIndicator)
227+
XCTAssertEqual(leg.freeBaggageAllowance, "2PC")
228+
XCTAssertNil(leg.airlineData)
229+
}
230+
}

0 commit comments

Comments
 (0)