public async Task Get_WithBadId_Within_CacheEntryExpirationDate_ShouldOnlyCallService_Once(string badId) { var cache = new MemoryCache(new MemoryCacheOptions()); var mockedService = new Mock <IOrgDataService>(); mockedService .Setup(x => x.GetOrgDataById(badId)) .Returns(Task.FromResult <OrgData?>(null)); var controller = new OrgDataController(mockedService.Object, cache); await controller.Get(badId); await controller.Get(badId); cache.Count.Should().Be(1); mockedService.Verify(x => x.GetOrgDataById(badId), Times.Once); }
public async Task Get_WithInterval_Over_CacheEntryExpirationDate_ShouldCallServiceTwice() { var cache = new MemoryCache(new MemoryCacheOptions()); const string validId = "123123123"; var testData = new OrgData(validId, "testname", "test"); var mockedService = new Mock <IOrgDataService>(); mockedService .Setup(x => x.GetOrgDataById(validId)) .Returns(Task.FromResult <OrgData?>(testData)); var controller = new OrgDataController(mockedService.Object, cache); await controller.Get(validId); await Task.Delay(TimeSpan.FromSeconds(31)); await controller.Get(validId); cache.Count.Should().Be(1); mockedService.Verify(x => x.GetOrgDataById(validId), Times.Exactly(2)); }