private void ApplyChanges() { IDifferenceService service = new DifferenceService(); service.Apply(_infoBases[0]); _infoBases.Clear(); }
public async Task PushesSourceContentToQueue() { var content = new SourceContent { Data = new byte[] { 1, 2, 3 }, SourceSide = SourceSide.Left }; var queue = Substitute.For <IDifferenceQueue>(); var storage = Substitute.For <IStorage>(); var service = new DifferenceService(queue, Enumerable.Empty <IQueueConsumer>(), storage); await service.AddSourceAsync(10, content); await queue.Received().PushSourceAsync(content.InDiffBag(10)); }
public async Task RunsQueueConsumersOnTaskPoolScheduler() { var queue = Substitute.For <IDifferenceQueue>(); var storage = Substitute.For <IStorage>(); var consumer1 = Substitute.For <IQueueConsumer>(); var consumer2 = Substitute.For <IQueueConsumer>(); var cancellationToken = new CancellationToken(); var service = new DifferenceService(queue, new[] { consumer1, consumer2 }, storage); await service.RunAsync(cancellationToken); await consumer1.Received().RunAsync(TaskPoolScheduler.Default, cancellationToken); await consumer2.Received().RunAsync(TaskPoolScheduler.Default, cancellationToken); }
public void Compare_WhenSameObject_ShouldReturnEquals() { //Arrange var base64 = BuildSmallBase64(); var id = 1; //mocking left side var mockDiffLeftRepository = MockDiffLeft(base64, id); //mocking right side var mockDiffRightRepository = MockDiffRight(base64, id); var differenceService = new DifferenceService(mockDiffLeftRepository.Object, mockDiffRightRepository.Object); //Act var result = differenceService.Compare(id); //Assert Assert.Equal("EQUAL", result.Status); }
public void Compare_WhenDifferentSize_ShouldReturnDifferentSize() { //Arrange var smallBase64 = BuildSmallBase64(); var biggerBase64 = BuildBiggerBase64(); var id = 1; //mocking left side var mockDiffLeftRepository = MockDiffLeft(smallBase64, id); //mocking right side var mockDiffRightRepository = MockDiffRight(biggerBase64, id); var differenceService = new DifferenceService(mockDiffLeftRepository.Object, mockDiffRightRepository.Object); //Act var result = differenceService.Compare(id); //Assert Assert.Equal("DIFFERENT_SIZES", result.Status); }
public void Compare_WhenSameSizeButOneDifference_ShouldReturnInsights() { //Arrange var smallBase64 = BuildSmallBase64(); var differentBase64 = BuildSmallWithOneDifferenceBase64(); //var smallBase64 = "asdfghjkl"; //var differentBase64 = "asderhjkl"; var id = 1; //mocking left side var mockDiffLeftRepository = MockDiffLeft(smallBase64, id); //mocking right side var mockDiffRightRepository = MockDiffRight(differentBase64, id); var differenceService = new DifferenceService(mockDiffLeftRepository.Object, mockDiffRightRepository.Object); //Act var result = differenceService.Compare(id); //Assert Assert.Equal("SAME_SIZE_BUT_DIFFERENT_DATA", result.Status); Assert.Equal(1, result.Insights.Count); Assert.Equal(298, result.Insights.FirstOrDefault().Offset); Assert.Equal(1, result.Insights.FirstOrDefault().Lenght); }
public async Task FindsDiffInStorage(DifferenceType diffType, DifferenceReadiness diffReadiness, int leftOffset) { var queue = Substitute.For <IDifferenceQueue>(); var storage = Substitute.For <IStorage>(); var diff = new DifferenceContent { Type = diffType, Details = new[] { new DifferenceDetail { LeftOffset = leftOffset } }, }; storage.LoadDiffAsync(10).Returns(Task.FromResult((diff, diffReadiness))); var service = new DifferenceService(queue, Enumerable.Empty <IQueueConsumer>(), storage); var(found, readiness) = await service.FindDiffAsync(10); found.Type.Should().Be(diffType); found.Details.Should().ContainSingle(d => d.LeftOffset == leftOffset); readiness.Should().Be(diffReadiness); }