Files
speckle-sharp-sdk/tests/Speckle.Sdk.Serialization.Tests/CancellationSqLiteJsonCacheManager.cs
T
Adam Hathcock f163b2822e (feat) add memory serialize and make relevant tests use it (#252)
* First pass of ObjectSaver and better in-memory usage

* fix some tests

* add commit to match deserialize process

* correct more tests

* format

* make a deserialize factory

* fix tests? and format

* use distinct

* Fix mismerge

* Fix serialization issues with tests

* fix merges

* follow copilot suggestions

* remove disables
2025-04-08 10:21:47 +01:00

55 lines
1.8 KiB
C#

using System.Collections.Concurrent;
using Speckle.Sdk.Serialisation;
using Speckle.Sdk.Serialisation.V2;
using Speckle.Sdk.Serialisation.V2.Send;
using Speckle.Sdk.Testing.Framework;
using Speckle.Sdk.Transports;
namespace Speckle.Sdk.Serialization.Tests;
public sealed class CancellationSqLiteJsonCacheManager(CancellationTokenSource cancellationTokenSource)
: MemoryJsonCacheManager(new ConcurrentDictionary<Id, Json>())
{
public override void SaveObjects(IEnumerable<(string id, string json)> items)
{
cancellationTokenSource.Cancel();
cancellationTokenSource.Token.ThrowIfCancellationRequested();
}
}
public class CancellationSqLiteSendManager(CancellationTokenSource cancellationTokenSource) : DummySqLiteSendManager
{
public override void SaveObjects(IEnumerable<(string id, string json)> items)
{
cancellationTokenSource.Cancel();
cancellationTokenSource.Token.ThrowIfCancellationRequested();
}
}
public class CancellationServerObjectManager(CancellationTokenSource cancellationTokenSource)
: MemoryServerObjectManager(new ConcurrentDictionary<string, string>())
{
public override Task UploadObjects(
IReadOnlyList<BaseItem> objects,
bool compressPayloads,
IProgress<ProgressArgs>? progress,
CancellationToken cancellationToken
)
{
cancellationTokenSource.Cancel();
cancellationTokenSource.Token.ThrowIfCancellationRequested();
return base.UploadObjects(objects, compressPayloads, progress, cancellationToken);
}
public override Task<string?> DownloadSingleObject(
string objectId,
IProgress<ProgressArgs>? progress,
CancellationToken cancellationToken
)
{
cancellationTokenSource.Cancel();
cancellationTokenSource.Token.ThrowIfCancellationRequested();
return base.DownloadSingleObject(objectId, progress, cancellationToken);
}
}