public void CanCreateEqualityComparer() { //-- arrange var typeFactoryUnderTest = CreateFactoryUnderTest(); IEqualityComparerObjectFactory objectFactoryUnderTest = typeFactoryUnderTest; //-- act typeFactoryUnderTest.ImplementEqualityComparer(typeof(ASimplestClass)); IEqualityComparer <ASimplestClass> comparer = objectFactoryUnderTest.GetEqualityComparer <ASimplestClass>(); //-- assert comparer.Should().NotBeNull(); }
public void CanCompareEquality_AFlatStructWithFields( int yNumber, string yText, string yTimeStamp, DayOfWeek yDay, bool expectedResult) { //-- arrange var typeFactoryUnderTest = CreateFactoryUnderTest(); typeFactoryUnderTest.ImplementEqualityComparer(typeof(ASimplestClass)); IEqualityComparerObjectFactory objectFactoryUnderTest = typeFactoryUnderTest; var comparer = objectFactoryUnderTest.GetEqualityComparer <AFlatStructWithFields>(); var x = new AFlatStructWithFields { Number = 123, Text = "ABC", TimeStamp = new DateTime(2010, 10, 10), Day = DayOfWeek.Saturday }; var y = new AFlatStructWithFields { Number = yNumber, Text = yText, TimeStamp = DateTime.ParseExact(yTimeStamp, "yyyy-MM-dd", CultureInfo.InvariantCulture), Day = yDay }; //-- act var actualResult = comparer.Equals(x, y); var xHashCode = comparer.GetHashCode(x); var yHashCode = comparer.GetHashCode(y); //-- assert actualResult.Should().Be(expectedResult); if (expectedResult) { yHashCode.Should().Be(xHashCode); } }