|
| 1 | +import XCTest |
| 2 | +@testable import DeviceIdentificator |
| 3 | + |
| 4 | +class NewModelsTests: XCTestCase { |
| 5 | + |
| 6 | + // MARK: - iPhone Tests |
| 7 | + |
| 8 | + func test_iPhone17_properties() { |
| 9 | + let model: DeviceModel.IPhoneModel = .iPhone17 |
| 10 | + let device = DeviceModel.iPhone(model) |
| 11 | + XCTAssertEqual(device.name, "iPhone 17") |
| 12 | + XCTAssertEqual(device.deviceIdentifier, "iPhone18,3") |
| 13 | + XCTAssertEqual(model.processor, .appleA19) |
| 14 | + XCTAssertEqual(DeviceModel(deviceIdentifier: "iPhone18,3"), device) |
| 15 | + } |
| 16 | + |
| 17 | + func test_iPhone17Pro_properties() { |
| 18 | + let model: DeviceModel.IPhoneModel = .iPhone17Pro |
| 19 | + let device = DeviceModel.iPhone(model) |
| 20 | + XCTAssertEqual(device.name, "iPhone 17 Pro") |
| 21 | + XCTAssertEqual(device.deviceIdentifier, "iPhone18,1") |
| 22 | + XCTAssertEqual(model.processor, .appleA19Pro) |
| 23 | + XCTAssertEqual(DeviceModel(deviceIdentifier: "iPhone18,1"), device) |
| 24 | + } |
| 25 | + |
| 26 | + func test_iPhone17ProMax_properties() { |
| 27 | + let model: DeviceModel.IPhoneModel = .iPhone17ProMax |
| 28 | + let device = DeviceModel.iPhone(model) |
| 29 | + XCTAssertEqual(device.name, "iPhone 17 Pro Max") |
| 30 | + XCTAssertEqual(device.deviceIdentifier, "iPhone18,2") |
| 31 | + XCTAssertEqual(model.processor, .appleA19Pro) |
| 32 | + XCTAssertEqual(DeviceModel(deviceIdentifier: "iPhone18,2"), device) |
| 33 | + } |
| 34 | + |
| 35 | + func test_iPhoneAir_properties() { |
| 36 | + let model: DeviceModel.IPhoneModel = .iPhoneAir |
| 37 | + let device = DeviceModel.iPhone(model) |
| 38 | + XCTAssertEqual(device.name, "iPhone Air") |
| 39 | + XCTAssertEqual(device.deviceIdentifier, "iPhone18,4") |
| 40 | + XCTAssertEqual(model.processor, .appleA19) |
| 41 | + XCTAssertEqual(DeviceModel(deviceIdentifier: "iPhone18,4"), device) |
| 42 | + } |
| 43 | + |
| 44 | + // MARK: - iPad Tests |
| 45 | + |
| 46 | + func test_iPadGen11_properties() { |
| 47 | + let wifiModel: DeviceModel.IPadModel = .gen11Wifi |
| 48 | + let wifiDevice = DeviceModel.iPad(wifiModel) |
| 49 | + XCTAssertEqual(wifiDevice.name, "iPad 11G (Wifi)") |
| 50 | + XCTAssertEqual(wifiDevice.deviceIdentifier, "iPad15,7") |
| 51 | + XCTAssertEqual(DeviceModel(deviceIdentifier: "iPad15,7"), wifiDevice) |
| 52 | + |
| 53 | + let cellularModel: DeviceModel.IPadModel = .gen11Cellular |
| 54 | + let cellularDevice = DeviceModel.iPad(cellularModel) |
| 55 | + XCTAssertEqual(cellularDevice.name, "iPad 11G (Cellular)") |
| 56 | + XCTAssertEqual(cellularDevice.deviceIdentifier, "iPad15,8") |
| 57 | + XCTAssertEqual(DeviceModel(deviceIdentifier: "iPad15,8"), cellularDevice) |
| 58 | + } |
| 59 | + |
| 60 | + func test_iPadAirM3_properties() { |
| 61 | + let air11Wifi: DeviceModel.IPadModel = .air11InchM3Wifi |
| 62 | + let air11WifiDevice = DeviceModel.iPad(air11Wifi) |
| 63 | + XCTAssertEqual(air11WifiDevice.name, "iPad Air M3 11\" (Wifi)") |
| 64 | + XCTAssertEqual(air11WifiDevice.deviceIdentifier, "iPad15,3") |
| 65 | + XCTAssertEqual(DeviceModel(deviceIdentifier: "iPad15,3"), air11WifiDevice) |
| 66 | + |
| 67 | + let air11Cellular: DeviceModel.IPadModel = .air11InchM3Cellular |
| 68 | + let air11CellularDevice = DeviceModel.iPad(air11Cellular) |
| 69 | + XCTAssertEqual(air11CellularDevice.name, "iPad Air M3 11\" (Cellular)") |
| 70 | + XCTAssertEqual(air11CellularDevice.deviceIdentifier, "iPad15,4") |
| 71 | + XCTAssertEqual(DeviceModel(deviceIdentifier: "iPad15,4"), air11CellularDevice) |
| 72 | + |
| 73 | + let air13Wifi: DeviceModel.IPadModel = .air13InchM3Wifi |
| 74 | + let air13WifiDevice = DeviceModel.iPad(air13Wifi) |
| 75 | + XCTAssertEqual(air13WifiDevice.name, "iPad Air M3 13\" (Wifi)") |
| 76 | + XCTAssertEqual(air13WifiDevice.deviceIdentifier, "iPad15,5") |
| 77 | + XCTAssertEqual(DeviceModel(deviceIdentifier: "iPad15,5"), air13WifiDevice) |
| 78 | + |
| 79 | + let air13Cellular: DeviceModel.IPadModel = .air13InchM3Cellular |
| 80 | + let air13CellularDevice = DeviceModel.iPad(air13Cellular) |
| 81 | + XCTAssertEqual(air13CellularDevice.name, "iPad Air M3 13\" (Cellular)") |
| 82 | + XCTAssertEqual(air13CellularDevice.deviceIdentifier, "iPad15,6") |
| 83 | + XCTAssertEqual(DeviceModel(deviceIdentifier: "iPad15,6"), air13CellularDevice) |
| 84 | + } |
| 85 | + |
| 86 | + func test_iPadMiniA17Pro_properties() { |
| 87 | + let wifiModel: DeviceModel.IPadModel = .miniA17ProWifi |
| 88 | + let wifiDevice = DeviceModel.iPad(wifiModel) |
| 89 | + XCTAssertEqual(wifiDevice.name, "iPad Mini A17 Pro (Wifi)") |
| 90 | + XCTAssertEqual(wifiDevice.deviceIdentifier, "iPad16,1") |
| 91 | + XCTAssertEqual(DeviceModel(deviceIdentifier: "iPad16,1"), wifiDevice) |
| 92 | + |
| 93 | + let cellularModel: DeviceModel.IPadModel = .miniA17ProCellular |
| 94 | + let cellularDevice = DeviceModel.iPad(cellularModel) |
| 95 | + XCTAssertEqual(cellularDevice.name, "iPad Mini A17 Pro (Cellular)") |
| 96 | + XCTAssertEqual(cellularDevice.deviceIdentifier, "iPad16,2") |
| 97 | + XCTAssertEqual(DeviceModel(deviceIdentifier: "iPad16,2"), cellularDevice) |
| 98 | + } |
| 99 | + |
| 100 | + // MARK: - Apple Watch Tests |
| 101 | + |
| 102 | + func test_AppleWatchSeries10_properties() { |
| 103 | + let gps42mm = DeviceModel.appleWatch(.series10_42mmGPS) |
| 104 | + XCTAssertEqual(gps42mm.name, "Apple Watch Series 10 42mm") |
| 105 | + XCTAssertEqual(gps42mm.deviceIdentifier, "Watch7,8") |
| 106 | + XCTAssertEqual(DeviceModel.AppleWatchModel.series10_42mmGPS.processor, .appleS10) |
| 107 | + XCTAssertEqual(DeviceModel(deviceIdentifier: "Watch7,8"), gps42mm) |
| 108 | + |
| 109 | + let cellular42mm = DeviceModel.appleWatch(.series10_42mmCellular) |
| 110 | + XCTAssertEqual(cellular42mm.name, "Apple Watch Series 10 42mm") |
| 111 | + XCTAssertEqual(cellular42mm.deviceIdentifier, "Watch7,10") |
| 112 | + XCTAssertEqual(DeviceModel.AppleWatchModel.series10_42mmCellular.processor, .appleS10) |
| 113 | + XCTAssertEqual(DeviceModel(deviceIdentifier: "Watch7,10"), cellular42mm) |
| 114 | + } |
| 115 | + |
| 116 | + func test_AppleWatchUltra3_properties() { |
| 117 | + let model = DeviceModel.appleWatch(.ultra3) |
| 118 | + XCTAssertEqual(model.name, "Apple Watch Ultra 3") |
| 119 | + XCTAssertEqual(model.deviceIdentifier, "Watch7,12") |
| 120 | + XCTAssertEqual(DeviceModel.AppleWatchModel.ultra3.processor, .appleS10) |
| 121 | + XCTAssertEqual(DeviceModel(deviceIdentifier: "Watch7,12"), model) |
| 122 | + } |
| 123 | + |
| 124 | + func test_AppleWatchSeries11_properties() { |
| 125 | + let gps42mm = DeviceModel.appleWatch(.series11_42mmGPS) |
| 126 | + XCTAssertEqual(gps42mm.name, "Apple Watch Series 11 42mm") |
| 127 | + XCTAssertEqual(gps42mm.deviceIdentifier, "Watch7,17") |
| 128 | + XCTAssertEqual(DeviceModel.AppleWatchModel.series11_42mmGPS.processor, .appleS10) |
| 129 | + XCTAssertEqual(DeviceModel(deviceIdentifier: "Watch7,17"), gps42mm) |
| 130 | + |
| 131 | + let cellular42mm = DeviceModel.appleWatch(.series11_42mmCellular) |
| 132 | + XCTAssertEqual(cellular42mm.name, "Apple Watch Series 11 42mm") |
| 133 | + XCTAssertEqual(cellular42mm.deviceIdentifier, "Watch7,19") |
| 134 | + XCTAssertEqual(DeviceModel.AppleWatchModel.series11_42mmCellular.processor, .appleS10) |
| 135 | + XCTAssertEqual(DeviceModel(deviceIdentifier: "Watch7,19"), cellular42mm) |
| 136 | + } |
| 137 | +} |
0 commit comments