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()); }
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>(); }
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))); }
public Task <IActionResult> PostRight(int id, [FromBody] SourceContentRequest model) { return(ReceiveSourceContent(id, SourceSide.Right, model)); }