Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }