NewGlucoseSampleTests.swift 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. //
  2. // NewGlucoseSampleTests.swift
  3. // LoopKitTests
  4. //
  5. // Created by Darin Krauss on 9/7/21.
  6. // Copyright © 2021 LoopKit Authors. All rights reserved.
  7. //
  8. import XCTest
  9. import HealthKit
  10. @testable import LoopKit
  11. class NewGlucoseSampleTests: XCTestCase {
  12. func testQuantitySample() {
  13. let date = Date()
  14. let quantity = HKQuantity(unit: .milligramsPerDeciliter, doubleValue: 145.3)
  15. let trendRate = HKQuantity(unit: .milligramsPerDeciliterPerMinute, doubleValue: 1.1)
  16. let device = HKDevice(name: "Device Name",
  17. manufacturer: "Device Manufacturer",
  18. model: "Device Model",
  19. hardwareVersion: "Device Hardware Version",
  20. firmwareVersion: "Device Firmware Version",
  21. softwareVersion: "Device Software Version",
  22. localIdentifier: "Device Local Identifier",
  23. udiDeviceIdentifier: "Device UDI Device Identifier")
  24. let syncIdentifier = UUID().uuidString
  25. let newGlucoseSample = NewGlucoseSample(date: date,
  26. quantity: quantity,
  27. condition: .aboveRange,
  28. trend: .up,
  29. trendRate: trendRate,
  30. isDisplayOnly: false,
  31. wasUserEntered: true,
  32. syncIdentifier: syncIdentifier,
  33. syncVersion: 3,
  34. device: device)
  35. let quantitySample = newGlucoseSample.quantitySample
  36. XCTAssertEqual(quantitySample.quantityType, HKQuantityType.quantityType(forIdentifier: .bloodGlucose)!)
  37. XCTAssertEqual(quantitySample.quantity, quantity)
  38. XCTAssertEqual(quantitySample.startDate, date)
  39. XCTAssertEqual(quantitySample.endDate, date)
  40. XCTAssertEqual(quantitySample.device, device)
  41. XCTAssertEqual(quantitySample.metadata?[HKMetadataKeySyncIdentifier] as? String, syncIdentifier)
  42. XCTAssertEqual(quantitySample.metadata?[HKMetadataKeySyncVersion] as? Int, 3)
  43. XCTAssertEqual(quantitySample.metadata?[MetadataKeyGlucoseCondition] as? String, "aboveRange")
  44. XCTAssertEqual(quantitySample.metadata?[MetadataKeyGlucoseTrend] as? String, GlucoseTrend.up.symbol)
  45. XCTAssertEqual(quantitySample.metadata?[MetadataKeyGlucoseTrendRateUnit] as? String, HKUnit.milligramsPerDeciliterPerMinute.unitString)
  46. XCTAssertEqual(quantitySample.metadata?[MetadataKeyGlucoseTrendRateValue] as? Double, 1.1)
  47. XCTAssertNil(quantitySample.metadata?[MetadataKeyGlucoseIsDisplayOnly])
  48. XCTAssertEqual(quantitySample.metadata?[HKMetadataKeyWasUserEntered] as? Bool, true)
  49. }
  50. }