Skip to content

Commit 092406b

Browse files
committed
Moved CryptomatorCommonCore mocks to a single place
inside the normal CryptomatorCommonCore target as using another target like CryptomatorCommonCoreMocks would result in a diamond dependency
1 parent 791c6d7 commit 092406b

39 files changed

+180
-1181
lines changed

Cryptomator.xcodeproj/project.pbxproj

+8-64
Large diffs are not rendered by default.

CryptomatorCommon/Tests/CryptomatorCommonCoreTests/Mocks/GeneratedCloudProviderMock.swift CryptomatorCommon/Sources/CryptomatorCommonCore/Mocks/CloudProviderMock.swift

+47-3
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,33 @@
11
//
2-
// GeneratedCloudProviderMock.swift
2+
// CloudProviderMock.swift
33
// CryptomatorCommonCoreTests
44
//
55
// Created by Philipp Schmid on 28.01.22.
66
// Copyright © 2022 Skymatic GmbH. All rights reserved.
77
//
88

9+
#if DEBUG
910
import CryptomatorCloudAccessCore
1011
import Foundation
1112
import Promises
1213

1314
// swiftlint:disable all
1415

15-
final class GeneratedCloudProviderMock: CloudProvider {
16+
final class CloudProviderMock: CloudProvider {
17+
var createdFolders: [String] {
18+
return createFolderAtReceivedInvocations.map { $0.path }
19+
}
20+
21+
var uploadFileLastModifiedDate: [String: Date] = [:]
22+
var filesToDownload = [String: Data]()
23+
var cloudMetadata: [String: CloudItemMetadata] = [:]
24+
25+
init() {
26+
self.downloadFileFromToClosure = defaultDownloadFile(from:to:)
27+
self.uploadFileFromToReplaceExistingClosure = defaultUploadFile(from:to:replaceExisting:)
28+
self.fetchItemMetadataAtClosure = defaultFetchItemMetadata(at:)
29+
}
30+
1631
// MARK: - fetchItemMetadata
1732

1833
var fetchItemMetadataAtThrowableError: Error?
@@ -36,6 +51,13 @@ final class GeneratedCloudProviderMock: CloudProvider {
3651
return fetchItemMetadataAtClosure.map({ $0(cloudPath) }) ?? fetchItemMetadataAtReturnValue
3752
}
3853

54+
private func defaultFetchItemMetadata(at cloudPath: CloudPath) -> Promise<CloudItemMetadata> {
55+
guard let metadata = cloudMetadata[cloudPath.path] else {
56+
return Promise(CloudProviderError.itemNotFound)
57+
}
58+
return Promise(metadata)
59+
}
60+
3961
// MARK: - fetchItemList
4062

4163
var fetchItemListForFolderAtWithPageTokenThrowableError: Error?
@@ -72,6 +94,18 @@ final class GeneratedCloudProviderMock: CloudProvider {
7294
var downloadFileFromToReturnValue: Promise<Void>!
7395
var downloadFileFromToClosure: ((CloudPath, URL) -> Promise<Void>)?
7496

97+
private func defaultDownloadFile(from cloudPath: CloudPath, to localURL: URL) -> Promise<Void> {
98+
guard let data = filesToDownload[cloudPath.path] else {
99+
return Promise(CloudProviderError.itemNotFound)
100+
}
101+
do {
102+
try data.write(to: localURL)
103+
return Promise(())
104+
} catch {
105+
return Promise(error)
106+
}
107+
}
108+
75109
func downloadFile(from cloudPath: CloudPath, to localURL: URL) -> Promise<Void> {
76110
if let error = downloadFileFromToThrowableError {
77111
return Promise(error)
@@ -105,6 +139,15 @@ final class GeneratedCloudProviderMock: CloudProvider {
105139
return uploadFileFromToReplaceExistingClosure.map({ $0(localURL, cloudPath, replaceExisting) }) ?? uploadFileFromToReplaceExistingReturnValue
106140
}
107141

142+
private func defaultUploadFile(from localURL: URL, to cloudPath: CloudPath, replaceExisting: Bool) -> Promise<CloudItemMetadata> {
143+
do {
144+
let data = try Data(contentsOf: localURL)
145+
return Promise(CloudItemMetadata(name: cloudPath.lastPathComponent, cloudPath: cloudPath, itemType: .file, lastModifiedDate: uploadFileLastModifiedDate[cloudPath.path], size: data.count))
146+
} catch {
147+
return Promise(error)
148+
}
149+
}
150+
108151
// MARK: - createFolder
109152

110153
var createFolderAtThrowableError: Error?
@@ -187,7 +230,7 @@ final class GeneratedCloudProviderMock: CloudProvider {
187230
var moveFileFromToReturnValue: Promise<Void>!
188231
var moveFileFromToClosure: ((CloudPath, CloudPath) -> Promise<Void>)?
189232

190-
func moveFile(from sourceCloudPath: CloudPath, to targetCloudPath: CloudPath) -> Promise<Void> {
233+
public func moveFile(from sourceCloudPath: CloudPath, to targetCloudPath: CloudPath) -> Promise<Void> {
191234
if let error = moveFileFromToThrowableError {
192235
return Promise(error)
193236
}
@@ -222,3 +265,4 @@ final class GeneratedCloudProviderMock: CloudProvider {
222265
}
223266

224267
// swiftlint:enable all
268+
#endif
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
//
22
// CryptomatorSettingsMock.swift
3-
// CryptomatorTests
3+
// CryptomatorCommonCore
44
//
55
// Created by Philipp Schmid on 23.11.21.
66
// Copyright © 2021 Skymatic GmbH. All rights reserved.
77
//
88

9-
import CryptomatorCommonCore
9+
#if DEBUG
1010
import Foundation
1111

1212
class CryptomatorSettingsMock: CryptomatorSettings {
1313
var trialExpirationDate: Date?
1414
var debugModeEnabled: Bool = false
1515
var fullVersionUnlocked: Bool = false
1616
}
17+
#endif
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
//
22
// FullVersionCheckerMock.swift
3-
// CryptomatorFileProviderTests
3+
// CryptomatorCommonCore
44
//
55
// Created by Philipp Schmid on 02.12.21.
66
// Copyright © 2021 Skymatic GmbH. All rights reserved.
77
//
88

9-
import CryptomatorCommonCore
9+
#if DEBUG
1010
import Foundation
1111

1212
final class FullVersionCheckerMock: FullVersionChecker {
1313
var isFullVersion: Bool = false
1414
var hasExpiredTrial: Bool = false
1515
}
16+
#endif

CryptomatorCommon/Tests/CryptomatorCommonCoreTests/Mocks/MasterkeyCacheHelperMock.swift CryptomatorCommon/Sources/CryptomatorCommonCore/Mocks/MasterkeyCacheHelperMock.swift

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
// Copyright © 2022 Skymatic GmbH. All rights reserved.
77
//
88

9+
#if DEBUG
910
import Foundation
10-
@testable import CryptomatorCommonCore
1111

1212
final class MasterkeyCacheHelperMock: MasterkeyCacheHelper {
1313
// MARK: - shouldCacheMasterkey
@@ -29,3 +29,4 @@ final class MasterkeyCacheHelperMock: MasterkeyCacheHelper {
2929
return shouldCacheMasterkeyForVaultUIDClosure.map({ $0(vaultUID) }) ?? shouldCacheMasterkeyForVaultUIDReturnValue
3030
}
3131
}
32+
#endif

CryptomatorCommon/Tests/CryptomatorCommonCoreTests/Mocks/MasterkeyCacheManagerMock.swift CryptomatorCommon/Sources/CryptomatorCommonCore/Mocks/MasterkeyCacheManagerMock.swift

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
// Copyright © 2022 Skymatic GmbH. All rights reserved.
77
//
88

9-
import CryptomatorCommonCore
9+
#if DEBUG
1010
import CryptomatorCryptoLib
1111
import Foundation
1212

@@ -81,3 +81,4 @@ final class MasterkeyCacheManagerMock: MasterkeyCacheManager {
8181
}
8282

8383
// swiftlint:enable all
84+
#endif

CryptomatorTests/Mocks/UpgradeCheckerMock.swift CryptomatorCommon/Sources/CryptomatorCommonCore/Mocks/UpgradeCheckerMock.swift

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
//
22
// UpgradeCheckerMock.swift
3-
// CryptomatorTests
3+
// CryptomatorCommonCore
44
//
55
// Created by Philipp Schmid on 23.11.21.
66
// Copyright © 2021 Skymatic GmbH. All rights reserved.
77
//
88

9-
import CryptomatorCommonCore
9+
#if DEBUG
1010
import Foundation
1111

1212
final class UpgradeCheckerMock: UpgradeCheckerProtocol {
@@ -40,3 +40,4 @@ final class UpgradeCheckerMock: UpgradeCheckerProtocol {
4040
return couldBeEligibleForUpgradeClosure.map({ $0() }) ?? couldBeEligibleForUpgradeReturnValue
4141
}
4242
}
43+
#endif

CryptomatorCommon/Tests/CryptomatorCommonCoreTests/Mocks/VaultCacheMock.swift CryptomatorCommon/Sources/CryptomatorCommonCore/Mocks/VaultCacheMock.swift

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
//
22
// VaultCacheMock.swift
3-
// CryptomatorCommonCoreTests
3+
// CryptomatorCommonCore
44
//
55
// Created by Philipp Schmid on 28.01.22.
66
// Copyright © 2021 Skymatic GmbH. All rights reserved.
77
//
88

9+
#if DEBUG
910
import CryptomatorCloudAccessCore
1011
import Foundation
1112
import Promises
12-
@testable import CryptomatorCommonCore
1313

1414
// swiftlint:disable all
1515

@@ -106,3 +106,4 @@ final class VaultCacheMock: VaultCache {
106106
}
107107

108108
// swiftlint:enable all
109+
#endif

CryptomatorFileProviderTests/Mocks/VaultKeepUnlockedHelperMock.swift CryptomatorCommon/Sources/CryptomatorCommonCore/Mocks/VaultKeepUnlockedHelperMock.swift

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
//
22
// VaultKeepUnlockedHelperMock.swift
3-
// CryptomatorFileProviderTests
3+
// CryptomatorCommonCore
44
//
55
// Created by Philipp Schmid on 12.01.22.
66
// Copyright © 2022 Skymatic GmbH. All rights reserved.
77
//
88

9-
import CryptomatorCommonCore
9+
#if DEBUG
1010
import Foundation
1111

1212
// swiftlint:disable all
@@ -51,3 +51,4 @@ final class VaultKeepUnlockedHelperMock: VaultKeepUnlockedHelper {
5151
}
5252

5353
// swiftlint:enable all
54+
#endif

CryptomatorTests/Mocks/VaultKeepUnlockedSettingsMock.swift CryptomatorCommon/Sources/CryptomatorCommonCore/Mocks/VaultKeepUnlockedSettingsMock.swift

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
//
22
// VaultKeepUnlockedSettingsMock.swift
3-
// CryptomatorTests
3+
// CryptomatorCommonCore
44
//
55
// Created by Philipp Schmid on 04.01.22.
66
// Copyright © 2022 Skymatic GmbH. All rights reserved.
77
//
88

9-
import CryptomatorCommonCore
9+
#if DEBUG
1010
import Foundation
1111

1212
// swiftlint:disable all
@@ -117,3 +117,4 @@ final class VaultKeepUnlockedSettingsMock: VaultKeepUnlockedSettings {
117117
}
118118

119119
// swiftlint:enable all
120+
#endif

CryptomatorTests/Mocks/VaultManagerMock.swift CryptomatorCommon/Sources/CryptomatorCommonCore/Mocks/VaultManagerMock.swift

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
//
22
// VaultManagerMock.swift
3-
// CryptomatorTests
3+
// CryptomatorCommonCore
44
//
55
// Created by Philipp Schmid on 27.10.21.
66
// Copyright © 2021 Skymatic GmbH. All rights reserved.
77
//
88

9+
#if DEBUG
910
import CryptomatorCloudAccessCore
10-
import CryptomatorCommonCore
1111
import CryptomatorCryptoLib
1212
import Foundation
1313
import Promises
@@ -223,3 +223,4 @@ final class VaultManagerMock: VaultManager {
223223
}
224224

225225
// swiftlint:enable all
226+
#endif

CryptomatorFileProviderTests/Mocks/VaultPasswordManagerMock.swift CryptomatorCommon/Sources/CryptomatorCommonCore/Mocks/VaultPasswordManagerMock.swift

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
//
22
// VaultPasswordManagerMock.swift
3-
// CryptomatorFileProviderTests
3+
// CryptomatorCommonCore
44
//
55
// Created by Philipp Schmid on 01.02.22.
66
// Copyright © 2022 Skymatic GmbH. All rights reserved.
77
//
88

9-
import CryptomatorCommonCore
9+
#if DEBUG
1010
import Foundation
1111
import LocalAuthentication
1212

@@ -105,3 +105,4 @@ final class VaultPasswordManagerMock: VaultPasswordManager {
105105
}
106106

107107
// swiftlint:enable all
108+
#endif

CryptomatorCommon/Tests/CryptomatorCommonCoreTests/Manager/CloudProviderMock.swift

-82
This file was deleted.

CryptomatorCommon/Tests/CryptomatorCommonCoreTests/Manager/VaultDBCacheTests.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class VaultDBCacheTests: XCTestCase {
2020
private lazy var account: CloudProviderAccount = .init(accountUID: UUID().uuidString, cloudProviderType: .dropbox)
2121
private let vaultPath = CloudPath("/Vault")
2222
private lazy var vaultAccount: VaultAccount = .init(vaultUID: vaultUID, delegateAccountUID: account.accountUID, vaultPath: vaultPath, vaultName: "Vault")
23-
private let cloudProviderMock = GeneratedCloudProviderMock()
23+
private let cloudProviderMock = CloudProviderMock()
2424
private var inMemoryDB: DatabaseQueue!
2525
private var masterkeyFileData: Data!
2626
private var updatedMasterkeyFileData: Data!

0 commit comments

Comments
 (0)