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 Print_MemberAccess_Prints() { var account = new Account(); var initialDeposit = 100; account.Deposit(initialDeposit); var visitor = new AssertionExpressionVisitor(); Expression<Func<decimal>> memberAccess = () => account.Balance; visitor.Visit(memberAccess); var message = GetMessage(visitor); Expect(message, Is.EqualTo("account.Balance [100]")); }
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_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); }
public void Print_MethodCall_Prints() { var account = new Account(); account.SetName("Bob"); var visitor = new AssertionExpressionVisitor(); Expression<Func<string>> methodCall = () => account.GetName(); visitor.Visit(methodCall); var message = GetMessage(visitor); Expect(message, Is.EqualTo("account.GetName() ['Bob']")); }
public void Print_QueryWithArgument_Prints() { var account = new Account(); var visitor = new AssertionExpressionVisitor(); int a = 2; Expression<Action> queryWithArgument = () => account.AddNumbers(a, 1); visitor.Visit(queryWithArgument); var message = GetMessage(visitor); Expect(message, Is.EqualTo("account.AddNumbers(a [2], 1) [3]")); }
public void Print_MethodWithArgument_Prints() { var account = new Account(); account.SetName("Bob"); var visitor = new AssertionExpressionVisitor(); decimal amount = 100; decimal otherAmount = 200; Expression<Action> methodWithArgument = () => account.Deposits(amount, otherAmount); visitor.Visit(methodWithArgument); var message = GetMessage(visitor); Expect(message, Is.EqualTo("account.Deposits(amount [100], otherAmount [200])")); }
public void Expect_CompareSameThings_Warns() { var account = new Account(); Assert.That(() => Expect(() => account == account), Throws.TypeOf<InspectionWarning>()); }