using System.Threading; using System.Threading.Tasks; using System.Threading.Tasks.Dataflow; using Capnp.Rpc; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace Capnp.Net.Runtime.Tests { class ProvidedCapabilityMultiCallMock : RefCountingSkeleton { readonly BufferBlock _ccs = new BufferBlock(); public override Task Invoke(ulong interfaceId, ushort methodId, DeserializerState args, CancellationToken cancellationToken = default(CancellationToken)) { var cc = new TestCallContext(interfaceId, methodId, args, cancellationToken); Assert.IsTrue(_ccs.Post(cc)); return cc.Result.Task; } public Task WhenCalled => _ccs.ReceiveAsync(); } }