1
1
import XCTest
2
2
@testable import CohesionKit
3
3
4
- // MARK: Store
5
4
class EntityStoreTests : XCTestCase {
5
+ // MARK: Store Aggregate
6
6
func test_storeAggregate_nestedEntitiesAreStored( ) {
7
7
let entity = RootFixture (
8
8
id: 1 ,
@@ -95,6 +95,20 @@ class EntityStoreTests: XCTestCase {
95
95
}
96
96
}
97
97
98
+ func test_storeAggregate_named_itEnqueuesAliasInRegistry( ) {
99
+ let root = SingleNodeFixture ( id: 1 )
100
+ let registry = ObserverRegistryStub ( )
101
+ let identityMap = IdentityMap ( registry: registry)
102
+
103
+ withExtendedLifetime ( identityMap. store ( entity: root, named: . test) ) {
104
+ XCTAssertTrue ( registry. hasPendingChange ( for: AliasContainer< SingleNodeFixture> . self ) )
105
+ XCTAssertTrue ( registry. hasPendingChange ( for: SingleNodeFixture . self) )
106
+ }
107
+ }
108
+ }
109
+
110
+ // MARK: Store Entities
111
+ extension EntityStoreTests {
98
112
/// make sure when inserting multiple time the same entity that it actually gets inserted only once
99
113
func test_storeEntities_sameEntityPresentMultipleTimes_itIsInsertedOnce( ) {
100
114
let registry = ObserverRegistryStub ( queue: . main)
@@ -108,6 +122,20 @@ class EntityStoreTests: XCTestCase {
108
122
XCTAssertEqual ( registry. pendingChangeCount ( for: commonEntity) , 1 )
109
123
}
110
124
125
+ func test_storeEntities_named_calledMultipleTimes_lastValueIsStored( ) {
126
+ let identityMap = IdentityMap ( )
127
+ let root = SingleNodeFixture ( id: 1 )
128
+ let root2 = SingleNodeFixture ( id: 2 )
129
+
130
+ _ = identityMap. store ( entities: [ root] , named: . listOfNodes)
131
+ _ = identityMap. store ( entities: [ root, root2] , named: . listOfNodes)
132
+
133
+ XCTAssertEqual ( identityMap. find ( named: . listOfNodes) . value, [ root, root2] )
134
+ }
135
+ }
136
+
137
+ // MARK: Store Identifiable
138
+ extension EntityStoreTests {
111
139
func test_storeIdentifiable_entityIsInsertedForThe1stTime_loggerIsCalled( ) {
112
140
let logger = LoggerMock ( )
113
141
let identityMap = IdentityMap ( logger: logger)
@@ -140,17 +168,6 @@ class EntityStoreTests: XCTestCase {
140
168
141
169
wait ( for: [ expectation] , timeout: 0 )
142
170
}
143
-
144
- func test_storeAggregate_named_itEnqueuesAliasInRegistry( ) {
145
- let root = SingleNodeFixture ( id: 1 )
146
- let registry = ObserverRegistryStub ( )
147
- let identityMap = IdentityMap ( registry: registry)
148
-
149
- withExtendedLifetime ( identityMap. store ( entity: root, named: . test) ) {
150
- XCTAssertTrue ( registry. hasPendingChange ( for: AliasContainer< SingleNodeFixture> . self ) )
151
- XCTAssertTrue ( registry. hasPendingChange ( for: SingleNodeFixture . self) )
152
- }
153
- }
154
171
}
155
172
156
173
// MARK: Find
0 commit comments