public async Task GetAllAsync_GivenOneContactExist_ShouldReturnListWithThatContact()
        {
            //---------------Set up test pack-------------------
            var contact = CreateRandomContact(1);
            await _db.Add(contact);

            var contactService = new ContactService(_db.DbContext);
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var results = await contactService.GetAllAsync();

            //---------------Test Result -----------------------
            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Count);
            Assert.AreEqual(contact.FirstName, results[0].FirstName);
            Assert.AreEqual(contact.Surname, results[0].Surname);
        }
        public async Task AddContactDetailsAsync_GivenAContactDetail_ShouldAddContactDetailToRepo()
        {
            //---------------Set up test pack-------------------
            var contact        = CreateRandomContact(999999999);
            var db             = new FakeContactDbContext(Guid.NewGuid().ToString());
            var contactService = new ContactService(db.DbContext);
            await db.Add(contact);

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var results = await contactService.AddContactDetailsAsync(contact.ContactDetails[0], contact.ContactId);

            //---------------Test Result -----------------------
            var contactFromRepo = await contactService.GetByIdAsync(contact.ContactId);

            Assert.IsTrue(results);
            Assert.AreEqual(contactFromRepo.ContactDetails[0].ContactId, contact.ContactId);
            Assert.AreEqual(contactFromRepo.ContactDetails[0].Description, contact.ContactDetails[0].Description);
            Assert.AreEqual(contactFromRepo.ContactDetails[0].ContactTypeId, contact.ContactDetails[0].ContactTypeId);
        }