Beispiel #1
0
        public void GetThenGetOrAddThenGetWithNoSetUp_TestObject_ReturnsExpectedResults()
        {
            var cacheKey        = "SomethingInTheCache";
            var expectedResult1 = default(TestObject);
            var expectedResult2 = new TestObject();
            var expectedResult3 = default(TestObject);

            var cacheMock   = MockFactory.CreateCachingServiceMock();
            var mockedCache = cacheMock.Object;

            var actualResult1 = mockedCache.Get <TestObject>(cacheKey);
            var actualResult2 = mockedCache.GetOrAdd(cacheKey, () => expectedResult2, DateTimeOffset.Now.AddMinutes(30));
            var actualResult3 = mockedCache.Get <TestObject>(cacheKey);

            Assert.Multiple(() => {
                Assert.IsNull(actualResult1);
                Assert.AreSame(expectedResult1, actualResult1);

                Assert.AreSame(expectedResult2, actualResult2);

                Assert.IsNull(actualResult3);
                Assert.AreSame(expectedResult3, actualResult3);

                cacheMock.Verify(m => m.GetOrAdd(It.IsAny <string>(), It.IsAny <Func <ICacheEntry, TestObject> >()), Times.Once);
                cacheMock.Verify(m => m.Get <TestObject>(It.IsAny <string>()), Times.Exactly(2));
            });
        }
Beispiel #2
0
        public void GetWithNoSetUp_ReturnsNull()
        {
            var cacheKey = "SomethingInTheCache";

            var cacheMock   = MockFactory.CreateCachingServiceMock();
            var mockedCache = cacheMock.Object;

            var actualResult = mockedCache.Get <string>(cacheKey);

            Assert.IsNull(actualResult);
        }
Beispiel #3
0
        public async Task GetOrAddAsyncWithNoSetUp_TestObject_ReturnsExpectedResult()
        {
            var cacheKey       = "SomethingInTheCache";
            var expectedResult = new TestObject();

            var cacheMock   = MockFactory.CreateCachingServiceMock();
            var mockedCache = cacheMock.Object;

            var actualResult = await mockedCache.GetOrAddAsync(cacheKey, () => Task.FromResult(expectedResult));

            Assert.AreSame(expectedResult, actualResult);
        }
Beispiel #4
0
        public void GetOrAddWithReturnsDefaultSetUp_Guid_ReturnsExpectedResult()
        {
            var cacheKey       = "SomethingInTheCache";
            var expectedResult = Guid.NewGuid().ToString();

            var cacheMock = MockFactory.CreateCachingServiceMock();

            cacheMock.SetReturnsDefault(expectedResult);
            var mockedCache = cacheMock.Object;

            var actualResult = mockedCache.GetOrAdd(cacheKey, () => expectedResult, DateTimeOffset.Now.AddMinutes(30));

            Assert.AreSame(expectedResult, actualResult);
        }
Beispiel #5
0
        public async Task GetOrAddAsyncWithSetUp_Guid_ReturnsExpectedResult()
        {
            var cacheKey       = "SomethingInTheCache";
            var expectedResult = Guid.NewGuid().ToString();

            var cacheMock = MockFactory.CreateCachingServiceMock();

            cacheMock.SetUpCacheEntry(cacheKey, expectedResult);
            var mockedCache = cacheMock.Object;

            var actualResult = await mockedCache.GetOrAddAsync(cacheKey, () => Task.FromResult(expectedResult));

            Assert.AreSame(expectedResult, actualResult);
        }
Beispiel #6
0
        public void GetOrAddWithNoSetUp_TestObject_ReturnsExpectedResult()
        {
            var cacheKey       = "SomethingInTheCache";
            var expectedResult = new TestObject();

            var cacheMock   = MockFactory.CreateCachingServiceMock();
            var mockedCache = cacheMock.Object;

            var actualResult = mockedCache.GetOrAdd(cacheKey, () => expectedResult, DateTimeOffset.Now.AddMinutes(30));

            Assert.Multiple(() => {
                Assert.AreSame(expectedResult, actualResult);
                cacheMock.Verify(m => m.GetOrAdd(It.IsAny <string>(), It.IsAny <Func <ICacheEntry, TestObject> >()), Times.Once);
            });
        }