Example #1
0
        TReturn GetTestHolder <TReturn, TTest, TAction>(TAction action)
            where TTest : AbstractTest <TAction>
            where TReturn : class
        {
            Test = TestFactory.Create <TTest>(action);

            return(Activator.CreateInstance(typeof(TReturn), Test) as TReturn);
        }
Example #2
0
        static List <(Type Type, object Object)> GetTypedParameters(ITestInternal test)
        {
            var typedParameters = new List <(Type, object)>();

            if (test.TryGetParameters(out var parameters))
            {
                foreach (var parameter in parameters)
                {
                    var type = parameter.GetType();

                    typedParameters.Add((type, parameter));
                }
            }

            return(typedParameters);
        }
Example #3
0
        public TestTaskRunner(ITestInternal test)
        {
            Test = test;

            _action = TestActionFactory.Create(Test);

            _source = new CancellationTokenSource();

            if (Test.Timeout > 0)
            {
                _token = _source.Token;

                _timer = new System.Timers.Timer(Test.Timeout);

                _timer.AutoReset = false;

                _timer.Elapsed += (sender, args) => _source.Cancel();
            }
        }
Example #4
0
        static Action <CancellationToken> CreateActionDinamically(ITestInternal test)
        {
            var typedParameters = GetTypedParameters(test);

            if (_actionCreators.TryGetValue(typedParameters.Count(), out var method))
            {
                if (method.IsGenericMethod)
                {
                    method = method.MakeGenericMethod(typedParameters.Select(a => a.Type).ToArray());
                }

                var arguments = new List <object>(typedParameters.Select(a => a.Object));

                arguments.Insert(0, test);

                return((Action <CancellationToken>)method.Invoke(null, arguments.ToArray()));
            }

            throw new NotImplementedException($"TestFactory cannot create action for {test.GetType().Name}");
        }
Example #5
0
 public static Action <CancellationToken> Create(ITestInternal test) => CreateActionDinamically(test);
Example #6
0
 public ParameterBuilder(ITestInternal buildee) : base(new TestOptions(buildee))
 {
 }
 public TestOptions(ITestInternal test) => Test = test;