Example #1
0
        public async Task Get_ValidEthnicGroupCode_HttpOkAndReturnsSingleEthnicGroup()
        {
            // Arrange
            var randomEthnicGroupId = PreDefinedData.GetRandomEthnicGroupId();
            var path = GetRelativePath(nameof(ReferenceEthnicGroupsController), randomEthnicGroupId.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 <ReferenceEthnicGroupDto>(responseString);

            var preDefinedObject =
                PreDefinedData.ReferenceEthnicGroups
                .SingleOrDefault(c => c.Id == randomEthnicGroupId);

            AssertHelper.AreObjectsEqual(apiReturnedObject,
                                         Mapper.Map <ReferenceEthnicGroup, ReferenceEthnicGroupDto>(preDefinedObject));
        }
Example #2
0
        public async Task Update_ValidEthnicGroup_HttpNoContent()
        {
            // Arrange
            var randomEthnicGroupId = PreDefinedData.GetRandomEthnicGroupId();

            var apiUpdatingEthnicGroup = UnitOfWork.ReferenceEthnicGroups.Get(randomEthnicGroupId);

            apiUpdatingEthnicGroup.LongName = "Update Test";
            var path = GetRelativePath(nameof(ReferenceEthnicGroupsController), randomEthnicGroupId.ToString());

            // Act
            var response = await Client.PutAsync(path, new StringContent(
                                                     JsonConvert.SerializeObject(Mapper.Map <ReferenceEthnicGroup, ReferenceEthnicGroupDto>(apiUpdatingEthnicGroup)),
                                                     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 dbUpdatedEthnicGroup = UnitOfWork.ReferenceEthnicGroups.Get(apiUpdatingEthnicGroup.Id);

            AssertHelper.AreObjectsEqual(apiUpdatingEthnicGroup, dbUpdatedEthnicGroup);
        }
        public void SingleOrDefault_PredicateUsedToFindMoreOneEthnicGroup_ThrowsInvalidOperationException()
        {
            var randomEthnicGroupId = PreDefinedData.GetRandomEthnicGroupId();

            Assert.That(() =>
                        UnitOfWork.ReferenceEthnicGroups.SingleOrDefault(p => p.Id != randomEthnicGroupId),
                        Throws.InvalidOperationException);
        }
        public void SingleOrDefault_PredicateUsedToFindOneEthnicGroup_ReturnsOneEthnicGroup()
        {
            var randomEthnicGroupId = PreDefinedData.GetRandomEthnicGroupId();

            var result = UnitOfWork.ReferenceEthnicGroups.SingleOrDefault(p => p.Id == randomEthnicGroupId);

            Assert.That(result, Is.Not.Null);
        }
        public void Find_PredicateUsedToFindOneEthnicGroup_ReturnsCollection()
        {
            var randomEthnicGroupId = PreDefinedData.GetRandomEthnicGroupId();

            var result = UnitOfWork.ReferenceEthnicGroups.Find(p => p.Id == randomEthnicGroupId);

            Assert.That(result.Count, Is.EqualTo(1));
            Assert.That(result.First().Id == randomEthnicGroupId);
        }
        public void Get_ValidEthnicGroupCode_ReturnsSingleEthnicGroup()
        {
            var randomEthnicGroupId = PreDefinedData.GetRandomEthnicGroupId();

            var result = UnitOfWork.ReferenceEthnicGroups.Get(randomEthnicGroupId);

            Assert.That(result, Is.Not.Null);
            Assert.That(result.Id, Is.EqualTo(randomEthnicGroupId));
        }
        public void Remove_ValidEthnicGroupExists_EthnicGroupCannotBeFetched()
        {
            var randomEthnicGroupId        = PreDefinedData.GetRandomEthnicGroupId();
            var removeReferenceEthnicGroup = UnitOfWork.ReferenceEthnicGroups.Get(randomEthnicGroupId);

            UnitOfWork.ReferenceEthnicGroups.Remove(removeReferenceEthnicGroup);
            UnitOfWork.Complete();

            var result = UnitOfWork.ReferenceEthnicGroups.Get(removeReferenceEthnicGroup.Id);

            Assert.That(result, Is.Null);
        }
        public void Add_ValidEthnicGroupExists_ThrowsInvalidOperationException()
        {
            var randomEthnicGroupId = PreDefinedData.GetRandomEthnicGroupId();
            var randomEthnicGroup   = UnitOfWork.ReferenceEthnicGroups.Get(randomEthnicGroupId);

            Assert.That(() => UnitOfWork.ReferenceEthnicGroups.Add(
                            new ReferenceEthnicGroup
            {
                Id   = randomEthnicGroup.Id,
                Code = randomEthnicGroup.Code
            }),
                        Throws.InvalidOperationException);
        }
Example #9
0
        public async Task Update_EmptyPayload_HttpBadRequest()
        {
            // Arrange
            var randomEthnicGroupId = PreDefinedData.GetRandomEthnicGroupId();
            var path = GetRelativePath(nameof(ReferenceEthnicGroupsController), randomEthnicGroupId.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_ValidEthnicGroup_HttpNoContent()
        {
            // Arrange
            var randomEthnicGroupId = PreDefinedData.GetRandomEthnicGroupId();
            var path = GetRelativePath(nameof(ReferenceEthnicGroupsController), randomEthnicGroupId.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_TwoValidEthnicGroupsDuplicated_ThrowsInvalidOperationException()
        {
            var randomEthnicGroupId = PreDefinedData.GetRandomEthnicGroupId();
            var randomEthnicGroup   = UnitOfWork.ReferenceEthnicGroups.Get(randomEthnicGroupId);

            var existingEthnicGroups = new Collection <ReferenceEthnicGroup>
            {
                new ReferenceEthnicGroup {
                    Id = randomEthnicGroup.Id, Code = randomEthnicGroup.Code
                },
                new ReferenceEthnicGroup {
                    Id = randomEthnicGroup.Id, Code = randomEthnicGroup.Code
                }
            };

            Assert.That(() => UnitOfWork.ReferenceEthnicGroups.RemoveRange(existingEthnicGroups),
                        Throws.InvalidOperationException);
        }
Example #12
0
        public async Task Update_MalformedPayload_HttpBadRequest()
        {
            // Arrange
            var randomEthnicGroupId = PreDefinedData.GetRandomEthnicGroupId();
            var path = GetRelativePath(nameof(ReferenceEthnicGroupsController), randomEthnicGroupId.ToString());
            var apiUpdatingEthnicGroup = new ReferenceEthnicGroupDto
            {
                Id = randomEthnicGroupId
                     // Code is required, keep it missing
            };

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

            // Assert
            Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
        }
Example #13
0
        public async Task Create_ExistingEthnicGroup_HttpConflict()
        {
            // Arrange
            var path = GetRelativePath(nameof(ReferenceEthnicGroupsController));
            var randomEthnicGroupId = PreDefinedData.GetRandomEthnicGroupId();
            var randomEthnicGroup   = PreDefinedData.ReferenceEthnicGroups[randomEthnicGroupId - 1];

            var newEthnicGroupDto = new ReferenceEthnicGroupDto
            {
                Code        = randomEthnicGroup.Code,
                LongName    = "Create Test",
                CreatedDate = DateTime.UtcNow
            };

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

            // Assert
            Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.Conflict));
        }