static PubSubCacheController() { var connection = ConnectionMultiplexer.Connect("localhost"); var serializer = new MsgPackItemSerializer(); var remoteCache = new RedisCache(connection.GetDatabase(), serializer); var _pubSubCache = new DoubleCache.DoubleCache( new SubscribingCache(new DoubleCache.LocalCache.MemCache(), new RedisSubscriber(connection, remoteCache, serializer)), new PublishingCache(remoteCache, new RedisPublisher(connection, serializer))); }
public DoubleCacheTests() { _local = A.Fake <ICacheAside>(); _remote = A.Fake <ICacheAside>(); _doubleCache = new DoubleCache.DoubleCache( _local, _remote); }
public async Task GetAsyncGeneric_WithTimeToLive_CalledOnLocal() { var local = A.Fake <ICacheAside>(); var remote = A.Fake <ICacheAside>(); var doubleCache = new DoubleCache.DoubleCache( local, remote); await doubleCache.GetAsync <string>("A", null, TimeSpan.FromSeconds(1)); A.CallTo(() => local.GetAsync <string>("A", A <Func <Task <string> > > .Ignored, TimeSpan.FromSeconds(1))).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => remote.GetAsync <string>("A", A <Func <Task <string> > > .Ignored)).MustNotHaveHappened(); }
public async Task GetAsync_CalledOnLocal() { var local = A.Fake <ICacheAside>(); var remote = A.Fake <ICacheAside>(); var doubleCache = new DoubleCache.DoubleCache( local, remote); await doubleCache.GetAsync("A", typeof(string), null); A.CallTo(() => local.GetAsync("A", A <Type> .Ignored, A <Func <Task <object> > > .Ignored)).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => remote.GetAsync("A", A <Type> .Ignored, A <Func <Task <object> > > .Ignored)).MustNotHaveHappened(); }
public void AddWithTimeout_CalledOnBoth() { var local = A.Fake <ICacheAside>(); var remote = A.Fake <ICacheAside>(); var doubleCache = new DoubleCache.DoubleCache( local, remote); doubleCache.Add("A", "B", TimeSpan.FromMinutes(5)); A.CallTo(() => local.Add("A", "B", TimeSpan.FromMinutes(5))).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => remote.Add("A", "B", TimeSpan.FromMinutes(5))).MustHaveHappened(Repeated.Exactly.Once); }
public void Add_CalledOnBoth() { var local = A.Fake <ICacheAside>(); var remote = A.Fake <ICacheAside>(); var doubleCache = new DoubleCache.DoubleCache( local, remote); doubleCache.Add("A", "B"); A.CallTo(() => local.Add("A", "B")).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => remote.Add("A", "B")).MustHaveHappened(Repeated.Exactly.Once); }
public async Task GetAsync_WithTimeToLive_CalledOnLocal() { var local = A.Fake<ICacheAside>(); var remote = A.Fake<ICacheAside>(); var doubleCache = new DoubleCache.DoubleCache( local, remote); await doubleCache.GetAsync("A", typeof(string), null, TimeSpan.FromSeconds(1)); A.CallTo(() => local.GetAsync("A", A<Type>.Ignored, A<Func<Task<object>>>.Ignored, TimeSpan.FromSeconds(1))).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => remote.GetAsync("A", A<Type>.Ignored, A<Func<Task<object>>>.Ignored, TimeSpan.FromSeconds(1))).MustNotHaveHappened(); }
public void AddWithTimeout_CalledOnBoth() { var local = A.Fake<ICacheAside>(); var remote = A.Fake<ICacheAside>(); var doubleCache = new DoubleCache.DoubleCache( local, remote); doubleCache.Add("A", "B",TimeSpan.FromMinutes(5)); A.CallTo(() => local.Add("A", "B", TimeSpan.FromMinutes(5))).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => remote.Add("A", "B", TimeSpan.FromMinutes(5))).MustHaveHappened(Repeated.Exactly.Once); }
public void Add_CalledOnBoth() { var local = A.Fake<ICacheAside>(); var remote = A.Fake<ICacheAside>(); var doubleCache = new DoubleCache.DoubleCache( local, remote); doubleCache.Add("A", "B"); A.CallTo(() => local.Add("A", "B")).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => remote.Add("A", "B")).MustHaveHappened(Repeated.Exactly.Once); }
public async Task GetAsyncGeneric_CalledOnLocal() { var local = A.Fake<ICacheAside>(); var remote = A.Fake<ICacheAside>(); var doubleCache = new DoubleCache.DoubleCache( local, remote); await doubleCache.GetAsync<string>("A", null); A.CallTo(() => local.GetAsync<string>("A", A<Func<Task<string>>>.Ignored)).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => remote.GetAsync<string>("A", A<Func<Task<string>>>.Ignored)).MustNotHaveHappened(); }