public void TestEmailParser()
{
EmailAddress parsedEmail = " [email protected] ";
string stringEmail = parsedEmail;
Assert.AreEqual("[email protected]", stringEmail);
parsedEmail = "invalid email";
Assert.IsFalse(parsedEmail.IsValid);
stringEmail = parsedEmail;
Assert.IsNull(stringEmail);
// ReSharper disable HeuristicUnreachableCode
parsedEmail = null as string;
Assert.IsFalse(parsedEmail.IsValid);
stringEmail = parsedEmail;
Assert.IsNull(stringEmail);
parsedEmail = null;
Assert.IsFalse(parsedEmail.IsValid());
parsedEmail = "[email protected]";
stringEmail = parsedEmail;
Assert.AreEqual("[email protected]", stringEmail);
Assert.AreEqual("[email protected]", parsedEmail.AddressWithoutFilter);
Assert.AreEqual("first.last-third+filter", parsedEmail[EmailAddressParts.UserBeforeAt]);
Assert.AreEqual("first.last-third", parsedEmail[EmailAddressParts.UserBeforePlus]);
Assert.AreEqual("filter", parsedEmail[EmailAddressParts.UserAfterPlusFilter]);
Assert.AreEqual("dom1.domain-ha.it", parsedEmail[EmailAddressParts.Domain]);
Assert.AreEqual("dom1.domain-ha", parsedEmail[EmailAddressParts.DomainMain]);
Assert.AreEqual("it", parsedEmail[EmailAddressParts.DomainSuffix]);
// ReSharper restore HeuristicUnreachableCode
}