Beispiel #1
0
        // ReSharper disable once TooManyDeclarations
        public async void CachingBehavior_CallHandlerWithCacheableRequest_ReturnCachedObject()
        {
            // Arrange
            var cacheableRequest = new FooRequestCacheable(TimeSpan.FromMilliseconds(10));
            var cachedObjectTime = DateTime.UtcNow;
            var actual           = new RefTypeObject
            {
                Foo     = 1,
                Bar     = "bar",
                Created = cachedObjectTime
            };
            var sut = new CachingBehavior <FooRequestCacheable, RefTypeObject>(_cache, _loggerFactory);

            // Act

            // call delegate, cache and return result
            await sut.Handle(cacheableRequest, CancellationToken.None,
                             async() => await Task.FromResult(actual));

            // waiting to spend some time
            await Task.Delay(5);

            // return cached result, even-though wrong result expected from delegate
            var expected = await sut.Handle(cacheableRequest, CancellationToken.None,
                                            async() => await Task.FromResult(new RefTypeObject()));

            // Assert
            Assert.Equal(expected.Created, cachedObjectTime);
        }
Beispiel #2
0
        public async void RefTypeExtensions_ASyncMethodSet_GetExpected()
        {
            // arrange
            const string key      = "RefType_ASync_Get_Set";
            var          expected = new RefTypeObject
            {
                foo     = 1,
                bar     = "test",
                Created = DateTime.Now
            };
            await _cache.SetAsync(key, expected, new DistributedCacheEntryOptions());

            // act
            var actual = await _cache.GetAsync <RefTypeObject>(key);

            // assert
            Assert.Equal(expected, actual);
        }
Beispiel #3
0
        public void MessagePack_SerializeAndDeSerialize_ReturnSame()
        {
            // arrange
            var sut    = new MessagePackSerializer();
            var actual = new RefTypeObject
            {
                foo     = 1,
                bar     = "test",
                Created = DateTime.UtcNow
            };

            // act
            var bytes    = sut.Serialize(actual);
            var expected = sut.Deserialize <RefTypeObject>(bytes);

            // assert
            Assert.Equal(expected, actual);
        }
        public void RefType_Basic_Get_Set()
        {
            // arrange
            const string key      = "basic-test";
            var          expected = new RefTypeObject
            {
                foo     = 1,
                bar     = "test",
                Created = DateTime.UtcNow
            };

            _session.Set(key, expected);

            // act
            var actual = _session.Get <RefTypeObject>(key);

            // assert
            Assert.Equal(expected, actual);
        }
        public void RefValue_TryGetValue()
        {
            //Given
            const string key      = "tryGetValue-test";
            var          expected = new RefTypeObject
            {
                foo     = 1,
                bar     = "test",
                Created = DateTime.UtcNow
            };

            _session.Set(key, expected);

            //When
            var result = _session.TryGetValue <RefTypeObject>(key, out var actual);

            //Then
            Assert.True(result);
            Assert.Equal(expected, actual);
        }
Beispiel #6
0
        public async void CachingBehavior_CallHandlerWithNormalRequest_ReturnExpectedObject()
        {
            //Given
            var request = new FooRequest();
            var actual  = new RefTypeObject
            {
                Foo     = 1,
                Bar     = "bar",
                Created = DateTime.UtcNow
            };
            var sut = new CachingBehavior <FooRequest, RefTypeObject>(_cache, _loggerFactory);


            //When
            var expected = await sut.Handle(request, CancellationToken.None,
                                            async() => await Task.FromResult(actual));

            //Then
            Assert.Equal(expected, actual);
        }
Beispiel #7
0
        public async void DistributedCacheHelperExtensions_AsyncGetOrCreate_GetExpected()
        {
            // arrange
            const string key      = "GetOrCreateAsync_Test";
            var          expected = new RefTypeObject
            {
                foo     = 1,
                bar     = "test",
                Created = DateTime.UtcNow
            };
            Func <Task <RefTypeObject> > factory = () =>
            {
                return(Task.FromResult(expected));
            };

            // act
            var cacheResult = await _cache.GetOrCreateAsync(key, factory);

            // assert
            Assert.Equal(expected, cacheResult);
            Assert.Equal(expected, _cache.Get <RefTypeObject>(key));
        }