Esempio n. 1
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))));
        }
Esempio n. 2
0
        /// <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);
        }