Files
speckle-sharp-connectors/Sdk/Speckle.Connectors.Common.Tests/Caching/SendConversionCacheTests.cs
T
2025-03-17 11:51:07 +00:00

51 lines
1.5 KiB
C#

using FluentAssertions;
using NUnit.Framework;
using Speckle.Connectors.Common.Caching;
using Speckle.Sdk.Models;
using Speckle.Sdk.Serialisation;
namespace Speckle.Connectors.Common.Tests.Caching;
public class SendConversionCacheTests
{
[Test]
public void Store()
{
var cache = new SendConversionCache();
var projectId = "projectId";
var id = new Id("id");
var objectReference = new ObjectReference() { referencedId = "referencedId" };
var convertedReferences = new Dictionary<Id, ObjectReference>() { { id, objectReference } };
cache.StoreSendResult(projectId, convertedReferences);
cache.Cache.Count.Should().Be(1);
cache.TryGetValue(projectId, id.Value, out ObjectReference? reference).Should().BeTrue();
reference.Should().Be(objectReference);
cache.ClearCache();
cache.Cache.Count.Should().Be(0);
cache.TryGetValue(projectId, id.Value, out _).Should().BeFalse();
}
[Test]
public void Evict()
{
var cache = new SendConversionCache();
var projectId = "projectId";
var id = new Id("id");
var objectReference = new ObjectReference() { referencedId = "referencedId" };
var convertedReferences = new Dictionary<Id, ObjectReference>() { { id, objectReference } };
cache.StoreSendResult(projectId, convertedReferences);
cache.Cache.Count.Should().Be(1);
cache.TryGetValue(projectId, id.Value, out ObjectReference? reference).Should().BeTrue();
reference.Should().Be(objectReference);
cache.EvictObjects([id.Value]);
cache.Cache.Count.Should().Be(0);
}
}