import CustomDump import XCTest @testable import XXClient final class ProgressTests: XCTestCase { func testCoding() throws { let completed = false let transmitted: Int = 128 let total: Int = 2048 let jsonString = """ { "Completed": \(completed), "Transmitted": \(transmitted), "Total": \(total), "Err": null } """ let jsonData = jsonString.data(using: .utf8)! let model = try Progress.decode(jsonData) XCTAssertNoDifference(model, Progress( completed: completed, transmitted: transmitted, total: total, error: nil )) let encodedModel = try model.encode() let decodedModel = try Progress.decode(encodedModel) XCTAssertNoDifference(decodedModel, model) } func testDecodingProgressWithError() throws { let completed = false let transmitted: Int = 128 let total: Int = 2048 let error = "something went wrong" let jsonString = """ { "Completed": \(completed), "Transmitted": \(transmitted), "Total": \(total), "Err": "\(error)" } """ let jsonData = jsonString.data(using: .utf8)! let model = try Progress.decode(jsonData) XCTAssertNoDifference(model, Progress( completed: completed, transmitted: transmitted, total: total, error: error )) } }