StatusTests.swift 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. //
  2. // StatusTests.swift
  3. // OmniBLE
  4. //
  5. // Created by Eelke Jager on 08/09/2018.
  6. // Copyright © 2018 Pete Schwamb. All rights reserved.
  7. // From OmniKitTests/StatusTests.swift
  8. //
  9. import Foundation
  10. import XCTest
  11. @testable import OmniBLE
  12. class StatusTests: XCTestCase {
  13. func testStatusRequestCommand() {
  14. // 0e 01 00
  15. do {
  16. // Encode
  17. let encoded = GetStatusCommand(podInfoType: .normal)
  18. XCTAssertEqual("0e0100", encoded.data.hexadecimalString)
  19. // Decode
  20. let decoded = try GetStatusCommand(encodedData: Data(hexadecimalString: "0e0100")!)
  21. XCTAssertEqual(.normal, decoded.podInfoType)
  22. } catch (let error) {
  23. XCTFail("message decoding threw error: \(error)")
  24. }
  25. }
  26. func testStatusResponse46UnitsLeft() {
  27. /// 1d19050ec82c08376f9801dc
  28. do {
  29. // Decode
  30. let decoded = try StatusResponse(encodedData: Data(hexadecimalString: "1d19050ec82c08376f9801dc")!)
  31. XCTAssertEqual(TimeInterval(minutes: 3547), decoded.timeActive)
  32. XCTAssertEqual(.scheduledBasal, decoded.deliveryStatus)
  33. XCTAssertEqual(.fiftyOrLessUnits, decoded.podProgressStatus)
  34. XCTAssertEqual(129.45, decoded.insulinDelivered, accuracy: 0.01)
  35. XCTAssertEqual(46.00, decoded.reservoirLevel)
  36. XCTAssertEqual(2.2, decoded.bolusNotDelivered)
  37. XCTAssertEqual(9, decoded.lastProgrammingMessageSeqNum)
  38. //XCTAssert(,decoded.alarms)
  39. } catch (let error) {
  40. XCTFail("message decoding threw error: \(error)")
  41. }
  42. }
  43. func testStatusRequestCommandConfiguredAlerts() {
  44. // 0e 01 01
  45. do {
  46. // Encode
  47. let encoded = GetStatusCommand(podInfoType: .configuredAlerts)
  48. XCTAssertEqual("0e0101", encoded.data.hexadecimalString)
  49. // Decode
  50. let decoded = try GetStatusCommand(encodedData: Data(hexadecimalString: "0e0101")!)
  51. XCTAssertEqual(.configuredAlerts, decoded.podInfoType)
  52. } catch (let error) {
  53. XCTFail("message decoding threw error: \(error)")
  54. }
  55. }
  56. func testStatusRequestCommandFaultEvents() {
  57. // 0e 01 02
  58. do {
  59. // Encode
  60. let encoded = GetStatusCommand(podInfoType: .detailedStatus)
  61. XCTAssertEqual("0e0102", encoded.data.hexadecimalString)
  62. // Decode
  63. let decoded = try GetStatusCommand(encodedData: Data(hexadecimalString: "0e0102")!)
  64. XCTAssertEqual(.detailedStatus, decoded.podInfoType)
  65. } catch (let error) {
  66. XCTFail("message decoding threw error: \(error)")
  67. }
  68. }
  69. }