using System.Collections.Concurrent; using Speckle.Sdk.Serialisation.V2; using Speckle.Sdk.Serialisation.V2.Send; using Speckle.Sdk.Transports; namespace Speckle.Sdk.Testing.Framework; public class DummySendServerObjectManager(ConcurrentDictionary savedObjects) : IServerObjectManager { public IAsyncEnumerable<(string, string)> DownloadObjects( IReadOnlyCollection objectIds, IProgress? progress, CancellationToken cancellationToken ) => throw new NotImplementedException(); public Task DownloadSingleObject( string objectId, IProgress? progress, CancellationToken cancellationToken ) => throw new NotImplementedException(); public Task> HasObjects( IReadOnlyCollection objectIds, CancellationToken cancellationToken ) { return Task.FromResult(objectIds.Distinct().ToDictionary(x => x, savedObjects.ContainsKey)); } public Task UploadObjects( IReadOnlyList objects, bool compressPayloads, IProgress? progress, CancellationToken cancellationToken ) { foreach (var obj in objects) { savedObjects.TryAdd(obj.Id.Value, obj.Json.Value); } return Task.CompletedTask; } }