@@ -202,6 +202,39 @@ public void ReAddNodeWithAnotherSchemaMappingNoCacheCleanTest()
202
202
Assert . That ( Domain . QueryCache . Count , Is . EqualTo ( queryCacheSize ) ) ;
203
203
}
204
204
205
+ [ Test ]
206
+ public void ReAddNodeWithAnotherSchemaMappingWithCacheCleanTest ( )
207
+ {
208
+ var node = Domain . StorageNodeManager . GetNode ( TestNodeId2 ) ;
209
+ var queryCacheSize = Domain . QueryCache . Count ;
210
+
211
+ using ( var session = node . OpenSession ( ) )
212
+ using ( var tx = session . OpenTransaction ( ) ) {
213
+ _ = session . Query . Execute ( SimpleQueryKey , q => q . All < BaseTestEntity > ( ) . Where ( e => e . BaseName . Contains ( "B" ) ) ) . ToList ( ) ;
214
+ }
215
+ Assert . That ( Domain . QueryCache . Count , Is . EqualTo ( queryCacheSize ) ) ;
216
+
217
+ _ = Domain . StorageNodeManager . RemoveNode ( TestNodeId2 , true ) ;
218
+ Assert . That ( Domain . QueryCache . Count , Is . LessThan ( queryCacheSize ) ) ;
219
+
220
+ CustomUpgradeHandler . CurrentNodeId = TestNodeId2 ;
221
+ var nodeConfiguration = new NodeConfiguration ( TestNodeId2 ) ;
222
+ nodeConfiguration . SchemaMapping . Add ( DefaultSchema , Schema2 ) ; // uses schema of TestNodeId3
223
+ nodeConfiguration . UpgradeMode = DomainUpgradeMode . Validate ;
224
+ _ = Domain . StorageNodeManager . AddNode ( nodeConfiguration ) ;
225
+
226
+ node = Domain . StorageNodeManager . GetNode ( TestNodeId2 ) ;
227
+
228
+ using ( var session = node . OpenSession ( ) )
229
+ using ( var tx = session . OpenTransaction ( ) ) {
230
+ var results = session . Query . Execute ( SimpleQueryKey , q => q . All < BaseTestEntity > ( ) . Where ( e => e . BaseName . Contains ( "B" ) ) ) . ToList ( ) ;
231
+ foreach ( var item in results ) {
232
+ Assert . That ( item . BaseOwnerNodeId , Is . Not . EqualTo ( node . Id ) ) ; // gets result from correct schema but data was added by TestNodeId3
233
+ }
234
+ }
235
+ Assert . That ( Domain . QueryCache . Count , Is . EqualTo ( queryCacheSize ) ) ;
236
+ }
237
+
205
238
private List < BaseTestEntity > ExecuteSimpleQueryCaching ( Session session ) =>
206
239
session . Query . Execute ( SimpleQueryKey , q => q . All < BaseTestEntity > ( ) . Where ( e => e . BaseName . Contains ( "B" ) ) ) . ToList ( ) ;
207
240
}
0 commit comments