public async Task GivenExpiredEntry_WhenCheckingIsOn_ThenWeRecallFactoryMethod() { var called = 0; var request = new FeatureEvaluationRequest { Name = "a", Path = "b" }; var cache = this.GivenEvaluationCache(); var results = await cache .isOn(request, () => { called++; return(Task.FromResult(true)); }); await Task.Delay(200.Milliseconds()); var resultsAgain = await cache .isOn(request, () => { called++; return(Task.FromResult(true)); }); called.Should().Be(2); results.Should().BeTrue(); resultsAgain.Should().BeTrue(); }
public async Task GivenNonEmptyCache_WhenCheckingIsOn_ThenWeDontCallFActoryMethod() { var called = 0; var request = new FeatureEvaluationRequest { Name = "a", Path = "b" }; var cache = this.GivenEvaluationCache(); var results = await cache .isOn(request, () => { called++; return(Task.FromResult(true)); }); var resultsAgain = await cache .isOn(request, () => { called++; return(Task.FromResult(true)); }); called.Should().Be(1); results.Should().BeTrue(); resultsAgain.Should().BeTrue(); }