internal void AfterFunctionInvocation_ClearsOrchestrationContext(DurableFunctionType durableFunctionType) { var durableController = CreateDurableController(durableFunctionType); _mockPowerShellServices.Setup(_ => _.ClearOrchestrationContext()); durableController.AfterFunctionInvocation(); _mockPowerShellServices.Verify(_ => _.ClearOrchestrationContext(), Times.Once); }
private DurableController CreateDurableController( DurableFunctionType durableFunctionType, string durableClientBindingName = null) { var durableFunctionInfo = new DurableFunctionInfo(durableFunctionType, durableClientBindingName); return(new DurableController( durableFunctionInfo, _mockPowerShellServices.Object, _mockOrchestrationInvoker.Object)); }
internal void SuppressPipelineTracesForDurableActivityFunctionOnly(DurableFunctionType durableFunctionType, bool shouldSuppressPipelineTraces) { s_testLogger.FullLog.Clear(); var path = Path.Join(s_funcDirectory, "testFunctionWithOutput.ps1"); var(functionInfo, testManager) = PrepareFunction(path, string.Empty); functionInfo.DurableFunctionInfo.Type = durableFunctionType; try { FunctionMetadata.RegisterFunctionMetadata(testManager.InstanceId, functionInfo.OutputBindings); var result = testManager.InvokeFunction(functionInfo, null, null, null, CreateOrchestratorInputData(), new FunctionInvocationPerformanceStopwatch()); var relevantLogs = s_testLogger.FullLog.Where(message => message.StartsWith("Information: OUTPUT:")).ToList(); var expected = shouldSuppressPipelineTraces ? new string[0] : new[] { "Information: OUTPUT: Hello" }; Assert.Equal(expected, relevantLogs); } finally { FunctionMetadata.UnregisterFunctionMetadata(testManager.InstanceId); } }
internal void BeforeFunctionInvocation_DoesNothing_ForNonOrchestrationFunction(DurableFunctionType durableFunctionType) { var durableController = CreateDurableController(durableFunctionType); var orchestrationContext = new OrchestrationContext { InstanceId = Guid.NewGuid().ToString() }; var inputData = new[] { // Even if a parameter similar to orchestration context is passed: CreateParameterBinding("ParameterName", orchestrationContext) }; durableController.BeforeFunctionInvocation(inputData); }
internal void SuppressPipelineTracesForActivityFunctionOnly(DurableFunctionType durableFunctionType, bool shouldSuppressPipelineTraces) { var durableController = CreateDurableController(durableFunctionType); Assert.Equal(shouldSuppressPipelineTraces, durableController.ShouldSuppressPipelineTraces()); }
internal void AddPipelineOutputIfNecessary_DoesNotAddDollarReturn_ForNonActivityFunction(DurableFunctionType durableFunctionType) { var durableController = CreateDurableController(durableFunctionType); var pipelineItems = new Collection <object> { "Item1", "Item2", "Item3" }; var result = new Hashtable { { "FieldA", "ValueA" }, { "FieldB", "ValueB" } }; durableController.AddPipelineOutputIfNecessary(pipelineItems, result); Assert.False(result.ContainsKey(AzFunctionInfo.DollarReturn)); }
internal void TryInvokeOrchestrationFunction_DoesNotInvokeNonOrchestrationFunction(DurableFunctionType durableFunctionType) { var contextParameterName = "ParameterName"; var orchestrationContext = new OrchestrationContext { InstanceId = Guid.NewGuid().ToString() }; var inputData = new[] { CreateParameterBinding(contextParameterName, orchestrationContext) }; var durableController = CreateDurableController(durableFunctionType); _mockPowerShellServices.Setup(_ => _.SetOrchestrationContext(It.IsAny <OrchestrationContext>())); durableController.BeforeFunctionInvocation(inputData); var invoked = durableController.TryInvokeOrchestrationFunction(out var actualResult); Assert.False(invoked); Assert.Null(actualResult); }
internal void TryGetInputBindingParameterValue_RetrievesNothing_ForNonOrchestrationFunction(DurableFunctionType durableFunctionType) { var durableController = CreateDurableController(durableFunctionType); var orchestrationContext = new OrchestrationContext { InstanceId = Guid.NewGuid().ToString() }; const string contextParameterName = "ParameterName"; var inputData = new[] { CreateParameterBinding(contextParameterName, orchestrationContext) }; _mockPowerShellServices.Setup(_ => _.SetOrchestrationContext(It.IsAny <OrchestrationContext>())); durableController.BeforeFunctionInvocation(inputData); Assert.False(durableController.TryGetInputBindingParameterValue(contextParameterName, out var value)); Assert.Null(value); }
public DurableFunctionInfo(DurableFunctionType type, string durableClientBindingName) { Type = type; DurableClientBindingName = durableClientBindingName; }