MinimedPacketTests.swift 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. //
  2. // MinimedPacketTests.swift
  3. // RileyLink
  4. //
  5. // Created by Pete Schwamb on 2/27/16.
  6. // Copyright © 2016 Pete Schwamb. All rights reserved.
  7. //
  8. import XCTest
  9. @testable import MinimedKit
  10. class MinimedPacketTests: XCTestCase {
  11. func testDecode4b6b() {
  12. let input = Data(hexadecimalString: "ab2959595965574ab2d31c565748ea54e55a54b5558cd8cd55557194b56357156535ac5659956a55c55555556355555568bc5657255554e55a54b5555555b100")!
  13. let packet = MinimedPacket(encodedData: input)
  14. if let result = packet?.data {
  15. let expectedOutput = Data(hexadecimalString: "a259705504a24117043a0e080b003d3d00015b030105d817790a0f00000300008b1702000e080b0000")
  16. XCTAssertEqual(result, expectedOutput)
  17. } else {
  18. XCTFail("Unable to decode packet data")
  19. }
  20. }
  21. func testDecode4b6bWithBadData() {
  22. let packet = MinimedPacket(encodedData: Data(hexadecimalString: "0102030405")!)
  23. XCTAssertNil(packet)
  24. }
  25. func testInvalidCRC() {
  26. let inputWithoutCRC = Data(hexadecimalString: "a259705504a24117043a0e080b003d3d00015b030105d817790a0f00000300008b1702000e080b0000")!
  27. let packet = MinimedPacket(encodedData: Data(inputWithoutCRC.encode4b6b()))
  28. XCTAssertNil(packet)
  29. }
  30. func testEncode4b6b() {
  31. let input = Data(hexadecimalString: "a259705504a24117043a0e080b003d3d00015b030105d817790a0f00000300008b1702000e080b000071")!
  32. let packet = MinimedPacket(outgoingData: input)
  33. let expectedOutput = Data(hexadecimalString: "ab2959595965574ab2d31c565748ea54e55a54b5558cd8cd55557194b56357156535ac5659956a55c55555556355555568bc5657255554e55a54b5555555b1555000")
  34. XCTAssertEqual(packet.encodedData(), expectedOutput)
  35. }
  36. }