| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- //
- // MySentryPumpStatusMessageBodyTests.swift
- // Naterade
- //
- // Created by Nathan Racklyeft on 9/6/15.
- // Copyright © 2015 Nathan Racklyeft. All rights reserved.
- //
- import XCTest
- @testable import MinimedKit
- class MySentryPumpStatusMessageBodyTests: XCTestCase {
-
- func testValidPumpStatusMessage() {
- let message = PumpMessage(rxData: Data(hexadecimalString: "a2594040042f511727070f09050184850000cd010105b03e0a0a1a009d030000711726000f09050000")!)
-
- if let message = message {
- XCTAssertTrue(message.messageBody is MySentryPumpStatusMessageBody)
- } else {
- XCTFail("\(String(describing: message)) is nil")
- }
- }
-
- func testGlucoseTrendFlat() {
- XCTAssertEqual(GlucoseTrend.flat, GlucoseTrend(byte: 0b00000000))
- XCTAssertEqual(GlucoseTrend.flat, GlucoseTrend(byte: 0b11110001))
- XCTAssertEqual(GlucoseTrend.flat, GlucoseTrend(byte: 0b11110001))
- XCTAssertEqual(GlucoseTrend.flat, GlucoseTrend(byte: 0b000))
- XCTAssertEqual(GlucoseTrend.flat, GlucoseTrend(byte: 0x51))
- }
-
- func testMidnightSensor() {
- let message = PumpMessage(rxData: Data(hexadecimalString: "a2594040049c510003310f090501393700025b0101068d262208150034000000700003000f09050000")!)!
-
- let body = message.messageBody as! MySentryPumpStatusMessageBody
-
- switch body.glucose {
- case .active(glucose: let glucose):
- XCTAssertEqual(114, glucose)
- default:
- XCTFail("\(body.glucose) is not .Active")
- }
-
- switch body.previousGlucose {
- case .active(glucose: let glucose):
- XCTAssertEqual(110, glucose)
- default:
- XCTFail("\(body.previousGlucose) is not .Active")
- }
-
- var dateComponents = DateComponents()
- dateComponents.calendar = Calendar(identifier: Calendar.Identifier.gregorian)
- dateComponents.year = 2015
- dateComponents.month = 9
- dateComponents.day = 5
- dateComponents.hour = 0
- dateComponents.minute = 3
- dateComponents.second = 49
-
- XCTAssertEqual(dateComponents, body.pumpDateComponents)
-
- dateComponents.second = 0
-
- XCTAssertEqual(dateComponents, body.glucoseDateComponents)
-
- XCTAssertEqual(GlucoseTrend.flat, body.glucoseTrend)
- }
-
- func testActiveSensor() {
- let message = PumpMessage(rxData: Data(hexadecimalString: "a2594040042f511727070f09050184850000cd010105b03e0a0a1a009d030000711726000f09050000")!)!
-
- let body = message.messageBody as! MySentryPumpStatusMessageBody
-
- switch body.glucose {
- case .active(glucose: let glucose):
- XCTAssertEqual(265, glucose)
- default:
- XCTFail("\(body.glucose) is not .Active")
- }
-
- switch body.previousGlucose {
- case .active(glucose: let glucose):
- XCTAssertEqual(267, glucose)
- default:
- XCTFail("\(body.previousGlucose) is not .Active")
- }
-
- var dateComponents = DateComponents()
- dateComponents.calendar = Calendar(identifier: Calendar.Identifier.gregorian)
- dateComponents.year = 2015
- dateComponents.month = 9
- dateComponents.day = 5
- dateComponents.hour = 23
- dateComponents.minute = 39
- dateComponents.second = 7
-
- XCTAssertEqual(dateComponents, body.pumpDateComponents)
-
- dateComponents.minute = 38
- dateComponents.second = 0
-
- XCTAssertEqual(dateComponents, body.glucoseDateComponents)
-
- XCTAssertEqual(GlucoseTrend.flat, body.glucoseTrend)
- }
-
- func testSensorEndEmptyReservoir() {
- let message = PumpMessage(rxData: Data(hexadecimalString: "a259404004fb511205000f090601050502000004000000ff00ffff0040000000711205000f09060000")!)!
-
- let body = message.messageBody as! MySentryPumpStatusMessageBody
-
- switch body.glucose {
- case .ended:
- break
- default:
- XCTFail("\(body.glucose) is not .Ended")
- }
-
- switch body.previousGlucose {
- case .ended:
- break
- default:
- XCTFail("\(body.previousGlucose) is not .Ended")
- }
-
- var dateComponents = DateComponents()
- dateComponents.calendar = Calendar(identifier: Calendar.Identifier.gregorian)
- dateComponents.year = 2015
- dateComponents.month = 9
- dateComponents.day = 6
- dateComponents.hour = 18
- dateComponents.minute = 5
- dateComponents.second = 0
-
- XCTAssertEqual(dateComponents, body.pumpDateComponents)
- XCTAssertEqual(dateComponents, body.glucoseDateComponents)
-
- XCTAssertEqual(GlucoseTrend.flat, body.glucoseTrend)
- }
-
- func testSensorOffEmptyReservoir() {
- let message = PumpMessage(rxData: Data(hexadecimalString: "a259404004ff501219000f09060100000000000400000000000000005e000000720000000000000000")!)!
-
- let body = message.messageBody as! MySentryPumpStatusMessageBody
-
- switch body.glucose {
- case .off:
- break
- default:
- XCTFail("\(body.glucose) is not .Off")
- }
-
- switch body.previousGlucose {
- case .off:
- break
- default:
- XCTFail("\(body.previousGlucose) is not .Off")
- }
-
- var dateComponents = DateComponents()
- dateComponents.calendar = Calendar(identifier: Calendar.Identifier.gregorian)
- dateComponents.year = 2015
- dateComponents.month = 9
- dateComponents.day = 6
- dateComponents.hour = 18
- dateComponents.minute = 25
- dateComponents.second = 0
-
- XCTAssertEqual(dateComponents, body.pumpDateComponents)
- XCTAssertNil(body.glucoseDateComponents)
-
- XCTAssertEqual(GlucoseTrend.flat, body.glucoseTrend)
- }
-
- func testSensorOffEmptyReservoirSuspended() {
- let message = PumpMessage(rxData: Data(hexadecimalString: "a25940400401501223000f090601000000000004000000000000000059000000720000000000000000")!)!
-
- let body = message.messageBody as! MySentryPumpStatusMessageBody
-
- switch body.glucose {
- case .off:
- break
- default:
- XCTFail("\(body.glucose) is not .Off")
- }
-
- switch body.previousGlucose {
- case .off:
- break
- default:
- XCTFail("\(body.previousGlucose) is not .Off")
- }
-
- var dateComponents = DateComponents()
- dateComponents.calendar = Calendar(identifier: Calendar.Identifier.gregorian)
- dateComponents.year = 2015
- dateComponents.month = 9
- dateComponents.day = 6
- dateComponents.hour = 18
- dateComponents.minute = 35
- dateComponents.second = 0
-
- XCTAssertEqual(dateComponents, body.pumpDateComponents)
- XCTAssertNil(body.glucoseDateComponents)
-
- XCTAssertEqual(GlucoseTrend.flat, body.glucoseTrend)
- }
-
- func testClockType24Hour() {
- let message = PumpMessage(rxData: Data(hexadecimalString: "a295099004b6d5971f1510070a013f3a0002dd020105bd08880825000502000755171e0010070a0000")!)!
-
- let body = message.messageBody as! MySentryPumpStatusMessageBody
-
- var dateComponents = DateComponents()
- dateComponents.calendar = Calendar(identifier: Calendar.Identifier.gregorian)
- dateComponents.year = 2016
- dateComponents.month = 7
- dateComponents.day = 10
- dateComponents.hour = 23
- dateComponents.minute = 31
- dateComponents.second = 21
-
- XCTAssertEqual(dateComponents, body.pumpDateComponents)
-
- var glucoseDateComponents = DateComponents()
- glucoseDateComponents.calendar = Calendar(identifier: Calendar.Identifier.gregorian)
- glucoseDateComponents.year = 2016
- glucoseDateComponents.month = 7
- glucoseDateComponents.day = 10
- glucoseDateComponents.hour = 23
- glucoseDateComponents.minute = 30
- glucoseDateComponents.second = 0
- XCTAssertEqual(glucoseDateComponents, body.glucoseDateComponents)
-
- XCTAssertEqual(ClockType.twentyFourHour, body.clockType)
- }
-
- }
|