public void Then_OnActionBuilderWithCurrentAction_WithActionUnit_ShouldReturnCorrectValue(
            Mock <IActionBuilderWithCurrentAction <IAction <object>, object> > source,
            IAction <object> currentAction,
            IAction <Unit> action,
            IActionBuilderWithPreviousResult <IAction <Unit>, Unit, IAction <object>, object> expected
            )
        {
            //arrange
            source.Setup(s => s.Then <IAction <Unit>, Unit>(It.Is((Func <ActionResult <IAction <object>, object>, IAction <Unit> > f) => f(new ActionResult <IAction <object>, object>(currentAction, null)) == action)))
            .Returns(expected);
            //act
            var actual = ActionBuilderExtensions.Then(source.Object, _ => action);

            //assert
            actual.Should().Be(expected);
        }
 public static object Then(
     IActionBuilderWithCurrentAction <IAction <object>, object> source,
     Func <ActionResult <IAction <object>, object>, IAction <int> > nextAction) => ActionBuilderExtensions.Then(source, nextAction, 0);
 public static object Then(IActionBuilder source, IAction <int> nextAction) => ActionBuilderExtensions.Then(source, nextAction, 0);