예제 #1
0
        public IActionResult UpdateReferenceEyeColor(int id, ReferenceEyeColorDto payload)
        {
            var referenceEyeColorInDb = _unitOfWork.ReferenceEyeColors.Get(id);

            if (referenceEyeColorInDb == null)
            {
                return(NotFound());
            }

            _mapper.Map(payload, referenceEyeColorInDb);
            _unitOfWork.Complete();

            return(NoContent());
        }
예제 #2
0
        public async Task Update_MalformedPayload_HttpBadRequest()
        {
            // Arrange
            var randomEyeColorId    = PreDefinedData.GetRandomEyeColorId();
            var path                = GetRelativePath(nameof(ReferenceEyeColorsController), randomEyeColorId.ToString());
            var apiUpdatingEyeColor = new ReferenceEyeColorDto
            {
                Id = randomEyeColorId
                     // Code is required, keep it missing
            };

            // Act
            var response = await Client.PutAsync(path, new StringContent(
                                                     JsonConvert.SerializeObject(apiUpdatingEyeColor),
                                                     Encoding.UTF8,
                                                     JsonMediaType));

            // Assert
            Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
        }
예제 #3
0
        public async Task Create_MalformedPayload_HttpBadRequest()
        {
            // Arrange
            var path = GetRelativePath(nameof(ReferenceEyeColorsController));

            var newEyeColorDto = new ReferenceEyeColorDto
            {
                // Code is required, keep it missing
                CreatedDate = DateTime.UtcNow
            };

            // Act
            var response = await Client.PostAsync(path, new StringContent(
                                                      JsonConvert.SerializeObject(newEyeColorDto),
                                                      Encoding.UTF8,
                                                      JsonMediaType));

            // Assert
            Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
        }
예제 #4
0
        public async Task Update_InvalidEyeColor_HttpNotFound()
        {
            // Arrange
            var notExistsEyeColorCode = PreDefinedData.GetNotExistsEyeColorCode();
            var path = GetRelativePath(nameof(ReferenceEyeColorsController), int.MaxValue.ToString());
            var apiUpdatingEyeColor = new ReferenceEyeColorDto
            {
                Id       = int.MaxValue,
                Code     = notExistsEyeColorCode,
                LongName = "Update Test"
            };

            // Act
            var response = await Client.PutAsync(path, new StringContent(
                                                     JsonConvert.SerializeObject(apiUpdatingEyeColor),
                                                     Encoding.UTF8,
                                                     JsonMediaType));

            // Assert
            Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.NotFound));
        }
예제 #5
0
        public async Task Create_ExistingEyeColor_HttpConflict()
        {
            // Arrange
            var path             = GetRelativePath(nameof(ReferenceEyeColorsController));
            var randomEyeColorId = PreDefinedData.GetRandomEyeColorId();
            var randomEyeColor   = PreDefinedData.ReferenceEyeColors[randomEyeColorId - 1];

            var newEyeColorDto = new ReferenceEyeColorDto
            {
                Code        = randomEyeColor.Code,
                LongName    = "Create Test",
                CreatedDate = DateTime.UtcNow
            };

            // Act
            var response = await Client.PostAsync(path, new StringContent(
                                                      JsonConvert.SerializeObject(newEyeColorDto),
                                                      Encoding.UTF8,
                                                      JsonMediaType));

            // Assert
            Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.Conflict));
        }
예제 #6
0
        public IActionResult CreateReferenceEyeColor(ReferenceEyeColorDto payload)
        {
            var referenceEyeColor = _mapper.Map <ReferenceEyeColorDto, ReferenceEyeColor>(payload);

            var referenceEyeColorInDb = _unitOfWork.ReferenceEyeColors.Find(p => p.Code == payload.Code);

            if (referenceEyeColorInDb.Any())
            {
                return(new ConflictResult());
            }

            _unitOfWork.ReferenceEyeColors.Add(referenceEyeColor);
            _unitOfWork.Complete();

            payload.Id = referenceEyeColor.Id;

            return(CreatedAtAction(nameof(GetReferenceEyeColor),
                                   new
            {
                id = payload.Id
            },
                                   payload));
        }
예제 #7
0
        public async Task Create_ValidPayload_HttpCreatedAndReturnsNewEyeColor()
        {
            // Arrange
            var path = GetRelativePath(nameof(ReferenceEyeColorsController));
            var notExistsEyeColorCode = PreDefinedData.GetNotExistsEyeColorCode();
            var newEyeColorDto        = new ReferenceEyeColorDto
            {
                Code         = notExistsEyeColorCode,
                LongName     = "New EyeColor",
                CreatedDate  = DateTime.UtcNow,
                CreatedBy    = CreatedModifiedBy,
                ModifiedDate = DateTime.UtcNow,
                ModifiedBy   = CreatedModifiedBy
            };

            // Act
            var response = await Client.PostAsync(path, new StringContent(
                                                      JsonConvert.SerializeObject(newEyeColorDto),
                                                      Encoding.UTF8,
                                                      JsonMediaType));

            var responseString = await response.Content.ReadAsStringAsync();

            // Assert
            Assert.DoesNotThrow(
                () => response.EnsureSuccessStatusCode(),
                string.Format(HttpExceptionFormattedMessage, responseString));
            Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.Created));

            var apiReturnedObject =
                JsonConvert.DeserializeObject <ReferenceEyeColorDto>(responseString);

            Assert.That(apiReturnedObject.Id, Is.GreaterThan(0));

            newEyeColorDto.Id = apiReturnedObject.Id;
            AssertHelper.AreObjectsEqual(apiReturnedObject, newEyeColorDto);
        }