Example #1
0
        public async Task ShouldCreateTheDifferenceResource()
        {
            // 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
            };
            var requestContent =
                new ObjectContent <DifferenceForCreationDto>(diffToCreate, new JsonMediaTypeFormatter());

            var response =
                await this.testHostCollectionFixture.Client.PostAsync($"{BaseUrl}", requestContent);

            // Assert
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);

            var content = response.Content.ReadAsAsync <DifferenceDto>().Result;

            Assert.NotNull(content);

            Assert.Equal(Convert.ToBase64String(leftInput), Convert.ToBase64String(content.Left));

            Assert.Equal(Convert.ToBase64String(rightInput), Convert.ToBase64String(content.Right));
        }
        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))));
        }
        /// <inheritdoc />
        public async Task <DifferenceDto> CreateAsync(
            DifferenceForCreationDto difference,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            if (difference == null)
            {
                throw new ArgumentNullException(nameof(difference));
            }

            var differenceEntity = Mapper.Map <Difference>(difference);

            this.differenceUnitOfWork.DifferenceAsyncRepository.Insert(differenceEntity);
            if (!await this.differenceUnitOfWork.SaveChangesAsync(cancellationToken))
            {
                throw new Exception("Creating the difference failed on save.");
            }

            return(Mapper.Map <DifferenceDto>(differenceEntity));
        }