public void TestConstructor_OneGenericArgument()
        {
            var emailTypeId = EmailAddressType.Home.Id;
            var email       = "*****@*****.**";
            var isPrimary   = true;
            var user        = new User(1);

            var model = new TestEmailAddressableClass(user, emailTypeId, email, isPrimary);

            Assert.AreEqual(emailTypeId, model.EmailAddressTypeId);
            Assert.AreEqual(email, model.Address);
            Assert.AreEqual(isPrimary, model.IsPrimary);
            Assert.AreEqual(user.Id, model.Audit.User.Id);
            Assert.IsInstanceOfType(model.Audit, typeof(Create));
        }
        public void TestAddEmailAddress()
        {
            var emailTypeId = EmailAddressType.Home.Id;
            var email       = "*****@*****.**";
            var isPrimary   = true;
            var user        = new User(1);

            var model  = new TestEmailAddressableClass(user, emailTypeId, email, isPrimary);
            var person = new Person();

            model.AddEmailAddress(person);
            Assert.AreEqual(1, person.EmailAddresses.Count);
            var firstEmailAddress = person.EmailAddresses.First();

            Assert.AreEqual(emailTypeId, firstEmailAddress.EmailAddressTypeId);
            Assert.AreEqual(email, firstEmailAddress.Address);
            Assert.AreEqual(isPrimary, firstEmailAddress.IsPrimary);

            Assert.AreEqual(user.Id, firstEmailAddress.History.CreatedBy);
            Assert.AreEqual(user.Id, firstEmailAddress.History.RevisedBy);
            DateTimeOffset.Now.Should().BeCloseTo(firstEmailAddress.History.CreatedOn, 20000);
            DateTimeOffset.Now.Should().BeCloseTo(firstEmailAddress.History.RevisedOn, 20000);
        }