public async Task TestGetById()
        {
            var person = new Person
            {
                PersonId = 10,
                FullName = "full name"
            };
            var emailAddressType = new EmailAddressType
            {
                EmailAddressTypeId   = EmailAddressType.Home.Id,
                EmailAddressTypeName = EmailAddressType.Home.Value
            };
            var email = new EmailAddress
            {
                Address            = "*****@*****.**",
                PersonId           = person.PersonId,
                Person             = person,
                EmailAddressId     = 1,
                EmailAddressType   = emailAddressType,
                EmailAddressTypeId = emailAddressType.EmailAddressTypeId,
                IsPrimary          = true
            };

            context.EmailAddresses.Add(email);
            context.EmailAddressTypes.Add(emailAddressType);
            context.People.Add(person);
            Action <EmailAddressDTO> tester = (dto) =>
            {
                Assert.IsNotNull(dto);
                Assert.AreEqual(email.IsPrimary, dto.IsPrimary);
                Assert.AreEqual(email.PersonId, dto.PersonId);
                Assert.AreEqual(email.EmailAddressId, dto.Id);
                Assert.AreEqual(email.Address, dto.Address);
                Assert.AreEqual(email.EmailAddressType.EmailAddressTypeName, dto.EmailAddressType);
                Assert.AreEqual(email.EmailAddressTypeId, dto.EmailAddressTypeId);
            };

            var result      = service.GetById(email.EmailAddressId);
            var resultAsync = await service.GetByIdAsync(email.EmailAddressId);

            tester(result);
            tester(resultAsync);
        }