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)));
        }
Beispiel #2
0
        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));
 }
Beispiel #7
0
 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));
 }
Beispiel #14
0
 public void DtEqDisagreement()
 {
     Assert.That(
         EqualityExpressions.DisagreeingEqualities(() => new DateTime(2011, 05, 17).Equals(new DateTime(2011, 05, 17))).ToArray(),
         Is.EquivalentTo(eqclasses(EqualityExpressionClass.ObjectReferenceEquals)));
 }