public void Visit_CompareSameMethodsOnSameObject_ThrowsWarning() { var account = new Account(); var inspector = new InspectExpressionVisitor(); Expression<Func<bool>> expression = () => account.GetName() == account.GetName(); TestDelegate action = () => inspector.Visit(expression); Assert.That(action, Throws.TypeOf<InspectionWarning>()); }
public void Visit_ComparisonOfDefaultValueForReferenceType_Warns() { Account account = null; Account otherAccount = null; var inspector = new InspectExpressionVisitor(); Expression<Func<bool>> expression = () => account == otherAccount; TestDelegate action = () => inspector.Visit(expression); Assert.That(action, Throws.TypeOf<DefaultValueWarning>().With.Message.EqualTo("Comparison where both values are null.")); }
public void Visit_CompareSameMethodsOnDifferntObjects_ThrowsWarning() { var account = new Account(); account.SetName("A"); var otherAccount = new Account(); account.SetName("B"); var inspector = new InspectExpressionVisitor(); Expression<Func<bool>> expression = () => account.GetMe().GetName() == otherAccount.GetMe().GetName(); TestDelegate action = () => inspector.Visit(expression); Assert.That(action, Throws.Nothing); }
public void Visit_ComparisonOfNotDefaultValueForValueType_DoesNotWarn() { int a = 1; int b = default(int); var inspector = new InspectExpressionVisitor(); Expression<Func<bool>> expression = () => a == b; TestDelegate action = () => inspector.Visit(expression); Assert.That(action, Throws.Nothing); }
public void Visit_ComparisonOfDefaultValueForValueType_Warns() { int a = default(int); int b = default(int); var inspector = new InspectExpressionVisitor(); Expression<Func<bool>> expression = () => a == b; TestDelegate action = () => inspector.Visit(expression); Assert.That(action, Throws.TypeOf<DefaultValueWarning>().With.Message.EqualTo("Comparison of value types where both are the default value.")); }
public void Visit_DifferentMembers_DoesNotThrowWarning() { var account = new Account(); var otherAccount = new Account(); var inspector = new InspectExpressionVisitor(); Expression<Func<bool>> expression = () => account == otherAccount; TestDelegate action = () => inspector.Visit(expression); Assert.That(action, Throws.Nothing); }