public async Task UpdatePayload_CanRoundTrip() { var initial = new UpdatePayload { ChangedFile = "Some-file", Deltas = new[] { new UpdateDelta { ModuleId = Guid.NewGuid(), ILDelta = new byte[] { 0, 0, 1 }, MetadataDelta = new byte[] { 0, 1, 1 }, }, new UpdateDelta { ModuleId = Guid.NewGuid(), ILDelta = new byte[] { 1, 0, 0 }, MetadataDelta = new byte[] { 1, 0, 1 }, } }, }; using var stream = new MemoryStream(); await initial.WriteAsync(stream, default); stream.Position = 0; var read = await UpdatePayload.ReadAsync(stream, default); AssertEqual(initial, read); }
public async Task UpdatePayload_CanRoundTripUpdatedTypes() { var initial = new UpdatePayload { Deltas = new[] { new UpdateDelta { ModuleId = Guid.NewGuid(), ILDelta = new byte[] { 0, 0, 1 }, MetadataDelta = new byte[] { 0, 1, 1 }, UpdatedTypes = new int[] { 60, 74, 22323 }, }, new UpdateDelta { ModuleId = Guid.NewGuid(), ILDelta = new byte[] { 1, 0, 0 }, MetadataDelta = new byte[] { 1, 0, 1 }, UpdatedTypes = new int[] { -18 }, } }, }; using var stream = new MemoryStream(); await initial.WriteAsync(stream, default); stream.Position = 0; var read = await UpdatePayload.ReadAsync(stream, default); AssertEqual(initial, read); }
public async Task UpdatePayload_WithLargeDeltas_CanRoundtrip() { var initial = new UpdatePayload { Deltas = new[] { new UpdateDelta { ModuleId = Guid.NewGuid(), ILDelta = Enumerable.Range(0, 68200).Select(c => (byte)(c % 2)).ToArray(), MetadataDelta = new byte[] { 0, 1, 1 }, }, }, }; using var stream = new MemoryStream(); await initial.WriteAsync(stream, default); stream.Position = 0; var read = await UpdatePayload.ReadAsync(stream, default); AssertEqual(initial, read); }