Esempio n. 1
0
        public async Task TestCleanup()
        {
            var storage = new SolutionAssetCache(
                cleanupInterval: TimeSpan.FromMilliseconds(1),
                purgeAfter: TimeSpan.FromMilliseconds(2),
                gcAfter: TimeSpan.FromMilliseconds(5)
                );

            var checksum = Checksum.Create(
                WellKnownSynchronizationKind.Null,
                ImmutableArray.CreateRange(Guid.NewGuid().ToByteArray())
                );
            var data = new object();

            Assert.True(storage.TryAddAsset(checksum, data));

            for (var i = 0; i < 10; i++)
            {
                await Task.Delay(10);

                if (!storage.TryGetAsset(checksum, out object _))
                {
                    // asset is deleted
                    return;
                }
            }

            // it should not reach here
            Assert.True(false, "asset not cleaned up");
        }
        public void TestGetAssets()
        {
            var storage = new SolutionAssetCache();

            var checksum = Checksum.Create(WellKnownSynchronizationKind.Null, ImmutableArray.CreateRange(Guid.NewGuid().ToByteArray()));
            var data     = new object();

            Assert.True(storage.TryAddAsset(checksum, data));

            Assert.True(storage.TryGetAsset(checksum, out object _));
        }