1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
//
// AccessMethodRepository+Stub.swift
// MullvadRESTTests
//
// Created by Mojgan on 2024-01-02.
// Copyright © 2025 Mullvad VPN AB. All rights reserved.
//
import Combine
import MullvadSettings
import MullvadTypes
public struct AccessMethodRepositoryStub: AccessMethodRepositoryDataSource, @unchecked Sendable {
public var directAccess: PersistentAccessMethod
public var accessMethodsPublisher: AnyPublisher<[PersistentAccessMethod], Never> {
passthroughSubject.eraseToAnyPublisher()
}
let passthroughSubject: CurrentValueSubject<[PersistentAccessMethod], Never> = CurrentValueSubject([])
public init(accessMethods: [PersistentAccessMethod]) {
directAccess = accessMethods.first(where: { $0.kind == .direct })!
passthroughSubject.send(accessMethods)
}
public func fetchAll() -> [PersistentAccessMethod] {
passthroughSubject.value
}
public func requestAccessMethod(_ method: PersistentAccessMethod) {}
public func fetchLastReachable() -> PersistentAccessMethod {
directAccess
}
public func infoHeaderConfig(for id: UUID) -> InfoHeaderConfig? {
nil
}
public static var stub: AccessMethodRepositoryStub {
AccessMethodRepositoryStub(accessMethods: [
PersistentAccessMethod(
id: UUID(),
name: "direct",
isEnabled: true,
proxyConfiguration: .direct
),
PersistentAccessMethod(
id: UUID(),
name: "bridges",
isEnabled: true,
proxyConfiguration: .bridges
),
PersistentAccessMethod(
id: UUID(),
name: "Encrypted DNS",
isEnabled: true,
proxyConfiguration: .encryptedDNS
),
])
}
}
|