File tree Expand file tree Collapse file tree 3 files changed +57
-1
lines changed
BitFaster.Caching.UnitTests Expand file tree Collapse file tree 3 files changed +57
-1
lines changed Original file line number Diff line number Diff line change @@ -582,14 +582,32 @@ public void WhenItemDoesNotExistUpdatedAddsItem()
582582 }
583583
584584 [ Fact ]
585- public void WhenItemIsRemovedItIsRemoved ( )
585+ public void WhenKeyIsRemovedItIsRemoved ( )
586586 {
587587 cache . GetOrAdd ( 1 , k => k ) ;
588588
589589 cache . TryRemove ( 1 ) . Should ( ) . BeTrue ( ) ;
590590 cache . TryGet ( 1 , out var value ) . Should ( ) . BeFalse ( ) ;
591591 }
592592
593+ [ Fact ]
594+ public void WhenItemIsRemovedItIsRemoved ( )
595+ {
596+ cache . GetOrAdd ( 1 , k => k ) ;
597+
598+ cache . TryRemove ( new KeyValuePair < int , int > ( 1 , 1 ) ) . Should ( ) . BeTrue ( ) ;
599+ cache . TryGet ( 1 , out var value ) . Should ( ) . BeFalse ( ) ;
600+ }
601+
602+ [ Fact ]
603+ public void WhenItemDoesntMatchItIsNotRemoved ( )
604+ {
605+ cache . GetOrAdd ( 1 , k => k ) ;
606+
607+ cache . TryRemove ( new KeyValuePair < int , int > ( 1 , 2 ) ) . Should ( ) . BeFalse ( ) ;
608+ cache . TryGet ( 1 , out var value ) . Should ( ) . BeTrue ( ) ;
609+ }
610+
593611 [ Fact ]
594612 public void WhenItemIsRemovedItIsDisposed ( )
595613 {
Original file line number Diff line number Diff line change @@ -362,6 +362,24 @@ public void WhenKeyExistsTryRemoveRemovesItemAndReturnsTrue()
362362 lru . TryGet ( 1 , out var value ) . Should ( ) . BeFalse ( ) ;
363363 }
364364
365+ [ Fact ]
366+ public void WhenItemExistsTryRemovesItemAndReturnsTrue ( )
367+ {
368+ lru . GetOrAdd ( 1 , valueFactory . Create ) ;
369+
370+ lru . TryRemove ( new KeyValuePair < int , string > ( 1 , "1" ) ) . Should ( ) . BeTrue ( ) ;
371+ lru . TryGet ( 1 , out var value ) . Should ( ) . BeFalse ( ) ;
372+ }
373+
374+ [ Fact ]
375+ public void WhenTryRemoveKvpDoesntMatchItemNotRemovedAndReturnsFalse ( )
376+ {
377+ lru . GetOrAdd ( 1 , valueFactory . Create ) ;
378+
379+ lru . TryRemove ( new KeyValuePair < int , string > ( 1 , "2" ) ) . Should ( ) . BeFalse ( ) ;
380+ lru . TryGet ( 1 , out var value ) . Should ( ) . BeTrue ( ) ;
381+ }
382+
365383 [ Fact ]
366384 public void WhenItemIsRemovedItIsDisposed ( )
367385 {
Original file line number Diff line number Diff line change @@ -1196,6 +1196,26 @@ await Threaded.Run(4, () => {
11961196 }
11971197 }
11981198
1199+ [ Fact ]
1200+ public async Task WhenSoakConcurrentGetAndRemoveKvpCacheEndsInConsistentState ( )
1201+ {
1202+ for ( int i = 0 ; i < 10 ; i ++ )
1203+ {
1204+ await Threaded . Run ( 4 , ( ) => {
1205+ for ( int i = 0 ; i < 100000 ; i ++ )
1206+ {
1207+ lru . TryRemove ( new KeyValuePair < int , string > ( i + 1 , ( i + 1 ) . ToString ( ) ) ) ;
1208+ lru . GetOrAdd ( i + 1 , i => i . ToString ( ) ) ;
1209+ }
1210+ } ) ;
1211+
1212+ this . testOutputHelper . WriteLine ( $ "{ lru . HotCount } { lru . WarmCount } { lru . ColdCount } ") ;
1213+ this . testOutputHelper . WriteLine ( string . Join ( " " , lru . Keys ) ) ;
1214+
1215+ RunIntegrityCheck ( ) ;
1216+ }
1217+ }
1218+
11991219 [ Fact ]
12001220 public async Task WhenSoakConcurrentGetAndUpdateCacheEndsInConsistentState ( )
12011221 {
You can’t perform that action at this time.
0 commit comments