public void ObjectEqualsDetected() { Assert.Equal(EqualityExpressionClass.ObjectEquals, EqualityExpressions.CheckForEquality(() => bla2object.Equals(bla2object))); var anon = new { X = bla, Y = bla2object }; Assert.Equal(EqualityExpressionClass.ObjectEquals, EqualityExpressions.CheckForEquality(() => anon.Equals(anon))); }
public void StringEqDisagreement() { var equalities1 = EqualityExpressions.DisagreeingEqualities(ExpressionToCodeConfiguration.DefaultAssertionConfiguration, () => ReferenceEquals(1000.ToString(CultureInfo.InvariantCulture), 10 + "00")) ?? throw new("Expected non-null return"); Assert.Equal( equalities1.OrderBy(x => x), EqClasses( EqualityExpressionClass.EqualsOp, EqualityExpressionClass.NotEqualsOp, EqualityExpressionClass.ObjectEquals, EqualityExpressionClass.ObjectEqualsStatic, EqualityExpressionClass.EquatableEquals, EqualityExpressionClass.SequenceEqual, EqualityExpressionClass.StructuralEquals ) .OrderBy(x => x)); var equalities2 = EqualityExpressions.DisagreeingEqualities(ExpressionToCodeConfiguration.DefaultAssertionConfiguration, () => 1000.ToString(CultureInfo.InvariantCulture).Equals(10 + "00")) ?? throw new("Expected non-null return"); Assert.Equal( equalities2.ToArray(), EqClasses(EqualityExpressionClass.ObjectReferenceEquals)); }
public void NoneDetected() { Assert.Equal(EqualityExpressionClass.None, EqualityExpressions.CheckForEquality(() => bla.StartsWith("bla"))); Assert.Equal(EqualityExpressionClass.None, EqualityExpressions.CheckForEquality(() => !(bla == bla2object))); Assert.Equal(EqualityExpressionClass.None, EqualityExpressions.CheckForEquality(() => DateTime.Equals(new DateTime(2011, 05, 17), DateTime.Today))); // no match since specific method Assert.Equal(EqualityExpressionClass.None, EqualityExpressions.CheckForEquality(() => !ReferenceEquals(null, null))); }
public void DtRefEqDisagreement() => Assert.Equal( EqualityExpressions.DisagreeingEqualities( ExpressionToCodeConfiguration.DefaultAssertionConfiguration, // ReSharper disable ReferenceEqualsWithValueType () => ReferenceEquals(new DateTime(2011, 05, 17), new DateTime(2011, 05, 17))) .ToArray(), // ReSharper restore ReferenceEqualsWithValueType eqclasses( EqualityExpressionClass.ObjectEquals, EqualityExpressionClass.ObjectEqualsStatic, EqualityExpressionClass.StructuralEquals ));
public void DtRefEqDisagreement() { Assert.Equal( EqualityExpressions.DisagreeingEqualities(ExpressionToCodeConfiguration.DefaultAssertionConfiguration, // ReSharper disable ReferenceEqualsWithValueType () => ReferenceEquals(new DateTime(2011, 05, 17), new DateTime(2011, 05, 17))) .ToArray(), // ReSharper restore ReferenceEqualsWithValueType eqclasses( EqualityExpressionClass.ObjectEquals, EqualityExpressionClass.ObjectEqualsStatic, EqualityExpressionClass.StructuralEquals )); //EqualityExpressionClass.EqualsOp, EqualityExpressionClass.NotEqualsOp, EqualityExpressionClass.EquatableEquals: these are equivalent because syntax-type sensitive. }
public void StringEqDisagreement() { Assert.Equal( EqualityExpressions.DisagreeingEqualities(ExpressionToCodeConfiguration.DefaultAssertionConfiguration, () => ReferenceEquals(1000.ToString(CultureInfo.InvariantCulture), 10 + "00")) .OrderBy(x => x), eqclasses( EqualityExpressionClass.EqualsOp, EqualityExpressionClass.NotEqualsOp, EqualityExpressionClass.ObjectEquals, EqualityExpressionClass.ObjectEqualsStatic, EqualityExpressionClass.EquatableEquals, EqualityExpressionClass.SequenceEqual, EqualityExpressionClass.StructuralEquals ) .OrderBy(x => x)); Assert.Equal( EqualityExpressions.DisagreeingEqualities(ExpressionToCodeConfiguration.DefaultAssertionConfiguration, () => 1000.ToString(CultureInfo.InvariantCulture).Equals(10 + "00")).ToArray(), eqclasses(EqualityExpressionClass.ObjectReferenceEquals)); }
public void StringEqDisagreement() { Assert.That( EqualityExpressions.DisagreeingEqualities(() => ReferenceEquals(1000.ToString(CultureInfo.InvariantCulture), 10 + "00")).ToArray(), Is.EquivalentTo( eqclasses( EqualityExpressionClass.EqualsOp, EqualityExpressionClass.NotEqualsOp, EqualityExpressionClass.ObjectEquals, EqualityExpressionClass.ObjectEqualsStatic, EqualityExpressionClass.EquatableEquals, EqualityExpressionClass.SequenceEqual , EqualityExpressionClass.StructuralEquals ))); Assert.That( EqualityExpressions.DisagreeingEqualities(() => 1000.ToString(CultureInfo.InvariantCulture).Equals(10 + "00")).ToArray(), Is.EquivalentTo(eqclasses(EqualityExpressionClass.ObjectReferenceEquals))); }
public void SequenceEqualsDetected() { Assert.Equal(EqualityExpressionClass.SequenceEqual, EqualityExpressions.CheckForEquality(() => bla.AsEnumerable().SequenceEqual(bla2string))); Assert.Equal(EqualityExpressionClass.SequenceEqual, EqualityExpressions.CheckForEquality(() => new[] { 'b', 'l', 'a' }.SequenceEqual(bla2string))); }
public void ObjectReferenceEqualsDetected() { Assert.Equal(EqualityExpressionClass.ObjectReferenceEquals, EqualityExpressions.CheckForEquality(() => ReferenceEquals(bla2object, bla2object))); Assert.Equal(EqualityExpressionClass.ObjectReferenceEquals, EqualityExpressions.CheckForEquality(() => ReferenceEquals(null, null))); }
public void ObjectEqualsStaticDetected() { Assert.Equal(EqualityExpressionClass.ObjectEqualsStatic, EqualityExpressions.CheckForEquality(() => Equals(bla, null))); Assert.Equal(EqualityExpressionClass.ObjectEqualsStatic, EqualityExpressions.CheckForEquality(() => Equals(null, 42))); }
public void EquatableDetected() { //TODO: makes interesting expressiontocode test too Assert.Equal(EqualityExpressionClass.EquatableEquals, EqualityExpressions.CheckForEquality(() => ((IEquatable <string>)bla).Equals(bla2string))); Assert.Equal(EqualityExpressionClass.EquatableEquals, EqualityExpressions.CheckForEquality(() => bla.Equals(bla2string))); Assert.Equal(EqualityExpressionClass.EquatableEquals, EqualityExpressions.CheckForEquality(() => new DateTime(2011, 05, 17).Equals(DateTime.Today))); }
public void NotEqualsOpDetected() { Assert.Equal(EqualityExpressionClass.NotEqualsOp, EqualityExpressions.CheckForEquality(() => bla != bla2object)); Assert.Equal(EqualityExpressionClass.NotEqualsOp, EqualityExpressions.CheckForEquality(() => new DateTime(2011, 05, 17) != DateTime.Today)); }
public void DtEqDisagreement() { Assert.Equal( EqualityExpressions.DisagreeingEqualities(ExpressionToCodeConfiguration.DefaultAssertionConfiguration, () => new DateTime(2011, 05, 17).Equals(new DateTime(2011, 05, 17))).ToArray(), eqclasses(EqualityExpressionClass.ObjectReferenceEquals)); }
public void DtEqDisagreement() { Assert.That( EqualityExpressions.DisagreeingEqualities(() => new DateTime(2011, 05, 17).Equals(new DateTime(2011, 05, 17))).ToArray(), Is.EquivalentTo(eqclasses(EqualityExpressionClass.ObjectReferenceEquals))); }