Ejemplo n.º 1
0
        private async Task VerifyAsync(RemotableData remotableData, ISerializerService serializerService, CancellationToken cancellationToken)
        {
            using (var stream = new MemoryStream())
                using (var writer = new ObjectWriter(stream, cancellationToken))
                {
                    await remotableData.WriteObjectToAsync(writer, cancellationToken).ConfigureAwait(false);

                    stream.Position = 0;

                    using (var reader = ObjectReader.TryGetReader(stream, cancellationToken))
                    {
                        var value    = serializerService.Deserialize <object>(remotableData.Kind, reader, cancellationToken);
                        var checksum = serializerService.CreateChecksum(value, cancellationToken);

                        Debug.Assert(checksum == remotableData.Checksum);
                    }
                }
        }
Ejemplo n.º 2
0
        private static async Task <RemotableData> CloneAssetAsync(Serializer serializer, RemotableData asset)
        {
            using (var stream = SerializableBytes.CreateWritableStream())
                using (var writer = new ObjectWriter(stream))
                {
                    await asset.WriteObjectToAsync(writer, CancellationToken.None).ConfigureAwait(false);

                    stream.Position = 0;
                    using (var reader = ObjectReader.TryGetReader(stream))
                    {
                        var recovered        = serializer.Deserialize <object>(asset.Kind, reader, CancellationToken.None);
                        var assetFromStorage = SolutionAsset.Create(serializer.CreateChecksum(recovered, CancellationToken.None), recovered, serializer);

                        Assert.Equal(asset.Checksum, assetFromStorage.Checksum);
                        return(assetFromStorage);
                    }
                }
        }
 internal static async Task VerifySynchronizationObjectInServiceAsync(IRemotableDataService snapshotService, RemotableData syncObject)
 => await VerifyChecksumInServiceAsync(snapshotService, syncObject.Checksum, syncObject.Kind).ConfigureAwait(false);