Skip to content

Commit f4ed011

Browse files
committed
Make dbManager non-optional as it should be non-nil in practice
1 parent 475a679 commit f4ed011

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

FirebaseRemoteConfig/SwiftNew/ConfigExperiment.swift

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,15 @@ import Foundation
2626
@objc private var experimentPayloads: [Data]
2727
@objc private var experimentMetadata: [String: Any]
2828
@objc private var activeExperimentPayloads: [Data]
29-
private let dbManager: ConfigDBManager?
29+
private let dbManager: ConfigDBManager
30+
// TODO(ncooke3): This property could be made non-optional after ensuring the
31+
// unit tests properly configure the default app. This is because the
32+
// experiment controller comes from the ABTesting component.
3033
private let experimentController: ExperimentController?
3134
private let experimentStartTimeDateFormatter: DateFormatter
3235

3336
/// Designated initializer;
34-
@objc public init(DBManager: ConfigDBManager?,
37+
@objc public init(DBManager: ConfigDBManager,
3538
experimentController controller: ExperimentController?) {
3639
experimentPayloads = []
3740
experimentMetadata = [:]
@@ -52,8 +55,6 @@ import Foundation
5255
}
5356

5457
@objc private func loadExperimentFromTable() {
55-
guard let dbManager else { return }
56-
5758
let completionHandler: (Bool, [String: Any]?) -> Void = { [weak self] _, result in
5859
guard let self else { return }
5960

@@ -101,14 +102,14 @@ import Foundation
101102
@objc public func updateExperiments(withResponse response: [[String: Any]]?) {
102103
// Cache fetched experiment payloads.
103104
experimentPayloads.removeAll()
104-
dbManager?.deleteExperimentTable(forKey: ConfigConstants.experimentTableKeyPayload)
105+
dbManager.deleteExperimentTable(forKey: ConfigConstants.experimentTableKeyPayload)
105106

106107
if let response {
107108
for experiment in response {
108109
do {
109110
let jsonData = try JSONSerialization.data(withJSONObject: experiment)
110111
experimentPayloads.append(jsonData)
111-
dbManager?
112+
dbManager
112113
.insertExperimentTable(
113114
withKey: ConfigConstants.experimentTableKeyPayload,
114115
value: jsonData
@@ -160,7 +161,7 @@ import Foundation
160161
withJSONObject: experimentMetadata,
161162
options: .prettyPrinted
162163
) {
163-
dbManager?
164+
dbManager
164165
.insertExperimentTable(
165166
withKey: ConfigConstants.experimentTableKeyMetadata,
166167
value: serializedExperimentMetadata
@@ -171,10 +172,10 @@ import Foundation
171172
@objc private func updateActiveExperimentsInDB() {
172173
// Put current fetched experiment payloads into activated experiment DB.
173174
activeExperimentPayloads.removeAll()
174-
dbManager?.deleteExperimentTable(forKey: ConfigConstants.experimentTableKeyActivePayload)
175+
dbManager.deleteExperimentTable(forKey: ConfigConstants.experimentTableKeyActivePayload)
175176
for data in experimentPayloads {
176177
activeExperimentPayloads.append(data)
177-
dbManager?
178+
dbManager
178179
.insertExperimentTable(
179180
withKey: ConfigConstants.experimentTableKeyActivePayload,
180181
value: data

0 commit comments

Comments
 (0)