@@ -202,6 +202,39 @@ public void ReAddNodeWithAnotherSchemaMappingNoCacheCleanTest()
202202 Assert . That ( Domain . QueryCache . Count , Is . EqualTo ( queryCacheSize ) ) ;
203203 }
204204
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+
205238 private List < BaseTestEntity > ExecuteSimpleQueryCaching ( Session session ) =>
206239 session . Query . Execute ( SimpleQueryKey , q => q . All < BaseTestEntity > ( ) . Where ( e => e . BaseName . Contains ( "B" ) ) ) . ToList ( ) ;
207240 }
0 commit comments