Skip to content

Commit fdb8262

Browse files
author
Alex Peck
committed
test TLru
1 parent 553b452 commit fdb8262

File tree

1 file changed

+39
-2
lines changed

1 file changed

+39
-2
lines changed

BitFaster.Caching.UnitTests/Lru/ConcurrentTLruTests.cs

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@
22
using BitFaster.Caching.Lru;
33
using System;
44
using System.Collections.Generic;
5-
using System.Threading.Tasks;
65
using Xunit;
76
using System.Runtime.InteropServices;
8-
using System.Threading;
97

108
namespace BitFaster.Caching.UnitTests.Lru
119
{
@@ -166,6 +164,45 @@ public void WhenItemsAreExpiredExpireRemovesExpiredItems()
166164
);
167165
}
168166

167+
[Fact]
168+
public void WhenExpiredItemsAreTrimmedCacheMarkedCold()
169+
{
170+
Timed.Execute(
171+
lru,
172+
lru =>
173+
{
174+
lru.AddOrUpdate(1, "1");
175+
lru.AddOrUpdate(2, "2");
176+
lru.AddOrUpdate(3, "3");
177+
lru.GetOrAdd(1, valueFactory.Create);
178+
lru.GetOrAdd(2, valueFactory.Create);
179+
lru.GetOrAdd(3, valueFactory.Create);
180+
181+
lru.AddOrUpdate(4, "4");
182+
lru.AddOrUpdate(5, "5");
183+
lru.AddOrUpdate(6, "6");
184+
185+
lru.AddOrUpdate(7, "7");
186+
lru.AddOrUpdate(8, "8");
187+
lru.AddOrUpdate(9, "9");
188+
189+
return lru;
190+
},
191+
timeToLive.MultiplyBy(ttlWaitMlutiplier),
192+
lru =>
193+
{
194+
lru.Policy.ExpireAfterWrite.Value.TrimExpired();
195+
196+
for (int i = 0; i < lru.Policy.Eviction.Value.Capacity; i++)
197+
{
198+
lru.GetOrAdd(i, k => k.ToString());
199+
}
200+
201+
lru.Count.Should().Be(lru.Policy.Eviction.Value.Capacity);
202+
}
203+
);
204+
}
205+
169206
[Fact]
170207
public void WhenCacheHasExpiredAndFreshItemsExpireRemovesOnlyExpiredItems()
171208
{

0 commit comments

Comments
 (0)