public async Task <A> TestExpr <T, D, A>(T state, D dependencies, Port <A> expr, params object[] paths) { var idempotency = paths.OfType <Idempotency>().SingleOrDefault(); var mockContext = MockContext.GetInstance(paths); var sp = CreateServiceProvider(mockContext, _adapterAssemblies); var interpreter = new MockInterpreterAsync(sp); A result = default; switch (idempotency) { case Idempotency.RunOnce: result = await interpreter.Interpret(expr, state, dependencies); break; case Idempotency.RunTwice: result = await interpreter.Interpret(expr, state, dependencies); result = await interpreter.Interpret(expr, state, dependencies); break; } return(result); }
public async Task <A> TestExpr <A>(IO <A> expr, params object[] paths) { var mockContext = MockContext.GetInstance(paths); var sp = CreateServiceProvider(mockContext); var interpreter = new MockInterpreterAsync(sp); var result = await interpreter.Interpret(expr, Unit.Default); return(result); }