mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 16:10:20 +00:00
Implement the flow for leaving a space. (#4568)
This commit is contained in:
@@ -16111,6 +16111,76 @@ class SpaceServiceProxyMock: SpaceServiceProxyProtocol, @unchecked Sendable {
|
||||
return spaceRoomListSpaceIDParentReturnValue
|
||||
}
|
||||
}
|
||||
//MARK: - leaveSpace
|
||||
|
||||
var leaveSpaceSpaceIDUnderlyingCallsCount = 0
|
||||
var leaveSpaceSpaceIDCallsCount: Int {
|
||||
get {
|
||||
if Thread.isMainThread {
|
||||
return leaveSpaceSpaceIDUnderlyingCallsCount
|
||||
} else {
|
||||
var returnValue: Int? = nil
|
||||
DispatchQueue.main.sync {
|
||||
returnValue = leaveSpaceSpaceIDUnderlyingCallsCount
|
||||
}
|
||||
|
||||
return returnValue!
|
||||
}
|
||||
}
|
||||
set {
|
||||
if Thread.isMainThread {
|
||||
leaveSpaceSpaceIDUnderlyingCallsCount = newValue
|
||||
} else {
|
||||
DispatchQueue.main.sync {
|
||||
leaveSpaceSpaceIDUnderlyingCallsCount = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var leaveSpaceSpaceIDCalled: Bool {
|
||||
return leaveSpaceSpaceIDCallsCount > 0
|
||||
}
|
||||
var leaveSpaceSpaceIDReceivedSpaceID: String?
|
||||
var leaveSpaceSpaceIDReceivedInvocations: [String] = []
|
||||
|
||||
var leaveSpaceSpaceIDUnderlyingReturnValue: Result<LeaveSpaceHandleProxy, SpaceServiceProxyError>!
|
||||
var leaveSpaceSpaceIDReturnValue: Result<LeaveSpaceHandleProxy, SpaceServiceProxyError>! {
|
||||
get {
|
||||
if Thread.isMainThread {
|
||||
return leaveSpaceSpaceIDUnderlyingReturnValue
|
||||
} else {
|
||||
var returnValue: Result<LeaveSpaceHandleProxy, SpaceServiceProxyError>? = nil
|
||||
DispatchQueue.main.sync {
|
||||
returnValue = leaveSpaceSpaceIDUnderlyingReturnValue
|
||||
}
|
||||
|
||||
return returnValue!
|
||||
}
|
||||
}
|
||||
set {
|
||||
if Thread.isMainThread {
|
||||
leaveSpaceSpaceIDUnderlyingReturnValue = newValue
|
||||
} else {
|
||||
DispatchQueue.main.sync {
|
||||
leaveSpaceSpaceIDUnderlyingReturnValue = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var leaveSpaceSpaceIDClosure: ((String) async -> Result<LeaveSpaceHandleProxy, SpaceServiceProxyError>)?
|
||||
|
||||
func leaveSpace(spaceID: String) async -> Result<LeaveSpaceHandleProxy, SpaceServiceProxyError> {
|
||||
leaveSpaceSpaceIDCallsCount += 1
|
||||
leaveSpaceSpaceIDReceivedSpaceID = spaceID
|
||||
DispatchQueue.main.async {
|
||||
self.leaveSpaceSpaceIDReceivedInvocations.append(spaceID)
|
||||
}
|
||||
if let leaveSpaceSpaceIDClosure = leaveSpaceSpaceIDClosure {
|
||||
return await leaveSpaceSpaceIDClosure(spaceID)
|
||||
} else {
|
||||
return leaveSpaceSpaceIDReturnValue
|
||||
}
|
||||
}
|
||||
}
|
||||
class StaticRoomSummaryProviderMock: StaticRoomSummaryProviderProtocol, @unchecked Sendable {
|
||||
var roomListPublisher: CurrentValuePublisher<[RoomSummary], Never> {
|
||||
|
||||
@@ -10135,6 +10135,128 @@ open class LazyTimelineItemProviderSDKMock: MatrixRustSDK.LazyTimelineItemProvid
|
||||
}
|
||||
}
|
||||
}
|
||||
open class LeaveSpaceHandleSDKMock: MatrixRustSDK.LeaveSpaceHandle, @unchecked Sendable {
|
||||
init() {
|
||||
super.init(noPointer: .init())
|
||||
}
|
||||
|
||||
public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) {
|
||||
fatalError("init(unsafeFromRawPointer:) has not been implemented")
|
||||
}
|
||||
|
||||
fileprivate var pointer: UnsafeMutableRawPointer!
|
||||
|
||||
//MARK: - leave
|
||||
|
||||
open var leaveRoomIdsThrowableError: Error?
|
||||
var leaveRoomIdsUnderlyingCallsCount = 0
|
||||
open var leaveRoomIdsCallsCount: Int {
|
||||
get {
|
||||
if Thread.isMainThread {
|
||||
return leaveRoomIdsUnderlyingCallsCount
|
||||
} else {
|
||||
var returnValue: Int? = nil
|
||||
DispatchQueue.main.sync {
|
||||
returnValue = leaveRoomIdsUnderlyingCallsCount
|
||||
}
|
||||
|
||||
return returnValue!
|
||||
}
|
||||
}
|
||||
set {
|
||||
if Thread.isMainThread {
|
||||
leaveRoomIdsUnderlyingCallsCount = newValue
|
||||
} else {
|
||||
DispatchQueue.main.sync {
|
||||
leaveRoomIdsUnderlyingCallsCount = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
open var leaveRoomIdsCalled: Bool {
|
||||
return leaveRoomIdsCallsCount > 0
|
||||
}
|
||||
open var leaveRoomIdsReceivedRoomIds: [String]?
|
||||
open var leaveRoomIdsReceivedInvocations: [[String]] = []
|
||||
open var leaveRoomIdsClosure: (([String]) async throws -> Void)?
|
||||
|
||||
open override func leave(roomIds: [String]) async throws {
|
||||
if let error = leaveRoomIdsThrowableError {
|
||||
throw error
|
||||
}
|
||||
leaveRoomIdsCallsCount += 1
|
||||
leaveRoomIdsReceivedRoomIds = roomIds
|
||||
DispatchQueue.main.async {
|
||||
self.leaveRoomIdsReceivedInvocations.append(roomIds)
|
||||
}
|
||||
try await leaveRoomIdsClosure?(roomIds)
|
||||
}
|
||||
|
||||
//MARK: - rooms
|
||||
|
||||
var roomsUnderlyingCallsCount = 0
|
||||
open var roomsCallsCount: Int {
|
||||
get {
|
||||
if Thread.isMainThread {
|
||||
return roomsUnderlyingCallsCount
|
||||
} else {
|
||||
var returnValue: Int? = nil
|
||||
DispatchQueue.main.sync {
|
||||
returnValue = roomsUnderlyingCallsCount
|
||||
}
|
||||
|
||||
return returnValue!
|
||||
}
|
||||
}
|
||||
set {
|
||||
if Thread.isMainThread {
|
||||
roomsUnderlyingCallsCount = newValue
|
||||
} else {
|
||||
DispatchQueue.main.sync {
|
||||
roomsUnderlyingCallsCount = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
open var roomsCalled: Bool {
|
||||
return roomsCallsCount > 0
|
||||
}
|
||||
|
||||
var roomsUnderlyingReturnValue: [LeaveSpaceRoom]!
|
||||
open var roomsReturnValue: [LeaveSpaceRoom]! {
|
||||
get {
|
||||
if Thread.isMainThread {
|
||||
return roomsUnderlyingReturnValue
|
||||
} else {
|
||||
var returnValue: [LeaveSpaceRoom]? = nil
|
||||
DispatchQueue.main.sync {
|
||||
returnValue = roomsUnderlyingReturnValue
|
||||
}
|
||||
|
||||
return returnValue!
|
||||
}
|
||||
}
|
||||
set {
|
||||
if Thread.isMainThread {
|
||||
roomsUnderlyingReturnValue = newValue
|
||||
} else {
|
||||
DispatchQueue.main.sync {
|
||||
roomsUnderlyingReturnValue = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
open var roomsClosure: (() -> [LeaveSpaceRoom])?
|
||||
|
||||
open override func rooms() -> [LeaveSpaceRoom] {
|
||||
roomsCallsCount += 1
|
||||
if let roomsClosure = roomsClosure {
|
||||
return roomsClosure()
|
||||
} else {
|
||||
return roomsReturnValue
|
||||
}
|
||||
}
|
||||
}
|
||||
open class MediaFileHandleSDKMock: MatrixRustSDK.MediaFileHandle, @unchecked Sendable {
|
||||
init() {
|
||||
super.init(noPointer: .init())
|
||||
@@ -22227,6 +22349,81 @@ open class SpaceServiceSDKMock: MatrixRustSDK.SpaceService, @unchecked Sendable
|
||||
}
|
||||
}
|
||||
|
||||
//MARK: - leaveSpace
|
||||
|
||||
open var leaveSpaceSpaceIdThrowableError: Error?
|
||||
var leaveSpaceSpaceIdUnderlyingCallsCount = 0
|
||||
open var leaveSpaceSpaceIdCallsCount: Int {
|
||||
get {
|
||||
if Thread.isMainThread {
|
||||
return leaveSpaceSpaceIdUnderlyingCallsCount
|
||||
} else {
|
||||
var returnValue: Int? = nil
|
||||
DispatchQueue.main.sync {
|
||||
returnValue = leaveSpaceSpaceIdUnderlyingCallsCount
|
||||
}
|
||||
|
||||
return returnValue!
|
||||
}
|
||||
}
|
||||
set {
|
||||
if Thread.isMainThread {
|
||||
leaveSpaceSpaceIdUnderlyingCallsCount = newValue
|
||||
} else {
|
||||
DispatchQueue.main.sync {
|
||||
leaveSpaceSpaceIdUnderlyingCallsCount = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
open var leaveSpaceSpaceIdCalled: Bool {
|
||||
return leaveSpaceSpaceIdCallsCount > 0
|
||||
}
|
||||
open var leaveSpaceSpaceIdReceivedSpaceId: String?
|
||||
open var leaveSpaceSpaceIdReceivedInvocations: [String] = []
|
||||
|
||||
var leaveSpaceSpaceIdUnderlyingReturnValue: LeaveSpaceHandle!
|
||||
open var leaveSpaceSpaceIdReturnValue: LeaveSpaceHandle! {
|
||||
get {
|
||||
if Thread.isMainThread {
|
||||
return leaveSpaceSpaceIdUnderlyingReturnValue
|
||||
} else {
|
||||
var returnValue: LeaveSpaceHandle? = nil
|
||||
DispatchQueue.main.sync {
|
||||
returnValue = leaveSpaceSpaceIdUnderlyingReturnValue
|
||||
}
|
||||
|
||||
return returnValue!
|
||||
}
|
||||
}
|
||||
set {
|
||||
if Thread.isMainThread {
|
||||
leaveSpaceSpaceIdUnderlyingReturnValue = newValue
|
||||
} else {
|
||||
DispatchQueue.main.sync {
|
||||
leaveSpaceSpaceIdUnderlyingReturnValue = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
open var leaveSpaceSpaceIdClosure: ((String) async throws -> LeaveSpaceHandle)?
|
||||
|
||||
open override func leaveSpace(spaceId: String) async throws -> LeaveSpaceHandle {
|
||||
if let error = leaveSpaceSpaceIdThrowableError {
|
||||
throw error
|
||||
}
|
||||
leaveSpaceSpaceIdCallsCount += 1
|
||||
leaveSpaceSpaceIdReceivedSpaceId = spaceId
|
||||
DispatchQueue.main.async {
|
||||
self.leaveSpaceSpaceIdReceivedInvocations.append(spaceId)
|
||||
}
|
||||
if let leaveSpaceSpaceIdClosure = leaveSpaceSpaceIdClosure {
|
||||
return try await leaveSpaceSpaceIdClosure(spaceId)
|
||||
} else {
|
||||
return leaveSpaceSpaceIdReturnValue
|
||||
}
|
||||
}
|
||||
|
||||
//MARK: - spaceRoomList
|
||||
|
||||
open var spaceRoomListSpaceIdThrowableError: Error?
|
||||
|
||||
Reference in New Issue
Block a user