@@ -8,13 +8,9 @@ struct BackgroundTaskScheduleTests {
88 private let timeProvider : MockTimeProvider
99
1010 init ( ) {
11- // Use a unique volatile domain for in-memory storage that doesn't persist to disk
12- let userDefaults = UserDefaults ( )
13- let volatileDomain = " test.BackgroundTaskSchedule. \( UUID ( ) . uuidString) "
14- userDefaults. setVolatileDomain ( [ : ] , forName: volatileDomain)
15- userDefaults. addSuite ( named: volatileDomain)
16-
1711 timeProvider = MockTimeProvider ( )
12+ let userDefaults = InMemoryUserDefaults ( )
13+
1814 sut = BackgroundTaskSchedule ( timeProvider: timeProvider, userDefaults: userDefaults)
1915 }
2016
@@ -226,3 +222,25 @@ private class MockTimeProvider: TimeProvider {
226222 fatalError ( " not implemented " )
227223 }
228224}
225+
226+ /// In-memory UserDefaults that doesn't persist to disk
227+ /// Each instance has its own isolated storage
228+ private class InMemoryUserDefaults : UserDefaults {
229+ private var storage : [ String : Any ] = [ : ]
230+
231+ override func set( _ value: Any ? , forKey defaultName: String ) {
232+ storage [ defaultName] = value
233+ }
234+
235+ override func data( forKey defaultName: String ) -> Data ? {
236+ storage [ defaultName] as? Data
237+ }
238+
239+ override func object( forKey defaultName: String ) -> Any ? {
240+ storage [ defaultName]
241+ }
242+
243+ override func removeObject( forKey defaultName: String ) {
244+ storage. removeValue ( forKey: defaultName)
245+ }
246+ }
0 commit comments