| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- //
- // HKDeviceCodableTests.swift
- // LoopKitTests
- //
- // Created by Rick Pasetto on 8/6/21.
- // Copyright © 2021 LoopKit Authors. All rights reserved.
- //
- import HealthKit
- import XCTest
- @testable import LoopKit
- class HKDeviceCodableTests: XCTestCase {
- let device1 = HKDevice(name: "NAME1", manufacturer: "MANUFACTURER", model: "MODEL", hardwareVersion: "HARDWAREVERSION", firmwareVersion: "FIRMWAREVERSION", softwareVersion: "SOFTWAREVERSION", localIdentifier: "LOCALIDENTIFIER", udiDeviceIdentifier: "UDIDEVICEIDENTIFIER")
- let device1JSON = """
- {
- "firmwareVersion" : "FIRMWAREVERSION",
- "hardwareVersion" : "HARDWAREVERSION",
- "localIdentifier" : "LOCALIDENTIFIER",
- "manufacturer" : "MANUFACTURER",
- "model" : "MODEL",
- "name" : "NAME1",
- "softwareVersion" : "SOFTWAREVERSION",
- "udiDeviceIdentifier" : "UDIDEVICEIDENTIFIER"
- }
- """
- let device2 = HKDevice(name: "NAME2", manufacturer: "MANUFACTURER", model: "MODEL", hardwareVersion: "HARDWAREVERSION", firmwareVersion: "FIRMWAREVERSION", softwareVersion: "SOFTWAREVERSION", localIdentifier: "LOCALIDENTIFIER", udiDeviceIdentifier: "UDIDEVICEIDENTIFIER")
- let device2JSON = """
- {
- "firmwareVersion" : "FIRMWAREVERSION",
- "hardwareVersion" : "HARDWAREVERSION",
- "localIdentifier" : "LOCALIDENTIFIER",
- "manufacturer" : "MANUFACTURER",
- "model" : "MODEL",
- "name" : "NAME2",
- "softwareVersion" : "SOFTWAREVERSION",
- "udiDeviceIdentifier" : "UDIDEVICEIDENTIFIER"
- }
- """
- let device3 = HKDevice(name: "NAME3", manufacturer: nil, model: nil, hardwareVersion: nil, firmwareVersion: nil, softwareVersion: nil, localIdentifier: nil, udiDeviceIdentifier: nil)
- let device3JSON = """
- {
- "name" : "NAME3"
- }
- """
- let jsonEncoder: JSONEncoder = {
- let val = JSONEncoder()
- val.outputFormatting = [.prettyPrinted, .sortedKeys]
- return val
- }()
- let plistEncoder: PropertyListEncoder = {
- let val = PropertyListEncoder()
- val.outputFormat = .xml
- return val
- }()
- func testEncode() throws {
- XCTAssertEqual(device1JSON, String(data: try jsonEncoder.encode(device1), encoding: .utf8))
- XCTAssertEqual(device2JSON, String(data: try jsonEncoder.encode(device2), encoding: .utf8))
- XCTAssertEqual(device3JSON, String(data: try jsonEncoder.encode(device3), encoding: .utf8))
- XCTAssertNotEqual(device2JSON, String(data: try jsonEncoder.encode(device1), encoding: .utf8))
- }
- func testDecodeJSON() throws {
- XCTAssertEqual(device1, try HKDevice(from: device1JSON.data(using: .utf8)!))
- XCTAssertEqual(device2, try HKDevice(from: device2JSON.data(using: .utf8)!))
- XCTAssertEqual(device3, try HKDevice(from: device3JSON.data(using: .utf8)!))
- }
-
- func testDecodePropertyList() throws {
- XCTAssertEqual(device1, try HKDevice(from: plistEncoder.encode(device1)))
- XCTAssertEqual(device2, try HKDevice(from: plistEncoder.encode(device2)))
- XCTAssertEqual(device3, try HKDevice(from: plistEncoder.encode(device3)))
- XCTAssertNotEqual(device3, try HKDevice(from: plistEncoder.encode(device1)))
- }
-
- func testDecodeInvalidData() throws {
- XCTAssertThrowsError(try HKDevice(from: Data()))
- }
- }
|