using System.Reflection; using JetBrains.Annotations; using Xunit; using Xunit.Sdk; namespace Kyoo.Tests { /// /// Custom assertions used by Kyoo's tests. /// public static class KAssert { /// /// Check if every property of the item is equal to the other's object. /// /// The value to check against /// The value to check /// The type to check [AssertionMethod] public static void DeepEqual(T expected, T value) { foreach (PropertyInfo property in typeof(T).GetProperties(BindingFlags.Instance)) Assert.Equal(property.GetValue(expected), property.GetValue(value)); } /// /// Explicitly fail a test. /// [AssertionMethod] public static void Fail() { throw new XunitException(); } /// /// Explicitly fail a test. /// /// The message that will be seen in the test report [AssertionMethod] public static void Fail(string message) { throw new XunitException(message); } } }