コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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))));
        }
コード例 #4
0
        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))));
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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))));
        }
コード例 #7
0
        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))));
        }
コード例 #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DifferenceAsyncRepository"/> class.
 /// </summary>
 /// <param name="context">
 /// The context.
 /// </param>
 public DifferenceAsyncRepository(DifferenceContext context)
     : base(context)
 {
 }
コード例 #9
0
 /// <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;
 }