public void EvaluateInterfaces() { var model = new InterfacesModel(); model.Value = 255; var type = typeof(InterfacesModel); var allInterfaces = type.GetInterfaces(); Assert.IsTrue(allInterfaces.Any()); var icomparableInterface = type.GetInterface("IComparable"); Assert.IsNotNull(icomparableInterface); var compareTo = (int)icomparableInterface.GetMethod("CompareTo").Invoke(model, new object[] { 0 }); Assert.IsTrue(compareTo > 0); compareTo = (int)icomparableInterface.GetMethod("CompareTo").Invoke(model, new object[] { new System.Drawing.Rectangle() }); Assert.AreEqual(compareTo, 0); var icomparableGenericInterface = type.GetInterface("IComparable`1"); Assert.IsNotNull(icomparableGenericInterface); compareTo = (int)icomparableInterface.GetMethod("CompareTo").Invoke(model, new object[] { int.MaxValue }); Assert.IsTrue(compareTo < 0); }