public void LoadAndInvokeWorkflowWithExtensions() { var target = new LoadAndInvokeWorkflow(); var incStore = new IncrementStore(); var decStore = new DecrementStore(); var extensions = new object[] { incStore, decStore }; dynamic innerInput = new WorkflowArguments(); innerInput.Num = 3; dynamic input = new WorkflowArguments(); input.Input = innerInput; input.Path = "ChildWithExtensions.xaml"; input.Extensions = extensions; input.LocalAssembly = Assembly.GetExecutingAssembly(); var host = WorkflowInvokerTest.Create(target); try { host.TestActivity(input); Assert.AreEqual(4, incStore.Value); Assert.AreEqual(2, decStore.Value); } finally { host.Tracking.Trace(); } }
public void LocalAssemblyShouldOverride() { // Arrange var activity = new LoadAndInvokeWorkflow(); var host = WorkflowInvokerTest.Create(activity); try { // Act // Setup the arguments for the TestNum.xaml workflow dynamic innerArgs = new WorkflowArguments(); innerArgs.Num = 2; // Load the assembly to override the local var assembly = Assembly.LoadFrom("DynamicLoad.dll"); // Setup the arguments to the LoadAndInvokeWorkflow dynamic arguments = new WorkflowArguments(); arguments.LocalAssembly = assembly; arguments.Input = innerArgs; arguments.Path = "TestNum.xaml"; host.TestActivity(arguments); // Assert host.AssertOutArgument.IsNotNull("Result"); var innerOutArgs = WorkflowArguments.FromDictionary(host.OutArguments.Result); Assert.AreEqual(3, innerOutArgs.Num); } finally { host.Tracking.Trace(); } }
public void LoadAndInvokeWorkflowShouldRun() { var target = new LoadAndInvokeWorkflow(); // inner dictionary gets passed to child var innerInput = InputDictionary.Create("Num", 1); var input = InputDictionary.Create("Input", innerInput, "Path", "AddToNumOrThrow.xaml"); var host = WorkflowApplicationTest.Create(target, input); try { host.TestWorkflowApplication.RunEpisode(); host.AssertOutArgument.IsNotNull("Result"); var innerArgs = OutputDictionary.Get<IDictionary<string, object>>(host.Results.Output, "Result"); AssertOutArgument.AreEqual(innerArgs, "Result", 2); } finally { host.Tracking.Trace(); } }