public static void MessagesAreEqual(this Assertions assert, Message expected, Message actual)
{
if(expected == null)
{
assert.Null(actual);
return;
}
assert.NotNull(actual);
assert.IsType(expected.GetType(), actual);
foreach(var method in GetPublicPropertyGetMethods(expected.GetType()))
{
assert.Equal(method.Invoke(expected, null), method.Invoke(actual, null));
}
}