@@ -155,4 +155,39 @@ class LocalStorageTests: XCTestCase {
155155 localStorage. authToken = nil
156156 XCTAssertNil ( localStorage. authToken)
157157 }
158+
159+ func testOfflineMode( ) {
160+ let saver = { ( storage: LocalStorageProtocol , value: Bool ) -> Void in
161+ var localStorage = storage
162+ localStorage. offlineMode = value
163+ }
164+ let retriever = { ( storage: LocalStorageProtocol ) -> Bool ? in
165+ storage. offlineMode
166+ }
167+
168+ testLocalStorage ( saver: saver, retriever: retriever, value: true )
169+ testLocalStorage ( saver: saver, retriever: retriever, value: false )
170+ }
171+
172+ func testOfflineModeBeta( ) {
173+ let saver = { ( storage: LocalStorageProtocol , value: Bool ) -> Void in
174+ var localStorage = storage
175+ localStorage. offlineModeBeta = value
176+ }
177+ let retriever = { ( storage: LocalStorageProtocol ) -> Bool ? in
178+ storage. offlineModeBeta
179+ }
180+
181+ testLocalStorage ( saver: saver, retriever: retriever, value: true )
182+ testLocalStorage ( saver: saver, retriever: retriever, value: false )
183+ }
184+
185+ private func testLocalStorage< T> ( saver: ( LocalStorageProtocol , T ) -> Void ,
186+ retriever: ( LocalStorageProtocol ) -> T ? , value: T ) where T: Equatable {
187+ let localStorage = UserDefaultsLocalStorage ( userDefaults: LocalStorageTests . getTestUserDefaults ( ) )
188+ saver ( localStorage, value)
189+ let retrievedLocalStorage = UserDefaultsLocalStorage ( userDefaults: LocalStorageTests . getTestUserDefaults ( ) )
190+ let retrieved = retriever ( retrievedLocalStorage)
191+ XCTAssertEqual ( value, retrieved)
192+ }
158193}
0 commit comments