Skip to content
Snippets Groups Projects
Commit 7aeba636 authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Update BackupReport model

parent c9c4efcd
No related branches found
No related tags found
2 merge requests!102Release 1.0.0,!18Update Bindings
......@@ -2,14 +2,14 @@ import Foundation
public struct BackupReport: Equatable {
public init(
ids: Data,
ids: [Data],
params: Data
) {
self.ids = ids
self.params = params
}
public var ids: Data
public var ids: [Data]
public var params: Data
}
......@@ -26,4 +26,18 @@ extension BackupReport: Codable {
public func encode() throws -> Data {
try JSONEncoder().encode(self)
}
public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
let idsData = try container.decode(Data.self, forKey: .ids)
ids = try JSONDecoder().decode([Data].self, from: idsData)
params = try container.decode(Data.self, forKey: .params)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
let idsData = try JSONEncoder().encode(ids)
try container.encode(idsData, forKey: .ids)
try container.encode(params, forKey: .params)
}
}
......@@ -4,7 +4,12 @@ import XCTest
final class BackupReportTests: XCTestCase {
func testCoding() throws {
let idsB64 = "WyJPRHRRTTA4ZERpV3lXaE0wWUhjanRHWnZQcHRSa1JOZ1pHR2FkTG10dE9BRCJd"
let ids: [Data] = [
"id1".data(using: .utf8)!,
"id2".data(using: .utf8)!,
"id3".data(using: .utf8)!,
]
let idsB64 = try JSONEncoder().encode(ids).base64EncodedString()
let paramsB64 = "cGFyYW1z"
let jsonString = """
{
......@@ -16,7 +21,7 @@ final class BackupReportTests: XCTestCase {
let model = try BackupReport.decode(jsonData)
XCTAssertNoDifference(model, BackupReport(
ids: Data(base64Encoded: idsB64)!,
ids: ids,
params: Data(base64Encoded: paramsB64)!
))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment