Skip to content

Commit 945d9cf

Browse files
committed
Updated unit tests
1 parent d654392 commit 945d9cf

1 file changed

Lines changed: 54 additions & 3 deletions

File tree

Tests/TLVCodingTests/TLVCodingTests.swift

Lines changed: 54 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,7 @@ final class TLVCodingTests: XCTestCase {
190190
Data([
191191
0, 32, 0, 1, 0, 1, 27, 0, 16, 184, 61, 214, 244, 164, 41, 65, 179, 148, 90, 62, 14, 229, 145, 92, 161, 1, 7, 86, 97, 108, 117, 101, 32, 49,
192192
1, 32, 0, 1, 0, 1, 27, 0, 16, 184, 61, 214, 244, 164, 41, 65, 179, 148, 90, 62, 14, 229, 145, 92, 162, 1, 7, 86, 97, 108, 117, 101, 32, 50,
193-
2, 50, 0, 1, 1, 1, 45, 0, 16, 184, 61, 214, 244, 164, 41, 65, 179, 148, 90, 62, 14, 229, 145, 92, 163, 1, 15, 80, 101, 110, 100, 105, 110, 103, 32, 86, 97, 108, 117, 101, 32, 49, 2, 8, 0, 0, 0, 127, 195, 99, 45, 66
194-
])
193+
2, 50, 0, 1, 1, 1, 45, 0, 16, 184, 61, 214, 244, 164, 41, 65, 179, 148, 90, 62, 14, 229, 145, 92, 163, 1, 15, 80, 101, 110, 100, 105, 110, 103, 32, 86, 97, 108, 117, 101, 32, 49, 2, 8, 0, 0, 0, 16, 99, 216, 45, 66])
195194
)
196195

197196
}
@@ -216,7 +215,8 @@ final class TLVCodingTests: XCTestCase {
216215
let value = CustomEncodable(
217216
data: nil,
218217
uuid: UUID(),
219-
number: nil
218+
number: nil,
219+
date: nil
220220
)
221221

222222
var encodedData = Data()
@@ -243,6 +243,56 @@ final class TLVCodingTests: XCTestCase {
243243
}
244244
}
245245
}
246+
247+
func testDate() {
248+
249+
let dateFormatter = DateFormatter()
250+
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
251+
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
252+
dateFormatter.calendar = Calendar(identifier: .gregorian)
253+
dateFormatter.timeZone = TimeZone(secondsFromGMT: 0)
254+
255+
var formats: [TLVDateFormat] = [.secondsSince1970, .millisecondsSince1970, .formatted(dateFormatter)]
256+
257+
if #available(macOS 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *) {
258+
formats.append(.iso8601)
259+
}
260+
261+
let date = Date(timeIntervalSince1970: 60 * 60 * 24 * 365)
262+
263+
for format in formats {
264+
265+
let value = CustomEncodable(
266+
data: nil,
267+
uuid: nil,
268+
number: nil,
269+
date: date
270+
)
271+
272+
var encodedData = Data()
273+
var encoder = TLVEncoder()
274+
encoder.dateFormat = format
275+
encoder.log = { print("Encoder:", $0) }
276+
do {
277+
encodedData = try encoder.encode(value)
278+
} catch {
279+
dump(error)
280+
XCTFail("Could not encode \(value)")
281+
return
282+
}
283+
284+
var decoder = TLVDecoder()
285+
decoder.dateFormat = format
286+
decoder.log = { print("Decoder:", $0) }
287+
do {
288+
let decodedValue = try decoder.decode(CustomEncodable.self, from: encodedData)
289+
XCTAssertEqual(decodedValue, value)
290+
} catch {
291+
dump(error)
292+
XCTFail("Could not decode \(value)")
293+
}
294+
}
295+
}
246296
}
247297

248298
// MARK: - Supporting Types
@@ -358,6 +408,7 @@ public struct CustomEncodable: Codable, Equatable {
358408
public var data: Data?
359409
public var uuid: UUID?
360410
public var number: TLVCodableNumber?
411+
public var date: Date?
361412
}
362413

363414
public struct DeviceInformation: Equatable, Codable {

0 commit comments

Comments
 (0)