Skip to content

Commit 364d2ec

Browse files
committed
Use associated enum for the key information
1 parent b77619f commit 364d2ec

File tree

5 files changed

+41
-14
lines changed

5 files changed

+41
-14
lines changed

Source/Shared/Storage/HybridStorage.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,25 +27,25 @@ extension HybridStorage: StorageAware {
2727
public func removeObject(forKey key: String) throws {
2828
memoryStorage.removeObject(forKey: key)
2929
try diskStorage.removeObject(forKey: key)
30-
storageObservationRegistry.notifyObservers(about: .singleDeletion, in: self)
30+
storageObservationRegistry.notifyObservers(about: .remove(key: key), in: self)
3131
}
3232

3333
public func setObject(_ object: T, forKey key: String, expiry: Expiry? = nil) throws {
3434
memoryStorage.setObject(object, forKey: key, expiry: expiry)
3535
try diskStorage.setObject(object, forKey: key, expiry: expiry)
36-
storageObservationRegistry.notifyObservers(about: .addition, in: self)
36+
storageObservationRegistry.notifyObservers(about: .add(key: key), in: self)
3737
}
3838

3939
public func removeAll() throws {
4040
memoryStorage.removeAll()
4141
try diskStorage.removeAll()
42-
storageObservationRegistry.notifyObservers(about: .allDeletion, in: self)
42+
storageObservationRegistry.notifyObservers(about: .removeAll, in: self)
4343
}
4444

4545
public func removeExpiredObjects() throws {
4646
memoryStorage.removeExpiredObjects()
4747
try diskStorage.removeExpiredObjects()
48-
storageObservationRegistry.notifyObservers(about: .expiredDeletion, in: self)
48+
storageObservationRegistry.notifyObservers(about: .removeExpired, in: self)
4949
}
5050
}
5151

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,17 @@
1-
public enum StorageChange {
2-
case addition
3-
case singleDeletion
4-
case allDeletion
5-
case expiredDeletion
1+
public enum StorageChange: Equatable {
2+
case add(key: String)
3+
case remove(key: String)
4+
case removeAll
5+
case removeExpired
6+
}
7+
8+
public func == (lhs: StorageChange, rhs: StorageChange) -> Bool {
9+
switch (lhs, rhs) {
10+
case (.add(let key1), .add(let key2)), (.remove(let key1), .remove(let key2)):
11+
return key1 == key2
12+
case (.removeAll, .removeAll), (.removeExpired, .removeExpired):
13+
return true
14+
default:
15+
return false
16+
}
617
}

Tests/iOS/Tests/Storage/HybridStorageTests.swift

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,14 @@ final class HybridStorageTests: XCTestCase {
170170
try storage.removeExpiredObjects()
171171
try storage.removeAll()
172172

173-
XCTAssertEqual(changes, [.addition, .addition, .singleDeletion, .expiredDeletion, .allDeletion])
173+
let expectedChanges: [StorageChange] = [
174+
.add(key: "user1"),
175+
.add(key: "user2"),
176+
.remove(key: "user1"),
177+
.removeExpired,
178+
.removeAll
179+
]
180+
181+
XCTAssertEqual(changes, expectedChanges)
174182
}
175183
}

Tests/iOS/Tests/Storage/StorageObservationRegistryTests.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ final class StorageObservationRegistryTests: XCTestCase {
5252
change2 = change
5353
}
5454

55-
registry.notifyObservers(about: .addition, in: storage)
55+
registry.notifyObservers(about: .add(key: "key"), in: storage)
5656

57-
XCTAssertEqual(change1, .addition)
58-
XCTAssertEqual(change2, .addition)
57+
XCTAssertEqual(change1, StorageChange.add(key: "key"))
58+
XCTAssertEqual(change2, StorageChange.add(key: "key"))
5959
}
6060
}

Tests/iOS/Tests/Storage/StorageTests.swift

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,14 @@ final class StorageTests: XCTestCase {
110110
try storage.removeExpiredObjects()
111111
try storage.removeAll()
112112

113-
XCTAssertEqual(changes, [.addition, .addition, .singleDeletion, .expiredDeletion, .allDeletion])
113+
let expectedChanges: [StorageChange] = [
114+
.add(key: "user1"),
115+
.add(key: "user2"),
116+
.remove(key: "user1"),
117+
.removeExpired,
118+
.removeAll
119+
]
120+
121+
XCTAssertEqual(changes, expectedChanges)
114122
}
115123
}

0 commit comments

Comments
 (0)