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

Add MessengerRestoreBackup.Result struct

parent 35da3a3d
No related branches found
No related tags found
2 merge requests!102Release 1.0.0,!100Messenger - restore from backup
...@@ -3,12 +3,25 @@ import XXClient ...@@ -3,12 +3,25 @@ import XXClient
import XCTestDynamicOverlay import XCTestDynamicOverlay
public struct MessengerRestoreBackup { public struct MessengerRestoreBackup {
public var run: (Data, String) throws -> BackupParams public struct Result: Equatable {
public init(
restoredParams: BackupParams,
restoredContacts: [Data]
) {
self.restoredParams = restoredParams
self.restoredContacts = restoredContacts
}
public var restoredParams: BackupParams
public var restoredContacts: [Data]
}
public var run: (Data, String) throws -> Result
public func callAsFunction( public func callAsFunction(
backupData: Data, backupData: Data,
backupPassphrase: String backupPassphrase: String
) throws -> BackupParams { ) throws -> Result {
try run(backupData, backupPassphrase) try run(backupData, backupPassphrase)
} }
} }
...@@ -59,7 +72,10 @@ extension MessengerRestoreBackup { ...@@ -59,7 +72,10 @@ extension MessengerRestoreBackup {
env.cMix.set(cMix) env.cMix.set(cMix)
env.e2e.set(e2e) env.e2e.set(e2e)
env.ud.set(ud) env.ud.set(ud)
return params return Result(
restoredParams: params,
restoredContacts: report.restoredContacts
)
} catch { } catch {
try? env.fileManager.removeDirectory(storageDir) try? env.fileManager.removeDirectory(storageDir)
throw error throw error
......
...@@ -9,13 +9,14 @@ final class MessengerRestoreBackupTests: XCTestCase { ...@@ -9,13 +9,14 @@ final class MessengerRestoreBackupTests: XCTestCase {
let backupPassphrase = "backup-passphrase" let backupPassphrase = "backup-passphrase"
let ndfData = "ndf-data".data(using: .utf8)! let ndfData = "ndf-data".data(using: .utf8)!
let password = "password".data(using: .utf8)! let password = "password".data(using: .utf8)!
let backupContacts: [Data] = (1...3).map { "contact-\($0)" }.map { $0.data(using: .utf8)! }
let backupParams = BackupParams( let backupParams = BackupParams(
username: "backup-username", username: "backup-username",
email: "backup-email", email: "backup-email",
phone: "backup-phone" phone: "backup-phone"
) )
let backupReport = BackupReport( let backupReport = BackupReport(
restoredContacts: [], restoredContacts: backupContacts,
params: String(data: try! JSONEncoder().encode(backupParams), encoding: .utf8)! params: String(data: try! JSONEncoder().encode(backupParams), encoding: .utf8)!
) )
let cMixParams = "cmix-params".data(using: .utf8)! let cMixParams = "cmix-params".data(using: .utf8)!
...@@ -152,7 +153,10 @@ final class MessengerRestoreBackupTests: XCTestCase { ...@@ -152,7 +153,10 @@ final class MessengerRestoreBackupTests: XCTestCase {
.didSetUD, .didSetUD,
]) ])
XCTAssertNoDifference(result, backupParams) XCTAssertNoDifference(result, MessengerRestoreBackup.Result(
restoredParams: backupParams,
restoredContacts: backupContacts
))
} }
func testDownloadNdfFailure() { func testDownloadNdfFailure() {
......
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