public void EnsureCacheLifetime() { var keyVaultHelper = new KeyVaultHelper(ConfigurationManager.AppSettings["ApplicationId"], ConfigurationManager.AppSettings["ApplicationCertificate"]); var kv = new KeyVaultCache(keyVaultHelper, 4); var sw1 = Stopwatch.StartNew(); var uncached = kv.GetSecret(_secret1, true).GetAwaiter().GetResult(); sw1.Stop(); var sw2 = Stopwatch.StartNew(); var cached = kv.GetSecret(_secret1).GetAwaiter().GetResult(); sw2.Stop(); Thread.Sleep(5000); var sw3 = Stopwatch.StartNew(); var refetch = kv.GetSecret(_secret1).GetAwaiter().GetResult(); sw3.Stop(); Trace.WriteLine($"Uncached: {sw1.ElapsedMilliseconds}, cached: {sw2.ElapsedMilliseconds}, refetch: {sw3.ElapsedMilliseconds} ms"); Assert.AreEqual(uncached, cached); Assert.AreEqual(refetch, cached); Assert.IsTrue(sw1.ElapsedMilliseconds > 100); Assert.IsTrue(sw2.ElapsedMilliseconds < 10); Assert.IsTrue(sw3.ElapsedMilliseconds > 100); }
public void EnsureCachingWorks() { var sw1 = Stopwatch.StartNew(); var uncached = _kv.GetSecret(_secret1, true).GetAwaiter().GetResult(); sw1.Stop(); var sw2 = Stopwatch.StartNew(); var cached = _kv.GetSecret(_secret1).GetAwaiter().GetResult(); sw2.Stop(); Assert.AreEqual(uncached, cached); Assert.IsTrue(sw1.ElapsedTicks > sw2.ElapsedTicks); Trace.WriteLine($"Uncached: {sw1.ElapsedMilliseconds}, cached {sw2.ElapsedMilliseconds} ms"); }