Example #1
0
 private Action GuardAction <TSubject, TResult, TVars, TSequence> (
     MainTestContext <TSubject, TResult, TVars, TSequence> context,
     Action <TSubject> action)
 {
     return(() =>
     {
         try
         {
             var stopwatch = Stopwatch.StartNew();
             var subject = typeof(TSubject) != typeof(Dummy) ? context.Subject : default(TSubject);
             action(subject);
             context.Duration = stopwatch.Elapsed;
         }
         catch (Exception exception)
         {
             if (!context.ExpectsException)
             {
                 throw;
             }
             context.Exception = exception;
         }
         finally
         {
             context.ActionExecuted = true;
         }
     });
 }
Example #2
0
    public ITestController<TSubject, TResult, TVars, TSequence> CreateMainTestController<TSubject, TResult, TVars, TSequence> (
        SuiteProvider suiteProvider,
        TestProvider provider,
        Action<ITestController> configurator,
        ActionContainer<TSubject, TResult> actionContainer,
        TSequence sequence)
    {
      var context = new MainTestContext<TSubject, TResult, TVars, TSequence>(actionContainer, configurator) { Sequence = sequence };
      var controller = CreateTestController(suiteProvider, provider, context);

      var wrappedAction = actionContainer.VoidAction != null
          ? GuardAction(context, actionContainer.VoidAction)
          : GuardAction(context, x => context.Result = actionContainer.ResultAction.AssertNotNull()(x));
      controller.AddAction<Act>(actionContainer.Text, x => wrappedAction());
      configurator(controller);

      return controller;
    }
Example #3
0
 private Action GuardAction<TSubject, TResult, TVars, TSequence> (MainTestContext<TSubject, TResult, TVars, TSequence> context, Action<TSubject> action)
 {
   return () =>
   {
     try
     {
       var stopwatch = Stopwatch.StartNew();
       action(context.Subject);
       context.Duration = stopwatch.Elapsed;
     }
     catch (Exception exception)
     {
       if (!context.ExpectsException)
         throw;
       context.Exception = exception;
     }
     finally
     {
       context.ActionExecuted = true;
     }
   };
 }