public void Should_return_equality_constraint_when_trapper_doesnt_produce_any_constraint() { // Arrange A.CallTo(() => this.trapper.TrapConstraints(A <Action> ._)) .Returns(Enumerable.Empty <IArgumentConstraint>()); // Act var result = this.factory.GetArgumentConstraint(BuilderForParsedArgumentExpression.Build(x => x.WithConstantExpression("foo"))); // Assert Assert.That(result, Is.InstanceOf <EqualityArgumentConstraint>().And.Property("ExpectedValue").EqualTo("foo")); }
public void Should_return_equality_constraint_when_trapper_does_not_produce_any_constraint() { // Arrange A.CallTo(() => this.trapper.TrapConstraints(A <Action> ._)) .Returns(Enumerable.Empty <IArgumentConstraint>()); // Act var result = this.factory.GetArgumentConstraint(BuilderForParsedArgumentExpression.Build(x => x.WithConstantExpression("foo"))); // Assert result.Should().BeOfType <EqualityArgumentConstraint>().Which.ExpectedValue.Should().Be("foo"); }
public void Should_return_constraint_from_trapper_when_available() { // Arrange var constraint = A.Dummy <IArgumentConstraint>(); Any.CallTo(this.trapper).WithReturnType <IEnumerable <IArgumentConstraint> >().Returns(new[] { constraint }); // Act var result = this.factory.GetArgumentConstraint(BuilderForParsedArgumentExpression.BuildWithDefaults()); // Assert Assert.That(result, Is.SameAs(constraint)); }
public void Should_not_invoke_expression_more_than_once() { // Arrange int invokedNumberOfTimes = 0; var invokation = FuncFromAction(() => invokedNumberOfTimes++); var expression = BuilderForExpression.GetBody(() => invokation()); this.StubTrapperToReturnNoConstraints(); // Act this.factory.GetArgumentConstraint(BuilderForParsedArgumentExpression.Build(x => x.WithExpression(expression))); // Assert Assert.That(invokedNumberOfTimes, Is.EqualTo(1)); }
public void Should_not_invoke_expression_more_than_once() { // Arrange ExpressionArgumentConstraintFactory factory = new ExpressionArgumentConstraintFactory(new ArgumentConstraintTrap()); int invokedNumberOfTimes = 0; Func <object> invocation = () => { invokedNumberOfTimes++; return(null); }; var expression = BuilderForExpression.GetBody(() => invocation()); // Act factory.GetArgumentConstraint(BuilderForParsedArgumentExpression.Build(x => x.WithExpression(expression))); // Assert invokedNumberOfTimes.Should().Be(1); }
public void Should_pass_action_that_invokes_expression_to_trapper() { // Arrange bool wasInvoked = false; var invokation = FuncFromAction(() => wasInvoked = true); var expression = BuilderForExpression.GetBody(() => invokation()); // Act this.factory.GetArgumentConstraint(BuilderForParsedArgumentExpression.Build(x => x.WithExpression(expression))); // Assert var actionToTrapper = Fake.GetCalls(this.trapper).Single().GetArgument <Action>(0); wasInvoked = false; actionToTrapper.Invoke(); Assert.That(wasInvoked, Is.True); }
private ParsedArgumentExpression FromExpression(Expression <Action> fromFirstArgumentInCall) { return(BuilderForParsedArgumentExpression.Build(x => x.FromFirstArgumentInMethodCall(fromFirstArgumentInCall))); }