public void ReturnDifferences() { // 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 comparisonResult = this.diffService.GetDifferencesAsync(id).Result; // Assert Assert.Equal(DiffComparisonResultType.NotEqual, comparisonResult.Result); Assert.Single(comparisonResult.Differences); Assert.Collection(comparisonResult.Differences, pair => Assert.True(pair.Key == 0 && pair.Value == 2)); }
public void ReturnLengthNotEqual() { // Arrange var leftInput = Convert.FromBase64String(Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("some data"))); var rightInput = Convert.FromBase64String(Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("some other 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 comparisonResult = this.diffService.GetDifferencesAsync(id).Result; // Assert Assert.Equal(DiffComparisonResultType.LengthNotEqual, comparisonResult.Result); }
public async void CreateTheDifferenceResource() { // 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"))); // Act var diffToCreate = new DifferenceForCreationDto { Left = leftInput, Right = rightInput }; DifferenceDto createdDiff = await this.diffService.CreateAsync(diffToCreate); // Assert Assert.NotNull(createdDiff); Difference difference; using (var differenceContext = new DifferenceContext(this.contextOptions)) { difference = differenceContext.Differences.Find(createdDiff.Id); } Assert.Equal( "LF data", System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(Convert.ToBase64String(difference.Left)))); Assert.Equal( "RT data", System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(Convert.ToBase64String(difference.Right)))); }
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)))); }
public DiffService_GetDifferencesAsync_Should() { this.contextOptions = new DbContextOptionsBuilder <DifferenceContext>() .UseInMemoryDatabase("InMemoryDbForTesting").Options; var context = new DifferenceContext(this.contextOptions); DifferenceAsyncRepository differenceAsyncRepository = new DifferenceAsyncRepository(context); DifferenceUnitOfWork differenceUnitOfWork = new DifferenceUnitOfWork(context, differenceAsyncRepository); var diffsFinder = new DiffsFinder(); this.diffService = new DiffService(diffsFinder, differenceUnitOfWork); }
public async void UpdateTheRightDiffDataGivenAnExistingId() { // Arrange var rightInput = Convert.FromBase64String(Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("Right data"))); Guid id = Guid.NewGuid(); using (var differenceContext = new DifferenceContext(this.contextOptions)) { Difference diff = new Difference { Id = id, Right = rightInput }; differenceContext.Differences.Add(diff); differenceContext.SaveChanges(); } // Act var newRightInput = Convert.FromBase64String(Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("New right data"))); await this.diffService.AddRightDiffItemAsync(id, newRightInput); // Assert // Assert Difference difference; using (var differenceContext = new DifferenceContext(this.contextOptions)) { difference = differenceContext.Differences.Find(id); } Assert.NotNull(difference); Assert.Equal( "New right data", System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(Convert.ToBase64String(difference.Right)))); }
public async void AddTheLeftDiffData() { // Arrange var leftInput = Convert.FromBase64String(Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("Left data"))); Guid id = Guid.NewGuid(); // Act await this.diffService.AddLeftDiffItemAsync(id, leftInput); // Assert Difference difference; using (var differenceContext = new DifferenceContext(this.contextOptions)) { difference = differenceContext.Differences.Find(id); } Assert.NotNull(difference); Assert.Equal( "Left data", System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(Convert.ToBase64String(difference.Left)))); }
/// <summary> /// Initializes a new instance of the <see cref="DifferenceAsyncRepository"/> class. /// </summary> /// <param name="context"> /// The context. /// </param> public DifferenceAsyncRepository(DifferenceContext context) : base(context) { }
/// <summary> /// Initializes a new instance of the <see cref="DifferenceUnitOfWork"/> class. /// </summary> /// <param name="context"> /// The context. /// </param> /// <param name="differenceAsyncRepository"> /// The Difference repository. /// </param> public DifferenceUnitOfWork(DifferenceContext context, IDifferenceAsyncRepository differenceAsyncRepository) { this.context = context; this.DifferenceAsyncRepository = differenceAsyncRepository; }