/// <summary> /// Serializes this object to a stream writer. /// </summary> /// <remarks> /// Doesn't handle any exceptions. /// </remarks> public async Task SerializeAsync(Stream stream, CancellationToken token) { await Utils.WriteIntAsync(stream, Id, token); await IpcOperation.SerializeAsync(stream, Operation, token); await stream.FlushAsync(token); }
public async Task TestIpcOperationSerializeAsync(string payload, bool waitForAck) { var ipcOp = new IpcOperation(payload, waitForAck); // serialize using var stream = new MemoryStream(); await ipcOp.SerializeAsync(stream, CancellationToken.None); // reset stream position and deserialize stream.Position = 0; var ipcOpClone = await IpcOperation.DeserializeAsync(stream, CancellationToken.None); // compare var errMessage = $"Cloning failed:\n - original: {ipcOp}\n - clone: {ipcOpClone}"; XAssert.AreEqual(payload, ipcOpClone.Payload, errMessage); XAssert.AreEqual(waitForAck, ipcOpClone.ShouldWaitForServerAck, errMessage); }