StatusTests.swift 2.7 KB

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