Skip to content

Commit

Permalink
feat: expose raw cache database
Browse files Browse the repository at this point in the history
  • Loading branch information
catcherwong committed Sep 20, 2021
1 parent 9474dce commit a48832c
Show file tree
Hide file tree
Showing 18 changed files with 105 additions and 45 deletions.
40 changes: 20 additions & 20 deletions build/version.props
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
<Project>
<PropertyGroup>
<EasyCachingCorePackageVersion>1.4.0</EasyCachingCorePackageVersion>
<EasyCachingMemcachedPackageVersion>1.4.0</EasyCachingMemcachedPackageVersion>
<EasyCachingRedisPackageVersion>1.4.0</EasyCachingRedisPackageVersion>
<EasyCachingSQLitePackageVersion>1.4.0</EasyCachingSQLitePackageVersion>
<EasyCachingInMemoryPackageVersion>1.4.0</EasyCachingInMemoryPackageVersion>
<EasyCachingHybridPackageVersion>1.4.0</EasyCachingHybridPackageVersion>
<EasyCachingAspectCorePackageVersion>1.4.0</EasyCachingAspectCorePackageVersion>
<EasyCachingCastlePackageVersion>1.4.0</EasyCachingCastlePackageVersion>
<EasyCachingResponseCachingPackageVersion>1.4.0</EasyCachingResponseCachingPackageVersion>
<EasyCachingJsonPackageVersion>1.4.0</EasyCachingJsonPackageVersion>
<EasyCachingMessagePackPackageVersion>1.4.0</EasyCachingMessagePackPackageVersion>
<EasyCachingProtobufPackageVersion>1.4.0</EasyCachingProtobufPackageVersion>
<EasyCachingCSRedisPackageVersion>1.4.0</EasyCachingCSRedisPackageVersion>
<EasyCachingRedisBusPackageVersion>1.4.0</EasyCachingRedisBusPackageVersion>
<EasyCachingCSRedisBusPackageVersion>1.4.0</EasyCachingCSRedisBusPackageVersion>
<EasyCachingRabbitBusPackageVersion>1.4.0</EasyCachingRabbitBusPackageVersion>
<EasyCachingDiskPackageVersion>1.4.0</EasyCachingDiskPackageVersion>
<EasyCachingMsExtPackageVersion>1.4.0</EasyCachingMsExtPackageVersion>
<EasyCachingLiteDBPackageVersion>1.4.0</EasyCachingLiteDBPackageVersion>
<EasyCachingSTJsonPackageVersion>1.4.0</EasyCachingSTJsonPackageVersion>
<EasyCachingCorePackageVersion>1.4.1</EasyCachingCorePackageVersion>
<EasyCachingMemcachedPackageVersion>1.4.1</EasyCachingMemcachedPackageVersion>
<EasyCachingRedisPackageVersion>1.4.1</EasyCachingRedisPackageVersion>
<EasyCachingSQLitePackageVersion>1.4.1</EasyCachingSQLitePackageVersion>
<EasyCachingInMemoryPackageVersion>1.4.1</EasyCachingInMemoryPackageVersion>
<EasyCachingHybridPackageVersion>1.4.1</EasyCachingHybridPackageVersion>
<EasyCachingAspectCorePackageVersion>1.4.1</EasyCachingAspectCorePackageVersion>
<EasyCachingCastlePackageVersion>1.4.1</EasyCachingCastlePackageVersion>
<EasyCachingResponseCachingPackageVersion>1.4.1</EasyCachingResponseCachingPackageVersion>
<EasyCachingJsonPackageVersion>1.4.1</EasyCachingJsonPackageVersion>
<EasyCachingMessagePackPackageVersion>1.4.1</EasyCachingMessagePackPackageVersion>
<EasyCachingProtobufPackageVersion>1.4.1</EasyCachingProtobufPackageVersion>
<EasyCachingCSRedisPackageVersion>1.4.1</EasyCachingCSRedisPackageVersion>
<EasyCachingRedisBusPackageVersion>1.4.1</EasyCachingRedisBusPackageVersion>
<EasyCachingCSRedisBusPackageVersion>1.4.1</EasyCachingCSRedisBusPackageVersion>
<EasyCachingRabbitBusPackageVersion>1.4.1</EasyCachingRabbitBusPackageVersion>
<EasyCachingDiskPackageVersion>1.4.1</EasyCachingDiskPackageVersion>
<EasyCachingMsExtPackageVersion>1.4.1</EasyCachingMsExtPackageVersion>
<EasyCachingLiteDBPackageVersion>1.4.1</EasyCachingLiteDBPackageVersion>
<EasyCachingSTJsonPackageVersion>1.4.1</EasyCachingSTJsonPackageVersion>
</PropertyGroup>
</Project>
9 changes: 4 additions & 5 deletions src/EasyCaching.CSRedis/DefaultCSRedisCachingProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
using EasyCaching.Core;
using EasyCaching.Core.DistributedLock;
using EasyCaching.Core.Serialization;
using EasyCaching.CSRedis.DistributedLock;
using EasyCaching.CSRedis.DistributedLock;
using global::CSRedis;
using Microsoft.Extensions.Logging;
using System;
Expand Down Expand Up @@ -482,9 +482,8 @@ public override TimeSpan BaseGetExpiration(string cacheKey)
/// Get te information of this provider.
/// </summary>
/// <returns></returns>
public override ProviderInfo BaseGetProviderInfo()
{
return _info;
}
public override ProviderInfo BaseGetProviderInfo() => _info;

public override object BaseGetDatabse() => _cache;
}
}
3 changes: 3 additions & 0 deletions src/EasyCaching.Core/EasyCachingAbstractProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ public abstract class EasyCachingAbstractProvider : IEasyCachingProvider
public CachingProviderType CachingProviderType => this.ProviderType;
public CacheStats CacheStats => this.ProviderStats;

public object Database => BaseGetDatabse();

protected EasyCachingAbstractProvider() { }

protected EasyCachingAbstractProvider(IDistributedLockFactory lockFactory, BaseProviderOptions options)
Expand All @@ -39,6 +41,7 @@ protected EasyCachingAbstractProvider(IDistributedLockFactory lockFactory, BaseP
_options = options;
}

public abstract object BaseGetDatabse();
public abstract bool BaseExists(string cacheKey);
public abstract Task<bool> BaseExistsAsync(string cacheKey);
public abstract void BaseFlush();
Expand Down
5 changes: 5 additions & 0 deletions src/EasyCaching.Core/IEasyCachingProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -115,5 +115,10 @@ public interface IEasyCachingProvider : IEasyCachingProviderBase
/// </summary>
/// <returns></returns>
ProviderInfo GetProviderInfo();

/// <summary>
/// Get or sets the provider's database
/// </summary>
object Database { get; }
}
}
7 changes: 3 additions & 4 deletions src/EasyCaching.Disk/DefaultDiskCachingProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -673,9 +673,8 @@ private void DeleteDirectory(string path)
}
}

public override ProviderInfo BaseGetProviderInfo()
{
return _info;
}
public override ProviderInfo BaseGetProviderInfo() => _info;

public override object BaseGetDatabse() => throw new Exception("Disk provider don't support this ");
}
}
7 changes: 3 additions & 4 deletions src/EasyCaching.InMemory/DefaultInMemoryCachingProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -375,9 +375,8 @@ public override TimeSpan BaseGetExpiration(string cacheKey)
/// Get te information of this provider.
/// </summary>
/// <returns></returns>
public override ProviderInfo BaseGetProviderInfo()
{
return _info;
}
public override ProviderInfo BaseGetProviderInfo() => _info;

public override object BaseGetDatabse() => _cache;
}
}
7 changes: 3 additions & 4 deletions src/EasyCaching.LiteDB/DefaultLiteDBCachingProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -402,9 +402,8 @@ public override TimeSpan BaseGetExpiration(string cacheKey)
/// Get te information of this provider.
/// </summary>
/// <returns></returns>
public override ProviderInfo BaseGetProviderInfo()
{
return _info;
}
public override ProviderInfo BaseGetProviderInfo() => _info;

public override object BaseGetDatabse() => _cache;
}
}
2 changes: 2 additions & 0 deletions src/EasyCaching.Memcached/DefaultMemcachedCachingProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -412,6 +412,8 @@ public override ProviderInfo BaseGetProviderInfo()
return _info;
}

public override object BaseGetDatabse() => _memcachedClient;

private void OnCacheHit(string cacheKey)
{
CacheStats.OnHit();
Expand Down
7 changes: 3 additions & 4 deletions src/EasyCaching.Redis/DefaultRedisCachingProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -512,9 +512,8 @@ public override TimeSpan BaseGetExpiration(string cacheKey)
/// Get te information of this provider.
/// </summary>
/// <returns></returns>
public override ProviderInfo BaseGetProviderInfo()
{
return _info;
}
public override ProviderInfo BaseGetProviderInfo() => _info;

public override object BaseGetDatabse() => _cache;
}
}
7 changes: 3 additions & 4 deletions src/EasyCaching.SQLite/DefaultSQLiteCachingProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -413,9 +413,8 @@ public override TimeSpan BaseGetExpiration(string cacheKey)
/// Get te information of this provider.
/// </summary>
/// <returns></returns>
public override ProviderInfo BaseGetProviderInfo()
{
return _info;
}
public override ProviderInfo BaseGetProviderInfo() => _info;

public override object BaseGetDatabse() => _cache;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,15 @@ protected override IEasyCachingProvider CreateCachingProvider(Action<BaseProvide
IServiceProvider serviceProvider = services.BuildServiceProvider();
return serviceProvider.GetService<IEasyCachingProvider>();
}

[Fact]
public void GetDatabase_Should_Succeed()
{
var db = _provider.Database;

Assert.NotNull(db);
Assert.IsType<EasyCachingCSRedisClient>(db);
}
}

public class CSRedisCachingProviderWithNamedSerTest
Expand Down
10 changes: 10 additions & 0 deletions test/EasyCaching.UnitTests/CachingTests/LiteDBCachingTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
using System.IO;
using System.Threading.Tasks;
using Xunit;
using global::LiteDB;

public class LiteDBCachingTest : BaseCachingProviderTest
{
Expand Down Expand Up @@ -45,6 +46,15 @@ protected override Task GetAsync_Parallel_Should_Succeed()
protected override void Get_Parallel_Should_Succeed()
{
}

[Fact]
public void GetDatabase_Should_Succeed()
{
var db = _provider.Database;

Assert.NotNull(db);
Assert.IsAssignableFrom<ILiteCollection<CacheItem>>(db);
}
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,15 @@ private void GetCacheItem(string cacheKey, string prefix)
var val = _provider.Get<string>(cacheKey);
Assert.False(val.HasValue);
}

[Fact]
public void GetDatabase_Should_Succeed()
{
var db = _provider.Database;

Assert.NotNull(db);
Assert.IsType<EasyCachingMemcachedClient>(db);
}
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,17 @@ public void Issues150_DeepClone_Object_Test()

Assert.Equal("catcherwong", res2.Value.Name);
}

[Fact]
public void GetDatabase_Should_Succeed()
{
var db = _provider.Database;

Assert.NotNull(db);
Assert.IsType<InMemoryCaching>(db);
}
}

public class MemoryCachingProviderWithFactoryTest : BaseCachingProviderWithFactoryTest
{
public MemoryCachingProviderWithFactoryTest()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,15 @@ public void Use_Configuration_String_Should_Succeed()

Assert.Equal(8, dbProvider.GetDatabase().Database);
}

[Fact]
public void GetDatabase_Should_Succeed()
{
var db = _provider.Database;

Assert.NotNull(db);
Assert.IsType<StackExchange.Redis.IDatabase>(db);
}
}


Expand Down
5 changes: 5 additions & 0 deletions test/EasyCaching.UnitTests/Diagnostics/MyCachingProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -165,5 +165,10 @@ public override Task<bool> BaseTrySetAsync<T>(string cacheKey, T cacheValue, Tim
{
return Task.FromResult(false);
}

public override object BaseGetDatabse()
{
return null;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ public class FakeDistributedCachingProvider : IEasyCachingProvider

public CacheStats CacheStats => new CacheStats();

public object Database => null;

public virtual bool Exists(string cacheKey)
{
return true;
Expand Down
2 changes: 2 additions & 0 deletions test/EasyCaching.UnitTests/Fake/FakeLocalCachingProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ public class FakeLocalCachingProvider : IEasyCachingProvider

public CacheStats CacheStats => new CacheStats();

public object Database => null;

public bool Exists(string cacheKey)
{
return true;
Expand Down

0 comments on commit a48832c

Please sign in to comment.