using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using UnitTestSharp; namespace TestsForUnitTestSharp { public class EqualityTestFixtureTests : UnitTestSharp.TestFixture { public class PODReferenceType { public string a = "foo"; public int b = 2; public override bool Equals(object obj) { return Equals(obj as PODReferenceType); } public bool Equals(PODReferenceType other) { return other != null && Object.Equals(a, other.a) && Object.Equals(b, other.b); } public override int GetHashCode() { return base.GetHashCode(); } } [IgnoreFixture] public class PODReferenceTypeEqualitySuccess : UnitTestSharp.EqualityTestFixture { public PODReferenceTypeEqualitySuccess() : base(new PODReferenceType { a = "bar", b = 0, }) { } } public void PODReferenceTypeEqualitySuccess_Test() { string output = ""; int totalTests = 0, failedTests = 0, failedChecks = 0; TestRunner.RunTestFixture(typeof(PODReferenceTypeEqualitySuccess), (outputString) => output += outputString, ref totalTests, ref failedTests, ref failedChecks); CheckEqual(6, totalTests); CheckEqual(0, failedTests); CheckEqual(0, failedChecks); CheckEqual("", output); } [IgnoreFixture] public class PODReferenceTypeEqualityFailure : UnitTestSharp.EqualityTestFixture { public PODReferenceTypeEqualityFailure() : base(new PODReferenceType()) {} } public void PODReferenceTypeEqualityFailure_Test() { string output = ""; int totalTests = 0, failedTests = 0, failedChecks = 0; TestRunner.RunTestFixture(typeof(PODReferenceTypeEqualityFailure), (outputString) => output += outputString, ref totalTests, ref failedTests, ref failedChecks); CheckEqual(6, totalTests); CheckEqual(5, failedTests); CheckEqual(12, failedChecks); CheckEqualRegex( "TestsForUnitTestSharp::EqualityTestFixtureTests.PODReferenceTypeEqualityFailure::" + "ReferenceIsNotDefault", output); CheckEqualRegex("Test object has default value in field a.", output); CheckEqualRegex("Test object has default value in field b.", output); } } }