Exemplo n.º 1
0
 public IcmClient(KeyVaultClient keyVault, string icmUri, Guid connectorId, string connectorCertificateName, IClock clock)
 {
     _keyVault    = keyVault;
     _uri         = icmUri;
     _connectorId = connectorId;
     _connectorCertificateName = connectorCertificateName;
     _cachedIcms = new VolatileSet <string>(clock);
 }
Exemplo n.º 2
0
        public void TestVolatileSetAddExpired()
        {
            var clock = new MemoryClock();
            var set = new VolatileSet<int>(clock);

            set.Add(0, TimeSpan.FromSeconds(100));

            clock.UtcNow += TimeSpan.FromSeconds(101);

            set.Add(0, TimeSpan.FromSeconds(10)).Should().BeTrue("Adding for an expired entry should return true (as if the entry was missing)");
        }
Exemplo n.º 3
0
        public void TestVolatileWithShortHashSet()
        {
            var clock = new MemoryClock();
            var set   = new VolatileSet <ShortHash>(clock);

            for (int i = 0; i < 500_000; i++)
            {
                var hash      = ContentHash.Random(HashType.Vso0);
                var shortHash = new ShortHash(hash);

                set.Add(shortHash, TimeSpan.FromMinutes(30));
                set.Contains(shortHash).Should().BeTrue();
            }
        }
Exemplo n.º 4
0
        public void TestVolatileSet()
        {
            var clock = new MemoryClock();
            var set = new VolatileSet<int>(clock);

            set.Add(0, TimeSpan.FromSeconds(100));
            set.Add(1, TimeSpan.FromSeconds(10));

            set.Contains(1).Should().BeTrue();

            // Increment time to invalidate item
            clock.UtcNow += TimeSpan.FromSeconds(11);

            // Item 1 should be invalidated, but 0 should remain
            set.Contains(1).Should().BeFalse();
            set.Contains(0).Should().BeTrue();

            // Explicitly invalidating item should remove it
            set.Invalidate(0);
            set.Contains(0).Should().BeFalse();

            set = new VolatileSet<int>(clock);

            set.Add(1, TimeSpan.FromSeconds(10));
            set.Add(2, TimeSpan.FromSeconds(20));
            set.Add(3, TimeSpan.FromSeconds(30));
            set.Add(4, TimeSpan.FromSeconds(40));
            set.Add(5, TimeSpan.FromSeconds(50));

            clock.UtcNow += TimeSpan.FromSeconds(25);

            // Should only be able to remove items 1 and 2 since they have expired
            set.CleanStaleItems(20).Should().Be(2);

            set.Contains(1).Should().BeFalse();
            set.Contains(2).Should().BeFalse();
            set.Contains(3).Should().BeTrue();
            set.Contains(4).Should().BeTrue();
            set.Contains(5).Should().BeTrue();

            // Move time past original timeout for 3 but add with 20 seconds from current time
            // 3 should be retained
            set.Add(3, TimeSpan.FromSeconds(20));
            clock.UtcNow += TimeSpan.FromSeconds(10);
            set.Contains(3).Should().BeTrue();
        }