public async void UpdateTheDiffDataOfAnExistingResource(string left, string right) { // Arrange var leftInput = Convert.FromBase64String(Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("LF data"))); var rightInput = Convert.FromBase64String(Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("RT data"))); Guid id = Guid.NewGuid(); using (var differenceContext = new DifferenceContext(this.contextOptions)) { Difference diff = new Difference { Id = id, Left = leftInput, Right = rightInput }; differenceContext.Differences.Add(diff); differenceContext.SaveChanges(); } // Act var newLeftInput = left == null ? null : Convert.FromBase64String( Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(left))); var newRightInput = right == null ? null : Convert.FromBase64String( Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(right))); var diffToUpdate = new DifferenceForUpdateDto { Left = newLeftInput, Right = newRightInput }; await this.diffService.UpdateAsync(id, diffToUpdate); // Assert Difference difference; using (var differenceContext = new DifferenceContext(this.contextOptions)) { difference = differenceContext.Differences.Find(id); } Assert.NotEqual( "LF data", System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(Convert.ToBase64String(difference.Left)))); Assert.NotEqual( "RT data", System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(Convert.ToBase64String(difference.Right)))); }
/// <inheritdoc /> public async Task UpdateAsync(Guid id, DifferenceForUpdateDto difference, CancellationToken cancellationToken = default(CancellationToken)) { if (difference == null) { throw new ArgumentNullException(nameof(difference)); } Difference differenceToUpdate = await this.differenceUnitOfWork.DifferenceAsyncRepository.RetrieveAsync(id, cancellationToken); if (differenceToUpdate == null) { throw new ResourceNotFoundException("No difference was found with the specified ID", id); } Difference updatedDifference = Mapper.Map(difference, differenceToUpdate); this.differenceUnitOfWork.DifferenceAsyncRepository.Update(updatedDifference); if (!await this.differenceUnitOfWork.SaveChangesAsync(cancellationToken)) { throw new Exception($"Updating the difference {id} failed on save."); } }
public async Task ShouldReturn404IfTheDifferenceDoenNotExist() { // Arrange var leftInput = Convert.FromBase64String(Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("LF data"))); var rightInput = Convert.FromBase64String(Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("RT data"))); Guid id = Guid.NewGuid(); // Act var diffToUpdate = new DifferenceForUpdateDto { Left = leftInput, Right = rightInput }; var requestContent = new ObjectContent <DifferenceForUpdateDto>(diffToUpdate, new JsonMediaTypeFormatter()); var response = await this.testHostCollectionFixture.Client.PutAsync($"{BaseUrl}/{id}", requestContent); // Assert Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); }
public async Task ShouldUpdateTheDifferenceData(string left, string right) { // Arrange var leftInput = Convert.FromBase64String(Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("LF data"))); var rightInput = Convert.FromBase64String(Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("RT data"))); Guid id = Guid.NewGuid(); using (var scope = this.testHostCollectionFixture.Host.Services.CreateScope()) { var context = scope.ServiceProvider.GetRequiredService <DifferenceContext>(); Difference diff = new Difference { Id = id, Left = leftInput, Right = rightInput }; context.Differences.Add(diff); context.SaveChanges(); } // Act var newLeftInput = left == null ? null : Convert.FromBase64String( Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(left))); var newRightInput = right == null ? null : Convert.FromBase64String( Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(right))); var diffToUpdate = new DifferenceForUpdateDto { Left = newLeftInput, Right = newRightInput }; var requestContent = new ObjectContent <DifferenceForUpdateDto>(diffToUpdate, new JsonMediaTypeFormatter()); var response = await this.testHostCollectionFixture.Client.PutAsync($"{BaseUrl}/{id}", requestContent); // Assert Assert.Equal(HttpStatusCode.NoContent, response.StatusCode); Difference updatedDiff; using (var scope = this.testHostCollectionFixture.Host.Services.CreateScope()) { var context = scope.ServiceProvider.GetRequiredService <DifferenceContext>(); updatedDiff = context.Differences.Find(id); } var updatedLeftDiffData = Convert.ToBase64String(updatedDiff.Left); var updatedRightDiffData = Convert.ToBase64String(updatedDiff.Right); Assert.NotNull(updatedDiff); Assert.NotEqual(Convert.ToBase64String(leftInput), updatedLeftDiffData); Assert.Equal( newLeftInput != null ? Convert.ToBase64String(newLeftInput) : string.Empty, updatedLeftDiffData); Assert.NotEqual(Convert.ToBase64String(rightInput), updatedRightDiffData); Assert.Equal( newRightInput != null ? Convert.ToBase64String(newRightInput) : string.Empty, updatedRightDiffData); }