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

Merge branch 'feature/ud-environment' into 'development'

User Discovery Environment

See merge request elixxir/elixxir-dapps-sdk-swift!118
parents 7b37618b 3600ffa5
No related branches found
No related tags found
2 merge requests!118User Discovery Environment,!102Release 1.0.0
Showing
with 134 additions and 88 deletions
......@@ -36,10 +36,10 @@
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForRunning = "NO"
buildForProfiling = "NO"
buildForArchiving = "NO"
buildForAnalyzing = "YES">
buildForAnalyzing = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "XXClientTests"
......@@ -50,10 +50,10 @@
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForRunning = "NO"
buildForProfiling = "NO"
buildForArchiving = "NO"
buildForAnalyzing = "YES">
buildForAnalyzing = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "XXMessengerClientTests"
......
......@@ -10,6 +10,7 @@ public struct E2E {
public var getUdAddressFromNdf: E2EGetUdAddressFromNdf
public var getUdCertFromNdf: E2EGetUdCertFromNdf
public var getUdContactFromNdf: E2EGetUdContactFromNdf
public var getUdEnvironmentFromNdf: E2EGetUdEnvironmentFromNdf
public var payloadSize: E2EPayloadSize
public var partitionSize: E2EPartitionSize
public var addPartnerCallback: E2EAddPartnerCallback
......@@ -40,6 +41,7 @@ extension E2E {
getUdAddressFromNdf: .live(bindingsE2E),
getUdCertFromNdf: .live(bindingsE2E),
getUdContactFromNdf: .live(bindingsE2E),
getUdEnvironmentFromNdf: .live(bindingsE2E),
payloadSize: .live(bindingsE2E),
partitionSize: .live(bindingsE2E),
addPartnerCallback: .live(bindingsE2E),
......@@ -71,6 +73,7 @@ extension E2E {
getUdAddressFromNdf: .unimplemented,
getUdCertFromNdf: .unimplemented,
getUdContactFromNdf: .unimplemented,
getUdEnvironmentFromNdf: .unimplemented,
payloadSize: .unimplemented,
partitionSize: .unimplemented,
addPartnerCallback: .unimplemented,
......
import Bindings
import XCTestDynamicOverlay
public struct E2EGetUdEnvironmentFromNdf {
public var run: () throws -> UDEnvironment
public func callAsFunction() throws -> UDEnvironment {
try run()
}
}
extension E2EGetUdEnvironmentFromNdf {
public static func live(_ bindingsE2E: BindingsE2e) -> E2EGetUdEnvironmentFromNdf {
E2EGetUdEnvironmentFromNdf {
UDEnvironment(
address: E2EGetUdAddressFromNdf.live(bindingsE2E)(),
cert: E2EGetUdCertFromNdf.live(bindingsE2E)(),
contact: try E2EGetUdContactFromNdf.live(bindingsE2E)()
)
}
}
}
extension E2EGetUdEnvironmentFromNdf {
public static let unimplemented = E2EGetUdEnvironmentFromNdf(
run: XCTUnimplemented("\(Self.self)")
)
}
......@@ -3,6 +3,20 @@ import XCTestDynamicOverlay
public struct NewOrLoadUd {
public struct Params: Equatable {
public init(
e2eId: Int,
username: String?,
registrationValidationSignature: Data?,
environment: UDEnvironment
) {
self.e2eId = e2eId
self.username = username
self.registrationValidationSignature = registrationValidationSignature
self.cert = environment.cert
self.contact = environment.contact
self.address = environment.address
}
public init(
e2eId: Int,
username: String?,
......
......@@ -3,6 +3,16 @@ import XCTestDynamicOverlay
public struct NewUdManagerFromBackup {
public struct Params: Equatable {
public init(
e2eId: Int,
environment: UDEnvironment
) {
self.e2eId = e2eId
self.cert = environment.cert
self.contact = environment.contact
self.address = environment.address
}
public init(
e2eId: Int,
cert: Data,
......
import Foundation
public struct UDEnvironment: Equatable, Codable {
public init(
address: String,
cert: Data,
contact: Data
) {
self.address = address
self.cert = cert
self.contact = contact
}
public var address: String
public var cert: Data
public var contact: Data
}
......@@ -28,9 +28,7 @@ extension MessengerLogIn {
e2eId: e2e.getId(),
username: nil,
registrationValidationSignature: nil,
cert: env.udCert ?? e2e.getUdCertFromNdf(),
contact: env.udContact ?? (try e2e.getUdContactFromNdf()),
address: env.udAddress ?? e2e.getUdAddressFromNdf()
environment: env.udEnvironment ?? (try e2e.getUdEnvironmentFromNdf())
),
follower: .init {
cMix.networkFollowerStatus()
......
......@@ -30,9 +30,7 @@ extension MessengerRegister {
e2eId: e2e.getId(),
username: username,
registrationValidationSignature: cMix.getReceptionRegistrationValidationSignature(),
cert: env.udCert ?? e2e.getUdCertFromNdf(),
contact: env.udContact ?? (try e2e.getUdContactFromNdf()),
address: env.udAddress ?? e2e.getUdAddressFromNdf()
environment: env.udEnvironment ?? (try e2e.getUdEnvironmentFromNdf())
),
follower: .init {
cMix.networkFollowerStatus()
......
......@@ -62,9 +62,7 @@ extension MessengerRestoreBackup {
let ud = try env.newUdManagerFromBackup(
params: NewUdManagerFromBackup.Params(
e2eId: e2e.getId(),
cert: env.udCert ?? e2e.getUdCertFromNdf(),
contact: env.udContact ?? (try e2e.getUdContactFromNdf()),
address: env.udAddress ?? e2e.getUdAddressFromNdf()
environment: env.udEnvironment ?? (try e2e.getUdEnvironmentFromNdf())
),
follower: UdNetworkStatus { cMix.networkFollowerStatus() }
)
......
......@@ -37,9 +37,7 @@ public struct MessengerEnvironment {
public var sleep: (TimeInterval) -> Void
public var storageDir: String
public var ud: Stored<UserDiscovery?>
public var udAddress: String?
public var udCert: Data?
public var udContact: Data?
public var udEnvironment: UDEnvironment?
}
extension MessengerEnvironment {
......@@ -85,9 +83,7 @@ extension MessengerEnvironment {
sleep: { Thread.sleep(forTimeInterval: $0) },
storageDir: MessengerEnvironment.defaultStorageDir,
ud: .inMemory(),
udAddress: nil,
udCert: nil,
udContact: nil
udEnvironment: nil
)
}
}
......@@ -128,8 +124,6 @@ extension MessengerEnvironment {
sleep: XCTUnimplemented("\(Self.self).sleep"),
storageDir: "unimplemented",
ud: .unimplemented(),
udAddress: nil,
udCert: nil,
udContact: nil
udEnvironment: nil
)
}
......@@ -11,10 +11,12 @@ final class MessengerLogInTests: XCTestCase {
let e2eId = 1234
let networkFollowerStatus: NetworkFollowerStatus = .stopped
let udCertFromNDF = "ndf-ud-cert".data(using: .utf8)!
let udContactFromNDF = "ndf-ud-contact".data(using: .utf8)!
let udAddressFromNDF = "ndf-ud-address"
let udEnvironmentFromNDF = UDEnvironment(
address: "ndf-ud-address",
cert: "ndf-ud-cert".data(using: .utf8)!,
contact: "ndf-ud-contact".data(using: .utf8)!
)
var env: MessengerEnvironment = .unimplemented
env.cMix.get = {
var cMix: CMix = .unimplemented
......@@ -24,15 +26,11 @@ final class MessengerLogInTests: XCTestCase {
env.e2e.get = {
var e2e: E2E = .unimplemented
e2e.getId.run = { e2eId }
e2e.getUdCertFromNdf.run = { udCertFromNDF }
e2e.getUdContactFromNdf.run = { udContactFromNDF }
e2e.getUdAddressFromNdf.run = { udAddressFromNDF }
e2e.getUdEnvironmentFromNdf.run = { udEnvironmentFromNDF }
return e2e
}
env.ud.set = { didSetUD.append($0) }
env.udCert = nil
env.udContact = nil
env.udAddress = nil
env.udEnvironment = nil
env.newOrLoadUd.run = { params, follower in
didNewOrLoadUDWithParams.append(params)
didNewOrLoadUDWithFollower.append(follower)
......@@ -45,9 +43,7 @@ final class MessengerLogInTests: XCTestCase {
e2eId: e2eId,
username: nil,
registrationValidationSignature: nil,
cert: udCertFromNDF,
contact: udContactFromNDF,
address: udAddressFromNDF
environment: udEnvironmentFromNDF
)])
XCTAssertEqual(didNewOrLoadUDWithFollower.count, 1)
XCTAssertEqual(
......@@ -62,9 +58,11 @@ final class MessengerLogInTests: XCTestCase {
var didSetUD: [UserDiscovery?] = []
let e2eId = 1234
let altUdCert = "alt-ud-cert".data(using: .utf8)!
let altUdContact = "alt-ud-contact".data(using: .utf8)!
let altUdAddress = "alt-ud-address"
let udEnvironment = UDEnvironment(
address: "alt-ud-address",
cert: "alt-ud-cert".data(using: .utf8)!,
contact: "alt-ud-contact".data(using: .utf8)!
)
var env: MessengerEnvironment = .unimplemented
env.cMix.get = {
......@@ -78,9 +76,7 @@ final class MessengerLogInTests: XCTestCase {
return e2e
}
env.ud.set = { didSetUD.append($0) }
env.udCert = altUdCert
env.udContact = altUdContact
env.udAddress = altUdAddress
env.udEnvironment = udEnvironment
env.newOrLoadUd.run = { params, _ in
didNewOrLoadUDWithParams.append(params)
return .unimplemented
......@@ -92,9 +88,7 @@ final class MessengerLogInTests: XCTestCase {
e2eId: e2eId,
username: nil,
registrationValidationSignature: nil,
cert: altUdCert,
contact: altUdContact,
address: altUdAddress
environment: udEnvironment
)])
XCTAssertEqual(didSetUD.compactMap { $0 }.count, 1)
}
......@@ -139,12 +133,10 @@ final class MessengerLogInTests: XCTestCase {
env.e2e.get = {
var e2e: E2E = .unimplemented
e2e.getId.run = { 1234 }
e2e.getUdCertFromNdf.run = { "ndf-ud-cert".data(using: .utf8)! }
e2e.getUdContactFromNdf.run = { throw error }
e2e.getUdEnvironmentFromNdf.run = { throw error }
return e2e
}
env.udCert = nil
env.udContact = nil
env.udEnvironment = nil
let logIn: MessengerLogIn = .live(env)
XCTAssertThrowsError(try logIn()) { err in
......@@ -167,9 +159,11 @@ final class MessengerLogInTests: XCTestCase {
e2e.getId.run = { 1234 }
return e2e
}
env.udCert = "ud-cert".data(using: .utf8)!
env.udContact = "ud-contact".data(using: .utf8)!
env.udAddress = "ud-address"
env.udEnvironment = UDEnvironment(
address: "ud-address",
cert: "ud-cert".data(using: .utf8)!,
contact: "ud-contact".data(using: .utf8)!
)
env.newOrLoadUd.run = { _, _ in throw error }
let logIn: MessengerLogIn = .live(env)
......
......@@ -12,9 +12,11 @@ final class MessengerRegisterTests: XCTestCase {
let e2eId = 1234
let networkFollowerStatus: NetworkFollowerStatus = .stopped
let registrationSignature = "registration-signature".data(using: .utf8)!
let udCertFromNDF = "ndf-ud-cert".data(using: .utf8)!
let udContactFromNDF = "ndf-ud-contact".data(using: .utf8)!
let udAddressFromNDF = "ndf-ud-address"
let udEnvironmentFromNDF = UDEnvironment(
address: "ndf-ud-address",
cert: "ndf-ud-cert".data(using: .utf8)!,
contact: "ndf-ud-contact".data(using: .utf8)!
)
let username = "new-user-name"
var env: MessengerEnvironment = .unimplemented
......@@ -29,15 +31,11 @@ final class MessengerRegisterTests: XCTestCase {
env.e2e.get = {
var e2e: E2E = .unimplemented
e2e.getId.run = { e2eId }
e2e.getUdCertFromNdf.run = { udCertFromNDF }
e2e.getUdContactFromNdf.run = { udContactFromNDF }
e2e.getUdAddressFromNdf.run = { udAddressFromNDF }
e2e.getUdEnvironmentFromNdf.run = { udEnvironmentFromNDF }
return e2e
}
env.ud.set = { didSetUD.append($0) }
env.udCert = nil
env.udContact = nil
env.udAddress = nil
env.udEnvironment = nil
env.newOrLoadUd.run = { params, follower in
didNewOrLoadUDWithParams.append(params)
didNewOrLoadUDWithFollower.append(follower)
......@@ -50,9 +48,7 @@ final class MessengerRegisterTests: XCTestCase {
e2eId: e2eId,
username: username,
registrationValidationSignature: registrationSignature,
cert: udCertFromNDF,
contact: udContactFromNDF,
address: udAddressFromNDF
environment: udEnvironmentFromNDF
)])
XCTAssertEqual(didNewOrLoadUDWithFollower.count, 1)
XCTAssertEqual(
......@@ -68,9 +64,11 @@ final class MessengerRegisterTests: XCTestCase {
let e2eId = 1234
let registrationSignature = "registration-signature".data(using: .utf8)!
let altUdCert = "alt-ud-cert".data(using: .utf8)!
let altUdContact = "alt-ud-contact".data(using: .utf8)!
let altUdAddress = "alt-ud-address"
let udEnvironment = UDEnvironment(
address: "alt-ud-address",
cert: "alt-ud-cert".data(using: .utf8)!,
contact: "alt-ud-contact".data(using: .utf8)!
)
let username = "new-user-name"
var env: MessengerEnvironment = .unimplemented
......@@ -88,9 +86,7 @@ final class MessengerRegisterTests: XCTestCase {
return e2e
}
env.ud.set = { didSetUD.append($0) }
env.udCert = altUdCert
env.udContact = altUdContact
env.udAddress = altUdAddress
env.udEnvironment = udEnvironment
env.newOrLoadUd.run = { params, _ in
didNewOrLoadUDWithParams.append(params)
return .unimplemented
......@@ -102,9 +98,7 @@ final class MessengerRegisterTests: XCTestCase {
e2eId: e2eId,
username: username,
registrationValidationSignature: registrationSignature,
cert: altUdCert,
contact: altUdContact,
address: altUdAddress
environment: udEnvironment
)])
XCTAssertEqual(didSetUD.compactMap { $0 }.count, 1)
}
......@@ -152,12 +146,10 @@ final class MessengerRegisterTests: XCTestCase {
env.e2e.get = {
var e2e: E2E = .unimplemented
e2e.getId.run = { 1234 }
e2e.getUdCertFromNdf.run = { "ndf-ud-cert".data(using: .utf8)! }
e2e.getUdContactFromNdf.run = { throw error }
e2e.getUdEnvironmentFromNdf.run = { throw error }
return e2e
}
env.udCert = nil
env.udContact = nil
env.udEnvironment = nil
let register: MessengerRegister = .live(env)
XCTAssertThrowsError(try register(username: "new-user-name")) { err in
......@@ -183,9 +175,11 @@ final class MessengerRegisterTests: XCTestCase {
e2e.getId.run = { 1234 }
return e2e
}
env.udCert = "ud-cert".data(using: .utf8)!
env.udContact = "ud-contact".data(using: .utf8)!
env.udAddress = "ud-address"
env.udEnvironment = UDEnvironment(
address: "ud-address",
cert: "ud-cert".data(using: .utf8)!,
contact: "ud-contact".data(using: .utf8)!
)
env.newOrLoadUd.run = { _, _ in throw error }
let register: MessengerRegister = .live(env)
......
......@@ -26,9 +26,11 @@ final class MessengerRestoreBackupTests: XCTestCase {
dhKeyPrivate: "reception-dhKeyPrivate".data(using: .utf8)!,
e2eGrp: "reception-e2eGrp".data(using: .utf8)!
)
let udContactFromNdf = "ud-contact".data(using: .utf8)!
let udCertFromNdf = "ud-cert".data(using: .utf8)!
let udAddressFromNdf = "ud-address"
let udEnvironmentFromNDF = UDEnvironment(
address: "ud-address",
cert: "ud-cert".data(using: .utf8)!,
contact: "ud-contact".data(using: .utf8)!
)
var caughtActions: [CaughtAction] = []
......@@ -81,9 +83,7 @@ final class MessengerRestoreBackupTests: XCTestCase {
))
var e2e: E2E = .unimplemented
e2e.getId.run = { e2eId }
e2e.getUdCertFromNdf.run = { udCertFromNdf }
e2e.getUdContactFromNdf.run = { udContactFromNdf }
e2e.getUdAddressFromNdf.run = { udAddressFromNdf }
e2e.getUdEnvironmentFromNdf.run = { udEnvironmentFromNDF }
return e2e
}
env.newUdManagerFromBackup.run = { params, _ in
......@@ -151,9 +151,7 @@ final class MessengerRestoreBackupTests: XCTestCase {
),
.didNewUdManagerFromBackup(params: .init(
e2eId: e2eId,
cert: udCertFromNdf,
contact: udContactFromNdf,
address: udAddressFromNdf
environment: udEnvironmentFromNDF
)),
.didSetUD,
])
......
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