Skip to content

Commit 5458e0b

Browse files
committed
Add distributed cache
Code is mostly good, still need to write tests for layered cache
1 parent 7fcf430 commit 5458e0b

9 files changed

+820
-57
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

3-
<PropertyGroup>
4-
<TargetFramework>net6.0</TargetFramework>
5-
<ImplicitUsings>enable</ImplicitUsings>
6-
<Nullable>enable</Nullable>
3+
<PropertyGroup>
4+
<TargetFramework>net6.0</TargetFramework>
5+
<ImplicitUsings>enable</ImplicitUsings>
6+
<Nullable>enable</Nullable>
77

8-
<IsPackable>false</IsPackable>
9-
</PropertyGroup>
8+
<IsPackable>false</IsPackable>
9+
</PropertyGroup>
1010

11-
<ItemGroup>
12-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
13-
<PackageReference Include="NUnit" Version="3.13.3" />
14-
<PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
15-
<PackageReference Include="NUnit.Analyzers" Version="3.3.0" />
16-
<PackageReference Include="coverlet.collector" Version="3.1.2" />
17-
</ItemGroup>
11+
<ItemGroup>
12+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
13+
<PackageReference Include="NUnit" Version="3.13.3" />
14+
<PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
15+
<PackageReference Include="NUnit.Analyzers" Version="3.3.0" />
16+
<PackageReference Include="coverlet.collector" Version="3.1.2" />
17+
</ItemGroup>
1818

19-
<ItemGroup>
20-
<ProjectReference Include="..\DigitalRuby.SimpleCache\DigitalRuby.SimpleCache.csproj" />
21-
</ItemGroup>
19+
<ItemGroup>
20+
<ProjectReference Include="..\DigitalRuby.SimpleCache\DigitalRuby.SimpleCache.csproj" />
21+
</ItemGroup>
2222

2323
</Project>

DigitalRuby.SimpleCache.Tests/FileCacheTests.cs

+6-6
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,12 @@ public async Task TestFileCache()
3535
{
3636
const int testCount = 10;
3737
const string data = "aowejf poawef jpaowejf paowejf paojefaq23-0 5uq2345u q-3495345W#$ %W#$% W#$%W#$5 w34ihto345hg oih45giw45g1 -f0 uqa-430ru -03q4tu 0q934tq34 T{}43 tpw34ot pw34t0w4395 0w4";
38-
using FileCache fileCache = new(JsonLZ4Serializer.Instance, this, this, new NullLogger<FileCache>());
38+
using FileCache fileCache = new(this, this, new NullLogger<FileCache>());
3939

4040
var item = await fileCache.GetAsync<string>("key1");
4141
Assert.That(item, Is.Null);
4242

43-
await fileCache.SetAsync<string>("key1", data, new CacheParameters(TimeSpan.FromSeconds(5.0)));
43+
await fileCache.SetAsync("key1", data, new CacheParameters(TimeSpan.FromSeconds(5.0)));
4444
item = await fileCache.GetAsync<string>("key1");
4545
Assert.That(item, Is.Not.Null);
4646
Assert.That(item.Item, Is.EqualTo(data));
@@ -52,10 +52,10 @@ public async Task TestFileCache()
5252
Assert.That(item, Is.Null);
5353

5454
// put item back
55-
await fileCache.SetAsync<string>("key1", data, new CacheParameters(TimeSpan.FromSeconds(5.0)));
55+
await fileCache.SetAsync("key1", data, new CacheParameters(TimeSpan.FromSeconds(5.0)));
5656

5757
// remove it
58-
await fileCache.RemoveAsync<string>("key1");
58+
await fileCache.RemoveAsync("key1");
5959

6060
// should be gone
6161
Assert.That(item, Is.Null);
@@ -67,7 +67,7 @@ public async Task TestFileCache()
6767
for (int i = 0; i < testCount; i++)
6868
{
6969
int iCopy = i;
70-
tasks.Add(fileCache.SetAsync<string>("key_" + iCopy, "key_" + iCopy + "_" + data, new CacheParameters(TimeSpan.FromSeconds(5.0))));
70+
tasks.Add(fileCache.SetAsync("key_" + iCopy, "key_" + iCopy + "_" + data, new CacheParameters(TimeSpan.FromSeconds(5.0))));
7171
}
7272
await Task.WhenAll(tasks);
7373
tasks.Clear();
@@ -114,7 +114,7 @@ public async Task TestFileCache()
114114
for (int i = 0; i < testCount; i++)
115115
{
116116
int iCopy = i;
117-
tasks.Add(fileCache.SetAsync<string>("key_" + iCopy, "key_" + iCopy, new CacheParameters(TimeSpan.FromSeconds(5.0))));
117+
tasks.Add(fileCache.SetAsync("key_" + iCopy, "key_" + iCopy, new CacheParameters(TimeSpan.FromSeconds(5.0))));
118118
}
119119
await Task.WhenAll(tasks);
120120
tasks.Clear();
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,25 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

3-
<PropertyGroup>
4-
<TargetFramework>net6.0</TargetFramework>
5-
<ImplicitUsings>enable</ImplicitUsings>
6-
<Nullable>enable</Nullable>
7-
</PropertyGroup>
3+
<PropertyGroup>
4+
<TargetFramework>net6.0</TargetFramework>
5+
<ImplicitUsings>enable</ImplicitUsings>
6+
<Nullable>enable</Nullable>
7+
</PropertyGroup>
88

9-
<ItemGroup>
10-
<PackageReference Include="K4os.Compression.LZ4.Streams" Version="1.2.16" />
11-
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="6.0.5" />
12-
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="6.0.0" />
13-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.1" />
14-
<PackageReference Include="SauceControl.Blake2Fast" Version="2.0.0" />
15-
</ItemGroup>
9+
<ItemGroup>
10+
<PackageReference Include="K4os.Compression.LZ4.Streams" Version="1.2.16" />
11+
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="6.0.1" />
12+
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="6.0.5" />
13+
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="6.0.0" />
14+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.1" />
15+
<PackageReference Include="Polly.Contrib.DuplicateRequestCollapser" Version="0.2.1" />
16+
<PackageReference Include="SauceControl.Blake2Fast" Version="2.0.0" />
17+
</ItemGroup>
18+
19+
<ItemGroup>
20+
<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleToAttribute">
21+
<_Parameter1>$(AssemblyName).Tests</_Parameter1>
22+
</AssemblyAttribute>
23+
</ItemGroup>
1624

1725
</Project>

0 commit comments

Comments
 (0)