Esempio n. 1
0
        public async Task GivenCacheWithItemsOverMultipleRegions_WhenNonExistingRegionCleared_ThenCacheShouldntBeAffected()
        {
            // Arrange
            DataServiceMock.GetDataAsync("key1").Returns("Data1");
            DataServiceMock.GetDataAsync("key2").Returns("Data2");

            // Act
            var result1 = await Sut.GetOrAddAsync("key1", async key => await DataServiceMock.GetDataAsync(key),
                                                  "region1");

            var result2 = await Sut.GetOrAddAsync("key2", async key => await DataServiceMock.GetDataAsync(key),
                                                  "region2");

            await Sut.ClearAsync("non_existing_region");

            result1 = await Sut.GetOrAddAsync("key1", async key => await DataServiceMock.GetDataAsync(key),
                                              "region1");

            result2 = await Sut.GetOrAddAsync("key2", async key => await DataServiceMock.GetDataAsync(key),
                                              "region2");

            // Assert
            Assert.Equal("Data1", result1);
            Assert.Equal("Data2", result2);

            Received.InOrder(() =>
            {
                DataServiceMock.Received(1).GetDataAsync(Arg.Is <string>(request => request == "key1"));
                DataServiceMock.Received(1).GetDataAsync(Arg.Is <string>(request => request == "key2"));
            });
        }
Esempio n. 2
0
        public async Task GivenCacheWithItemsOverMultipleRegions_WhenRegionCleared_ThenFirstItemShouldBeRetrievedViaStore_And_SecondFromCache()
        {
            // Arrange
            DataServiceMock.GetDataAsync("key1").Returns("Data1");
            DataServiceMock.GetDataAsync("key2").Returns("Data2");

            // Act
            var result1 = await Sut.GetOrAddAsync("key1", async key => await DataServiceMock.GetDataAsync(key),
                                                  "region1");

            var result2 = await Sut.GetOrAddAsync("key2", async key => await DataServiceMock.GetDataAsync(key),
                                                  "region2");

            await Sut.ClearAsync("region1");

            result1 = await Sut.GetOrAddAsync("key1", async key => await DataServiceMock.GetDataAsync(key),
                                              "region1");

            result2 = await Sut.GetOrAddAsync("key2", async key => await DataServiceMock.GetDataAsync(key),
                                              "region2");

            // Assert
            Assert.Equal("Data1", result1);
            Assert.Equal("Data2", result2);

            Received.InOrder(() =>
            {
                DataServiceMock.Received(1).GetDataAsync(Arg.Is <string>(request => request == "key1"));
                DataServiceMock.Received(1).GetDataAsync(Arg.Is <string>(request => request == "key2"));
                DataServiceMock.Received(1).GetDataAsync(Arg.Is <string>(request => request == "key1"));
            });
        }
Esempio n. 3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            var dataMock = new DataServiceMock();

            services.AddSingleton <IArticlesDataService>(dataMock);
            services.AddSingleton <ICommentsDataService>(dataMock);

            services
            .AddCors()
            .AddMvc();
        }
Esempio n. 4
0
        public static void ClassInit(TestContext context)
        {
            ILoggerFactory  factory     = new LoggerFactory().AddDebug();
            DataServiceMock dataService = new DataServiceMock();

            _recordRepo       = dataService.GetRepository <Record>();
            _recordOperations = new RecordOperations(
                dataService,
                new RecordFetchProvider(),
                new Logger <RecordOperations>(factory));
        }
Esempio n. 5
0
        public async Task GivenEmptyCache_WhenDataRequested_ThenCreateAndCacheItem()
        {
            // Arrange
            DataServiceMock.GetDataAsync(CacheKey).Returns("Data1");

            // Act
            var result = await Sut.GetOrAddAsync(CacheKey, async key => await DataServiceMock.GetDataAsync(key),
                                                 Constants.DefaultRegion);

            // Assert
            Assert.Equal("Data1", result);

            await DataServiceMock.Received(1).GetDataAsync(Arg.Is <string>(request => request == CacheKey));
        }
Esempio n. 6
0
        public async Task InitializeDataTest()
        {
            //Arrange
            // Could also use Mock framework
            var service = new DataServiceMock();
            var vm      = new MainViewModel(service);

            // Act
            await vm.InitializeDataAsync();

            var expected = await service.GetFullname();

            // Assert
            Assert.AreEqual(expected, vm.Fullname);
        }
Esempio n. 7
0
        public async Task GivenCache_WhenDataSet_ThenWeShouldBeAbleToRetrieveCachedItem()
        {
            // Arrange
            DataServiceMock.GetDataAsync(CacheKey).Returns("Data1");

            // Act
            await Sut.SetAsync(CacheKey, "Data2", Constants.DefaultRegion);

            var result = await Sut.GetOrAddAsync(CacheKey, async key => await DataServiceMock.GetDataAsync(key),
                                                 Constants.DefaultRegion);

            // Assert
            Assert.Equal("Data2", result);

            DataServiceMock.DidNotReceiveWithAnyArgs();
        }
Esempio n. 8
0
        public async Task GivenCache_WhenDataRequestedAfterClearing_ThenRetrieveItemFromTheBackingStore()
        {
            // Arrange
            DataServiceMock.GetDataAsync(CacheKey).Returns("Data1");

            // Act
            var result = await Sut.GetOrAddAsync(CacheKey, async key => await DataServiceMock.GetDataAsync(key),
                                                 Constants.DefaultRegion);

            await Sut.ClearAsync();

            result = await Sut.GetOrAddAsync(CacheKey, async key => await DataServiceMock.GetDataAsync(key),
                                             Constants.DefaultRegion);

            // Assert
            Assert.Equal("Data1", result);

            await DataServiceMock.Received(2).GetDataAsync(Arg.Is <string>(request => request == CacheKey));
        }