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

Add ReceivedFile model

parent 526642a5
No related branches found
No related tags found
2 merge requests!102Release 1.0.0,!18Update Bindings
import Foundation
public struct ReceivedFile: Equatable {
public init(
transferId: Data,
senderId: Data,
preview: Data,
name: String,
type: String,
size: Int
) {
self.transferId = transferId
self.senderId = senderId
self.preview = preview
self.name = name
self.type = type
self.size = size
}
public var transferId: Data
public var senderId: Data
public var preview: Data
public var name: String
public var type: String
public var size: Int
}
extension ReceivedFile: Codable {
enum CodingKeys: String, CodingKey {
case transferId = "TransferID"
case senderId = "SenderID"
case preview = "Preview"
case name = "Name"
case type = "Type"
case size = "Size"
}
public static func decode(_ data: Data) throws -> Self {
try JSONDecoder().decode(Self.self, from: data)
}
public func encode() throws -> Data {
try JSONEncoder().encode(self)
}
}
import CustomDump
import XCTest
@testable import ElixxirDAppsSDK
final class ReceivedFileTests: XCTestCase {
func testCoding() throws {
let transferIdB64 = "B4Z9cwU18beRoGbk5xBjbcd5Ryi9ZUFA2UBvi8FOHWo="
let senderIdB64 = "emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD"
let previewB64 = "aXQncyBtZSBhIHByZXZpZXc="
let name = "testfile.txt"
let type = "text file"
let size: Int = 2048
let jsonString = """
{
"TransferID": "\(transferIdB64)",
"SenderID": "\(senderIdB64)",
"Preview": "\(previewB64)",
"Name": "\(name)",
"Type": "\(type)",
"Size": \(size)
}
"""
let jsonData = jsonString.data(using: .utf8)!
let receivedFile = try ReceivedFile.decode(jsonData)
XCTAssertNoDifference(receivedFile, ReceivedFile(
transferId: Data(base64Encoded: transferIdB64)!,
senderId: Data(base64Encoded: senderIdB64)!,
preview: Data(base64Encoded: previewB64)!,
name: name,
type: type,
size: size
))
let encodedReceivedFile = try receivedFile.encode()
let decodedReceivedFile = try ReceivedFile.decode(encodedReceivedFile)
XCTAssertNoDifference(decodedReceivedFile, receivedFile)
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment