Example #1
0
        public async Task Get_ValidEyeColorCode_HttpOkAndReturnsSingleEyeColor()
        {
            // Arrange
            var randomEyeColorId = PreDefinedData.GetRandomEyeColorId();
            var path             = GetRelativePath(nameof(ReferenceEyeColorsController), randomEyeColorId.ToString());

            // Act
            var response = await Client.GetAsync(path);

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

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

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

            var preDefinedObject =
                PreDefinedData.ReferenceEyeColors
                .SingleOrDefault(c => c.Id == randomEyeColorId);

            AssertHelper.AreObjectsEqual(apiReturnedObject,
                                         Mapper.Map <ReferenceEyeColor, ReferenceEyeColorDto>(preDefinedObject));
        }
Example #2
0
        public async Task Update_ValidEyeColor_HttpNoContent()
        {
            // Arrange
            var randomEyeColorId = PreDefinedData.GetRandomEyeColorId();

            var apiUpdatingEyeColor = UnitOfWork.ReferenceEyeColors.Get(randomEyeColorId);

            apiUpdatingEyeColor.LongName = "Update Test";
            var path = GetRelativePath(nameof(ReferenceEyeColorsController), randomEyeColorId.ToString());

            // Act
            var response = await Client.PutAsync(path, new StringContent(
                                                     JsonConvert.SerializeObject(Mapper.Map <ReferenceEyeColor, ReferenceEyeColorDto>(apiUpdatingEyeColor)),
                                                     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.NoContent));

            var dbUpdatedEyeColor = UnitOfWork.ReferenceEyeColors.Get(apiUpdatingEyeColor.Id);

            AssertHelper.AreObjectsEqual(apiUpdatingEyeColor, dbUpdatedEyeColor);
        }
        public void SingleOrDefault_PredicateUsedToFindMoreOneEyeColor_ThrowsInvalidOperationException()
        {
            var randomEyeColorId = PreDefinedData.GetRandomEyeColorId();

            Assert.That(() =>
                        UnitOfWork.ReferenceEyeColors.SingleOrDefault(p => p.Id != randomEyeColorId),
                        Throws.InvalidOperationException);
        }
        public void SingleOrDefault_PredicateUsedToFindOneEyeColor_ReturnsOneEyeColor()
        {
            var randomEyeColorId = PreDefinedData.GetRandomEyeColorId();

            var result = UnitOfWork.ReferenceEyeColors.SingleOrDefault(p => p.Id == randomEyeColorId);

            Assert.That(result, Is.Not.Null);
        }
        public void Find_PredicateUsedToFindOneEyeColor_ReturnsCollection()
        {
            var randomEyeColorId = PreDefinedData.GetRandomEyeColorId();

            var result = UnitOfWork.ReferenceEyeColors.Find(p => p.Id == randomEyeColorId);

            Assert.That(result.Count, Is.EqualTo(1));
            Assert.That(result.First().Id == randomEyeColorId);
        }
        public void Get_ValidEyeColorCode_ReturnsSingleEyeColor()
        {
            var randomEyeColorId = PreDefinedData.GetRandomEyeColorId();

            var result = UnitOfWork.ReferenceEyeColors.Get(randomEyeColorId);

            Assert.That(result, Is.Not.Null);
            Assert.That(result.Id, Is.EqualTo(randomEyeColorId));
        }
        public void Remove_ValidEyeColorExists_EyeColorCannotBeFetched()
        {
            var randomEyeColorId        = PreDefinedData.GetRandomEyeColorId();
            var removeReferenceEyeColor = UnitOfWork.ReferenceEyeColors.Get(randomEyeColorId);

            UnitOfWork.ReferenceEyeColors.Remove(removeReferenceEyeColor);
            UnitOfWork.Complete();

            var result = UnitOfWork.ReferenceEyeColors.Get(removeReferenceEyeColor.Id);

            Assert.That(result, Is.Null);
        }
        public void Add_ValidEyeColorExists_ThrowsInvalidOperationException()
        {
            var randomEyeColorId = PreDefinedData.GetRandomEyeColorId();
            var randomEyeColor   = UnitOfWork.ReferenceEyeColors.Get(randomEyeColorId);

            Assert.That(() => UnitOfWork.ReferenceEyeColors.Add(
                            new ReferenceEyeColor
            {
                Id   = randomEyeColor.Id,
                Code = randomEyeColor.Code
            }),
                        Throws.InvalidOperationException);
        }
Example #9
0
        public async Task Update_EmptyPayload_HttpBadRequest()
        {
            // Arrange
            var randomEyeColorId = PreDefinedData.GetRandomEyeColorId();
            var path             = GetRelativePath(nameof(ReferenceEyeColorsController), randomEyeColorId.ToString());

            // Act
            var response = await Client.PutAsync(path,
                                                 new StringContent(string.Empty, Encoding.UTF8));

            // Assert
            Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
        }
Example #10
0
        public async Task Delete_ValidEyeColor_HttpNoContent()
        {
            // Arrange
            var randomEyeColorId = PreDefinedData.GetRandomEyeColorId();
            var path             = GetRelativePath(nameof(ReferenceEyeColorsController), randomEyeColorId.ToString());

            // Act
            var response = await Client.DeleteAsync(path);

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

            // Assert
            Assert.DoesNotThrow(
                () => response.EnsureSuccessStatusCode(),
                string.Format(HttpExceptionFormattedMessage, responseString));
            Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.NoContent));
        }
        public void RemoveRange_TwoValidEyeColorsDuplicated_ThrowsInvalidOperationException()
        {
            var randomEyeColorId = PreDefinedData.GetRandomEyeColorId();
            var randomEyeColor   = UnitOfWork.ReferenceEyeColors.Get(randomEyeColorId);

            var existingEyeColors = new Collection <ReferenceEyeColor>
            {
                new ReferenceEyeColor {
                    Id = randomEyeColor.Id, Code = randomEyeColor.Code
                },
                new ReferenceEyeColor {
                    Id = randomEyeColor.Id, Code = randomEyeColor.Code
                }
            };

            Assert.That(() => UnitOfWork.ReferenceEyeColors.RemoveRange(existingEyeColors),
                        Throws.InvalidOperationException);
        }
Example #12
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));
        }
Example #13
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));
        }