Files
element-x-ios/ElementX/Sources/Mocks/TimelineControllerFactoryMock.swift
T

38 lines
1.5 KiB
Swift

//
// Copyright 2025 Element Creations Ltd.
// Copyright 2022-2025 New Vector Ltd.
//
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
// Please see LICENSE files in the repository root for full details.
//
import Foundation
extension TimelineControllerFactoryMock {
struct Configuration {
var timelineController: TimelineControllerProtocol?
var threadTimelineController: TimelineControllerProtocol?
}
convenience init(_ configuration: Configuration) {
self.init()
buildTimelineControllerRoomProxyInitialFocussedEventIDTimelineItemFactoryMediaProviderClosure = { _, _, _, _ in
if let timelineController = configuration.threadTimelineController {
return timelineController
} else {
return TimelineControllerMock(.init(timelineItems: TimelineFixtures.largeChunk))
}
}
buildThreadTimelineControllerThreadRootEventIDInitialFocussedEventIDRoomProxyTimelineItemFactoryMediaProviderClosure = { threadRootEventID, _, _, _, _ in
if let timelineController = configuration.threadTimelineController {
return .success(timelineController)
} else {
let timelineController = TimelineControllerMock(.init(timelineKind: .thread(rootEventID: threadRootEventID), timelineItems: TimelineFixtures.largeChunk))
return .success(timelineController)
}
}
}
}