up
This commit is contained in:
@@ -22,7 +22,6 @@ using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Microsoft.AspNetCore.TestHost;
|
||||
using MongoDB.Driver;
|
||||
using StackExchange.Redis;
|
||||
using StellaOps.Attestor.Core.Offline;
|
||||
using StellaOps.Attestor.Core.Storage;
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
#if false
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.Extensions.Options;
|
||||
using MongoDB.Bson;
|
||||
using MongoDB.Driver;
|
||||
using StackExchange.Redis;
|
||||
using StellaOps.Attestor.Core.Options;
|
||||
using StellaOps.Attestor.Infrastructure.Storage;
|
||||
@@ -15,54 +14,6 @@ public sealed class LiveDedupeStoreTests
|
||||
{
|
||||
private const string Category = "LiveTTL";
|
||||
|
||||
[Fact]
|
||||
[Trait("Category", Category)]
|
||||
public async Task Mongo_dedupe_document_expires_via_ttl_index()
|
||||
{
|
||||
var mongoUri = Environment.GetEnvironmentVariable("ATTESTOR_LIVE_MONGO_URI");
|
||||
if (string.IsNullOrWhiteSpace(mongoUri))
|
||||
{
|
||||
return;
|
||||
}
|
||||
var mongoUrl = new MongoUrl(mongoUri);
|
||||
var client = new MongoClient(mongoUrl);
|
||||
var databaseName = $"{(string.IsNullOrWhiteSpace(mongoUrl.DatabaseName) ? "attestor_live_ttl" : mongoUrl.DatabaseName)}_{Guid.NewGuid():N}";
|
||||
var database = client.GetDatabase(databaseName);
|
||||
var collection = database.GetCollection<MongoAttestorDedupeStore.AttestorDedupeDocument>("dedupe");
|
||||
|
||||
try
|
||||
{
|
||||
var store = new MongoAttestorDedupeStore(collection, TimeProvider.System);
|
||||
|
||||
var indexes = await (await collection.Indexes.ListAsync()).ToListAsync();
|
||||
Assert.Contains(indexes, doc => doc.TryGetElement("name", out var element) && element.Value == "dedupe_ttl");
|
||||
|
||||
var bundle = Guid.NewGuid().ToString("N");
|
||||
var ttl = TimeSpan.FromSeconds(20);
|
||||
await store.SetAsync(bundle, "rekor-live", ttl);
|
||||
|
||||
var filter = Builders<MongoAttestorDedupeStore.AttestorDedupeDocument>.Filter.Eq(x => x.Key, $"bundle:{bundle}");
|
||||
Assert.True(await collection.Find(filter).AnyAsync(), "Seed document was not written.");
|
||||
|
||||
var deadline = DateTime.UtcNow + ttl + TimeSpan.FromMinutes(2);
|
||||
while (DateTime.UtcNow < deadline)
|
||||
{
|
||||
if (!await collection.Find(filter).AnyAsync())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
await Task.Delay(TimeSpan.FromSeconds(5));
|
||||
}
|
||||
|
||||
throw new TimeoutException("TTL document remained in MongoDB after waiting for expiry.");
|
||||
}
|
||||
finally
|
||||
{
|
||||
await client.DropDatabaseAsync(databaseName);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[Trait("Category", Category)]
|
||||
public async Task Redis_dedupe_entry_sets_time_to_live()
|
||||
@@ -106,5 +57,5 @@ public sealed class LiveDedupeStoreTests
|
||||
await multiplexer.DisposeAsync();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user