public void ReadByContactId_AddressRecord_ExpectedNoRecordsProvidedContactId()
        {
            DataModel.Contact contact = new DataModel.Contact()
            {
                Id        = 1,
                FirstName = "FirstName",
                LastName  = "LastName",
                Type      = new DataModel.ContactType()
                {
                    Id   = 1,
                    Type = "PERSON"
                }
            };

            mockAddressRepository.Setup((item) => item.ReadByContactId(contact.Id)).Returns(new DataModel.Address[] { });

            var addressRepository = new BusinessRepository.AddressRepository(mockLogger.Object,
                                                                             mockAddressRepository.Object
                                                                             );

            var result = addressRepository.ReadByContactId(contact.Id);

            Assert.IsNotNull(result);
            Assert.IsEmpty(result);
            Assert.IsNull(result.SingleOrDefault((item) => item.Id == 1));
            Assert.IsNull(result.SingleOrDefault((item) => item.Street == "Street1"));
        }
        public void ReadByContactId_AddressRecord_ExpectedAddressRecordForProvidedContactId()
        {
            DataModel.Address address1, address2;
            DataModel.Contact contact = new DataModel.Contact()
            {
                Id        = 1,
                FirstName = "FirstName",
                LastName  = "LastName",
                Type      = new DataModel.ContactType()
                {
                    Id   = 1,
                    Type = "PERSON"
                }
            };

            mockAddressRepository.Setup((item) => item.ReadByContactId(contact.Id)).Returns(new DataModel.Address[] {
                address1 = new DataModel.Address()
                {
                    Id = 1, Street = "Street", Contact = contact
                },
                address2 = new DataModel.Address()
                {
                    Id = 2, Street = "Street1", Contact = contact
                }
            });

            var addressRepository = new BusinessRepository.AddressRepository(mockLogger.Object,
                                                                             mockAddressRepository.Object
                                                                             );

            var result = addressRepository.ReadByContactId(contact.Id);

            Assert.IsNotNull(result);
            Assert.IsNotEmpty(result);
            Assert.IsTrue(result.SingleOrDefault((item) => item.Id == 1).FullAddress == GetFullAddress(address1));
            Assert.IsTrue(result.SingleOrDefault((item) => item.Street == "Street1").ContactId == contact.Id);
        }