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")); }); }
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")); }); }
// 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(); }
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)); }
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)); }
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); }
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(); }
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)); }