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)));
 }
 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);
        }
Пример #4
0
        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();
        }
Пример #5
0
        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();
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }
Пример #8
0
        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();
        }
Пример #9
0
        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);
        }
Пример #10
0
        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);
        }
Пример #11
0
        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();
        }