Beispiel #1
0
        public void WhenNoInputs_ThenEmptyArrayReturned()
        {
            var mps   = new MethodParameterService();
            var parms = mps.GetParams(new string [] { }, typeof(FakeFunction).GetTypeInfo().GetMethod("NoInputs", new Type [] { }));

            parms.Should().BeEmpty();
        }
Beispiel #2
0
        public void WhenSingleStringWithDefaultInput_ThenDefaultReturned()
        {
            var mps   = new MethodParameterService();
            var parms = mps.GetParams(new string[] { }, typeof(FakeFunction).GetTypeInfo().GetMethod("DefaultStringInput", new Type[] { typeof(string) }));

            parms.Count().Should().Be(1);
            parms.Single().Should().Be("default");
        }
Beispiel #3
0
        private async Task ExecuteStepAsync(object instance, Step step)
        {
            var functionMethods =
                instance.GetType()
                .GetRuntimeMethods()
                .Where(m => m.Name == step.Function.MethodName);

            if (!functionMethods.Any())
            {
                throw new ArgumentException($"Method {step.Function.MethodName} not found on type {instance.GetType().Name}.");
            }

            var method     = functionMethods.First();
            var parameters = new MethodParameterService().GetParams(step.Function.PositionalMethodParameterValues?.ToArray(), method);

            if (IsAsyncMethod(method))
            {
                await((Task)method.Invoke(instance, parameters));
            }
            else
            {
                method.Invoke(instance, parameters);
            }
        }