public void SCFileGetVariable() { string aFileName = ClearEnvironmentForTest(); ContextClient contextClient = SetUpContextClient(); var setContextActivity = new SetVariableActivity { VariableName = Test_SetVariableName, VariableValue = Test_SetVariableValue, ContextClient = new InArgument <ContextClient>((ctx) => contextClient) }; var getContextActivity = new GetVariableActivity { VariableName = Test_SetVariableName, ContextClient = new InArgument <ContextClient>((ctx) => contextClient) }; WorkflowInvoker.Invoke(setContextActivity); var output = WorkflowInvoker.Invoke(getContextActivity); contextClient.MyDispose(); string fileContents = File.ReadAllText(aFileName); Assert.IsTrue(fileContents == "{\"GlobalVariables\":{\"aVariable123\":\"aValue456\"},\"Messages\":{}}"); Assert.IsTrue(output["VariableValue"].ToString() == Test_SetVariableValue); }
public void SCFileScopeWithSharedContextSetInside() { string aFileName = this.ClearEnvironmentForTest(); var sharedContextScopeActivity = new ClientScopeActivity { ContextName = Test_ContextName, ContextType = Test_ContextType, Retries = Test_Retries }; var setContextActivity = new SetVariableActivity { VariableName = Test_SetVariableName, VariableValue = Test_SetVariableValue }; sharedContextScopeActivity.Body.Handler = new Sequence() { Activities = { setContextActivity } }; var output = WorkflowInvoker.Invoke(sharedContextScopeActivity); Assert.IsTrue(File.Exists(aFileName)); string fileContents = File.ReadAllText(aFileName); Assert.IsTrue(fileContents == "{\"GlobalVariables\":{\"aVariable123\":\"aValue456\"},\"Messages\":{}}"); }
public void NewThread() { Console.WriteLine("In thread > " + DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fffff tt")); string aFileName = ClearEnvironmentForTest(true); var sharedContextScopeActivity = new ClientScopeActivity { ContextName = Test_ContextName, ContextType = Test_ContextType, Retries = Test_Retries }; var setContextActivity = new SetVariableActivity { VariableName = Test_SetVariableName, VariableValue = Test_SetVariableValue }; sharedContextScopeActivity.Body.Handler = new Sequence() { Activities = { setContextActivity } }; Console.WriteLine("In thread : about to execute > " + DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fffff tt")); var output = WorkflowInvoker.Invoke(sharedContextScopeActivity); }
public void NewThread() { Console.WriteLine("In thread > " + DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fffff tt")); var aContextServer = this.SetUpContextServer(); var sharedContextScopeActivity = new ClientScopeActivity { ContextName = Test_ContextName, ContextType = Test_ContextType, ClearContext = true, Retries = Test_Retries }; var setContextActivity = new SetVariableActivity { VariableName = Test_SetVariableName, VariableValue = Test_SetVariableValue }; sharedContextScopeActivity.Body.Handler = new Sequence() { Activities = { setContextActivity } }; Console.WriteLine("In thread : about to execute > " + DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fffff tt")); WorkflowInvoker.Invoke(sharedContextScopeActivity); aContextServer.MyDispose(); }
public void SCNamedPipeScopeNakedSetGet() { var aContextServer = this.SetUpContextServer(); var aContextClient = this.SetUpContextClient(); var setContextActivity = new SetVariableActivity { VariableName = Test_SetVariableName, VariableValue = Test_SetVariableValue, ContextClient = new InArgument <ContextClient>((ctx) => aContextClient) }; var getContextActivity = new GetVariableActivity { VariableName = Test_SetVariableName, ContextClient = new InArgument <ContextClient>((ctx) => aContextClient) }; WorkflowInvoker.Invoke(setContextActivity); var output = WorkflowInvoker.Invoke(getContextActivity); Assert.IsTrue(output["VariableValue"].ToString() == Test_SetVariableValue); aContextClient.MyDispose(); aContextServer.MyDispose(); }
public override Activity ToSdkObject() { var activity = new SetVariableActivity(this.Name); activity.VariableName = this.VariableName; activity.Value = this.Value; SetProperties(activity); return(activity); }
public void SCNamedPipeTryToOpenLockedContext() { Thread thread1 = new Thread(NewThread); thread1.Start(); for (int i = 0; i < 5; i++) { Console.WriteLine("In main. i=" + i.ToString() + " > " + DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fffff tt")); if (i == 0 || i == 3) { try { var sharedContextScopeActivity = new ClientScopeActivity { ContextName = Test_ContextName, ContextType = Test_ContextType, Retries = Test_Retries }; var setContextActivity = new SetVariableActivity { VariableName = Test_SetVariableName, VariableValue = Test_SetVariableValue }; sharedContextScopeActivity.Body.Handler = new Sequence() { Activities = { setContextActivity } }; var output = WorkflowInvoker.Invoke(sharedContextScopeActivity); Console.WriteLine("File locked! > " + DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fffff tt")); Thread.Sleep(200); } catch (Exception) { Console.WriteLine("Could not lock File > " + DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fffff tt")); Thread.Sleep(50); } } Thread.Sleep(200); } }
public void SCNamedPipeScopeWithSharedContextSetGetInside() { var sharedContextServerScope = new ServerScopeActivity { ContextName = Test_ContextName }; var sharedContextScopeActivity = new ClientScopeActivity { ContextName = Test_ContextName, ContextType = Test_ContextType, ClearContext = true, Retries = Test_Retries }; var setContextActivity = new SetVariableActivity { VariableName = Test_SetVariableName, VariableValue = Test_SetVariableValue }; var getContextActivity = new GetVariableActivity { VariableName = Test_SetVariableName }; sharedContextServerScope.Body.Handler = new Sequence() { Activities = { sharedContextScopeActivity } }; sharedContextScopeActivity.Body.Handler = new Sequence() { Activities = { setContextActivity, getContextActivity } }; var output = WorkflowInvoker.Invoke(sharedContextServerScope); }
public void SCNamedPipeTrigger() { var aContextServer = this.SetUpContextServer(); var aContextClient = this.SetUpContextClient(); const int runs = 1; Variable <int> runCount = new Variable <int> { Name = nameof(runCount), Default = runs, }; var sequence = new Sequence() { Variables = { runCount }, Activities = { new NamedPipeTriggerV2() { ContextName = Test_ContextName, Debug = true, Body = new ActivityAction <ContextContent> { Argument = new DelegateInArgument <ContextContent>(typeof(ContextContent).Name), Handler = new Sequence { Activities = { new Assign <int>() { To = runCount, Value = new InArgument <int>((ctx) => runCount.Get(ctx) - 1), }, new WriteLine() { Text = new InArgument <string>((ctx) => $"Should be logged.") } } } }, ContinueMonitoring = new VisualBasicValue <bool>($"{nameof(runCount)} > 0"), } } }; var host = new WorkflowInvokerTest(sequence); var task = Task.Run(() => { host.TestActivity(TimeSpan.FromSeconds(10)); }); // Trigger initialization takes time. Thread.Sleep(2000); var setContextActivity = new SetVariableActivity { VariableName = Test_SetVariableName, VariableValue = Test_SetVariableValue, ContextClient = new InArgument <ContextClient>((ctx) => aContextClient) }; WorkflowInvoker.Invoke(setContextActivity); aContextClient.MyDispose(); Thread.Sleep(100); task.Wait(1000); Assert.IsTrue(TaskStatus.RanToCompletion == task.Status); Assert.IsTrue(runs == host.TextLines.Where(l => l == "Should be logged.").Count()); aContextServer.MyDispose(); }