removed old memory cache and added a few tests for new asp memory cache

This commit is contained in:
TomPallister
2020-04-13 18:37:49 +01:00
parent b4c29fc727
commit 8b098d2336
7 changed files with 36 additions and 203 deletions

View File

@ -1,12 +1,11 @@
using Microsoft.Extensions.Caching.Memory;
namespace Ocelot.UnitTests.Cache
namespace Ocelot.UnitTests.Cache
{
using Ocelot.Cache;
using Shouldly;
using System;
using System.Threading;
using Xunit;
using Microsoft.Extensions.Caching.Memory;
public class AspMemoryCacheTests
{
@ -27,6 +26,13 @@ namespace Ocelot.UnitTests.Cache
fake.Value.ShouldBe(1);
}
[Fact]
public void doesnt_exist()
{
var result = _cache.Get("1", "region");
result.ShouldBeNull();
}
[Fact]
public void should_add_and_delete()
{
@ -42,11 +48,15 @@ namespace Ocelot.UnitTests.Cache
[Fact]
public void should_clear_region()
{
var fake = new Fake(1);
_cache.Add("1", fake, TimeSpan.FromSeconds(100), "region");
var fake1 = new Fake(1);
var fake2 = new Fake(2);
_cache.Add("1", fake1, TimeSpan.FromSeconds(100), "region");
_cache.Add("2", fake2, TimeSpan.FromSeconds(100), "region");
_cache.ClearRegion("region");
var result = _cache.Get("1", "region");
result.ShouldBeNull();
var result1 = _cache.Get("1", "region");
result1.ShouldBeNull();
var result2 = _cache.Get("2", "region");
result2.ShouldBeNull();
}
[Fact]

View File

@ -1,81 +0,0 @@
namespace Ocelot.UnitTests.Cache
{
using Ocelot.Cache;
using Shouldly;
using System;
using System.Threading;
using Xunit;
public class InMemoryCacheTests
{
private readonly InMemoryCache<Fake> _cache;
public InMemoryCacheTests()
{
_cache = new InMemoryCache<Fake>();
}
[Fact]
public void should_cache()
{
var fake = new Fake(1);
_cache.Add("1", fake, TimeSpan.FromSeconds(100), "region");
var result = _cache.Get("1", "region");
result.ShouldBe(fake);
fake.Value.ShouldBe(1);
}
[Fact]
public void should_add_and_delete()
{
var fake = new Fake(1);
_cache.Add("1", fake, TimeSpan.FromSeconds(100), "region");
var newFake = new Fake(1);
_cache.AddAndDelete("1", newFake, TimeSpan.FromSeconds(100), "region");
var result = _cache.Get("1", "region");
result.ShouldBe(newFake);
newFake.Value.ShouldBe(1);
}
[Fact]
public void should_clear_region()
{
var fake = new Fake(1);
_cache.Add("1", fake, TimeSpan.FromSeconds(100), "region");
_cache.ClearRegion("region");
var result = _cache.Get("1", "region");
result.ShouldBeNull();
}
[Fact]
public void should_clear_key_if_ttl_expired()
{
var fake = new Fake(1);
_cache.Add("1", fake, TimeSpan.FromMilliseconds(50), "region");
Thread.Sleep(200);
var result = _cache.Get("1", "region");
result.ShouldBeNull();
}
[Theory]
[InlineData(0)]
[InlineData(-1)]
public void should_not_add_to_cache_if_timespan_empty(int ttl)
{
var fake = new Fake(1);
_cache.Add("1", fake, TimeSpan.FromSeconds(ttl), "region");
var result = _cache.Get("1", "region");
result.ShouldBeNull();
}
private class Fake
{
public Fake(int value)
{
Value = value;
}
public int Value { get; }
}
}
}