public void InvokeAsync_DelegatesToInstanceFactoryAndMethodInvoker() { // Arrange object expectedInstance = new object(); object[] expectedArguments = new object[0]; IFunctionInstanceEx functionInstance = new Mock <IFunctionInstanceEx>().Object; Mock <IJobInstanceFactory <object> > instanceFactoryMock = new Mock <IJobInstanceFactory <object> >(MockBehavior.Strict); instanceFactoryMock.Setup(f => f.Create(It.IsAny <IFunctionInstanceEx>())) .Returns(expectedInstance) .Verifiable(); IJobInstanceFactory <object> instanceFactory = instanceFactoryMock.Object; Mock <IMethodInvoker <object, object> > methodInvokerMock = new Mock <IMethodInvoker <object, object> >(MockBehavior.Strict); methodInvokerMock.Setup(i => i.InvokeAsync(expectedInstance, expectedArguments)) .Returns(Task.FromResult <object>(null)) .Verifiable(); IMethodInvoker <object, object> methodInvoker = methodInvokerMock.Object; IFunctionInvokerEx product = CreateProductUnderTest(instanceFactory, methodInvoker); // Act var instance = product.CreateInstance(functionInstance); product.InvokeAsync(instance, expectedArguments).GetAwaiter().GetResult(); // Assert instanceFactoryMock.VerifyAll(); methodInvokerMock.VerifyAll(); }
public TriggeredFunctionInstanceFactory(ITriggeredFunctionBinding <TTriggerValue> binding, IFunctionInvokerEx invoker, FunctionDescriptor descriptor) { _binding = binding; _invoker = invoker; _descriptor = descriptor; }
private FunctionDefinition CreateTriggeredFunctionDefinition <TTriggerValue>( ITriggerBinding triggerBinding, string parameterName, FunctionDescriptor descriptor, IReadOnlyDictionary <string, IBinding> nonTriggerBindings, IFunctionInvokerEx invoker) { ITriggeredFunctionBinding <TTriggerValue> functionBinding = new TriggeredFunctionBinding <TTriggerValue>(descriptor, parameterName, triggerBinding, nonTriggerBindings, _singletonManager); ITriggeredFunctionInstanceFactory <TTriggerValue> instanceFactory = new TriggeredFunctionInstanceFactory <TTriggerValue>(functionBinding, invoker, descriptor); ITriggeredFunctionExecutor triggerExecutor = new TriggeredFunctionExecutor <TTriggerValue>(descriptor, _executor, instanceFactory); IListenerFactory listenerFactory = new ListenerFactory(descriptor, triggerExecutor, triggerBinding, _sharedQueue); return(new FunctionDefinition(descriptor, instanceFactory, listenerFactory)); }
public InvokeWrapper(IFunctionInvokerEx inner, Func <Func <Task <object> >, Task <object> > handler) { _inner = inner; _handler = handler; }