Esempio n. 1
0
        private async Task <IActionResult> ReceiveSourceContent(
            int id, SourceSide side, SourceContentRequest model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var content = new SourceContent {
                SourceSide = side
            };

            try
            {
                content.Data = Convert.FromBase64String(model.Data);
            }
            catch (FormatException)
            {
                return(BadRequest());
            }

            await _differenceService.AddSourceAsync(id, content);

            return(Ok());
        }
Esempio n. 2
0
        public async Task PostLeftReturnsBadRequestResultWhenModelDataIsNotBase64()
        {
            var service = Substitute.For <IDifferenceService>();
            var request = new SourceContentRequest
            {
                Data = "__."
            };

            var controller = new DiffController(service);
            var result     = await controller.PostLeft(10, request);

            result.Should().BeOfType <BadRequestResult>();
        }
Esempio n. 3
0
        public async Task PostLeftAddsSourceForGivenDiff(int diffId)
        {
            var data    = new byte[] { 1, 2, 3 };
            var service = Substitute.For <IDifferenceService>();
            var request = new SourceContentRequest
            {
                Data = Convert.ToBase64String(data)
            };

            var controller = new DiffController(service);
            var result     = await controller.PostLeft(diffId, request);

            result.Should().BeOfType <OkResult>();
            await service.Received().AddSourceAsync(diffId, Arg.Is <SourceContent>(
                                                        c => c.SourceSide == SourceSide.Left && c.Data.SequenceEqual(data)));
        }
Esempio n. 4
0
 public Task <IActionResult> PostRight(int id, [FromBody] SourceContentRequest model)
 {
     return(ReceiveSourceContent(id, SourceSide.Right, model));
 }