mirror of https://github.com/oxen-io/session-ios
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
3.1 KiB
Swift
102 lines
3.1 KiB
Swift
// Copyright © 2023 Rangeproof Pty Ltd. All rights reserved.
|
|
|
|
import Foundation
|
|
import Combine
|
|
import SessionUtilitiesKit
|
|
import GRDB
|
|
|
|
@testable import SessionMessagingKit
|
|
|
|
class MockLibSessionCache: Mock<LibSessionCacheType>, LibSessionCacheType {
|
|
var userSessionId: SessionId { mock() }
|
|
var isEmpty: Bool { mock() }
|
|
var needsSync: Bool { mock() }
|
|
|
|
// MARK: - State Management
|
|
|
|
func loadState(_ db: Database) { mockNoReturn(untrackedArgs: [db]) }
|
|
func loadDefaultStatesFor(
|
|
userConfigVariants: Set<ConfigDump.Variant>,
|
|
groups: [ClosedGroup],
|
|
userSessionId: SessionId,
|
|
userEd25519KeyPair: KeyPair
|
|
) {
|
|
mockNoReturn(args: [userConfigVariants, groups, userSessionId, userEd25519KeyPair])
|
|
}
|
|
|
|
func hasConfig(for variant: ConfigDump.Variant, sessionId: SessionId) -> Bool {
|
|
return mock(args: [variant, sessionId])
|
|
}
|
|
|
|
func config(for variant: ConfigDump.Variant, sessionId: SessionId) -> LibSession.Config? {
|
|
return mock(args: [variant, sessionId])
|
|
}
|
|
|
|
func setConfig(for variant: ConfigDump.Variant, sessionId: SessionId, to config: LibSession.Config) {
|
|
mockNoReturn(args: [variant, sessionId, config])
|
|
}
|
|
|
|
func removeConfigs(for sessionId: SessionId) {
|
|
mockNoReturn(args: [sessionId])
|
|
}
|
|
|
|
func createDump(
|
|
config: LibSession.Config?,
|
|
for variant: ConfigDump.Variant,
|
|
sessionId: SessionId,
|
|
timestampMs: Int64
|
|
) throws -> ConfigDump? {
|
|
return try mockThrowing(args: [config, variant, sessionId, timestampMs])
|
|
}
|
|
|
|
// MARK: - Pushes
|
|
|
|
func performAndPushChange(
|
|
_ db: Database,
|
|
for variant: ConfigDump.Variant,
|
|
sessionId: SessionId,
|
|
change: @escaping (LibSession.Config?) throws -> ()
|
|
) throws {
|
|
try mockThrowingNoReturn(args: [variant, sessionId], untrackedArgs: [db, change])
|
|
}
|
|
|
|
func pendingChanges(_ db: Database, swarmPubkey: String) throws -> LibSession.PendingChanges {
|
|
return mock(args: [swarmPubkey], untrackedArgs: [db])
|
|
}
|
|
|
|
func markingAsPushed(
|
|
seqNo: Int64,
|
|
serverHash: String,
|
|
sentTimestamp: Int64,
|
|
variant: ConfigDump.Variant,
|
|
swarmPublicKey: String
|
|
) -> ConfigDump? {
|
|
return mock(args: [seqNo, serverHash, sentTimestamp, variant, swarmPublicKey])
|
|
}
|
|
|
|
// MARK: - Config Message Handling
|
|
|
|
func configNeedsDump(_ config: LibSession.Config?) -> Bool {
|
|
return mock(args: [config])
|
|
}
|
|
|
|
func configHashes(for swarmPubkey: String) -> [String] {
|
|
return mock(args: [swarmPubkey])
|
|
}
|
|
|
|
func handleConfigMessages(
|
|
_ db: Database,
|
|
swarmPublicKey: String,
|
|
messages: [ConfigMessageReceiveJob.Details.MessageInfo]
|
|
) throws {
|
|
try mockThrowingNoReturn(args: [swarmPublicKey, messages], untrackedArgs: [db])
|
|
}
|
|
|
|
func unsafeDirectMergeConfigMessage(
|
|
swarmPublicKey: String,
|
|
messages: [ConfigMessageReceiveJob.Details.MessageInfo]
|
|
) throws {
|
|
try mockThrowingNoReturn(args: [swarmPublicKey, messages])
|
|
}
|
|
}
|