public static class AssertionExtensions {
public static void ShouldHavePropertiesMatching(this object actual, object propertymap){
propertymap.GetType().GetProperties().ToList()
var actualProperty = actual.GetType().GetProperties().FirstOrDefault(ap => ap.Name == pi.Name);
actualProperty.GetValue(actual).Should().Be(pi.GetValue(propertymap));
public static void Main(){
Description = "Is Awesome",
Other = "This property we don't care about testing"
Description = "Is Awesome"
actual.ShouldHavePropertiesMatching(map);
actual.ShouldHavePropertiesMatching(negative);