コード例 #1
0
        public async Task Test___Method_Start___Status_Created___Condition_True()
        {
            var variable = new AnyVariable <bool>()
            {
                Value = true
            };
            var duration = new AnyVariable <int>()
            {
                Value = 1000
            };

            var testee = new WhileActivity()
            {
                Condition = new TrueCondition()
                {
                    Value = variable
                },
                Activity = new DelayActivity()
                {
                    Duration = duration
                }
            };

            var task = testee.Start();

            Assert.AreEqual(ActivityStatus.Executing, testee.Status);

            Thread.Sleep(3000);

            variable.SetValue(false);

            await task;

            Assert.AreEqual(ActivityStatus.Completed, testee.Status);
        }
コード例 #2
0
        public async Task Test___Method_Start___Status_Created___Empty()
        {
            var value = new AnyVariable <object>();
            var to    = new AnyVariable <int>()
            {
                Value = 0
            };

            var testee = new ForEachActivity()
            {
                Enumerable = new AnyVariable <IEnumerable>()
                {
                    Value = new List <object>()
                },
                Value    = value,
                Activity = new AssignActivity()
                {
                    To    = to,
                    Value = value
                }
            };

            await testee.Start();

            Assert.AreEqual(ActivityStatus.Completed, testee.Status);
            Assert.AreEqual(0, to.GetValueAsObject());
        }
コード例 #3
0
        public void Test___Method_Stop___Status_Created()
        {
            var value = new AnyVariable <string>();
            var to    = new AnyVariable <string>();

            var testee = new ForEachActivity()
            {
                Enumerable = new AnyVariable <IEnumerable>()
                {
                    Value = new List <object>()
                    {
                        "foo",
                        "bar",
                        "baz"
                    }
                },
                Value    = value,
                Activity = new AssignActivity()
                {
                    To    = to,
                    Value = value
                }
            };

            testee.Stop();

            Assert.AreEqual(ActivityStatus.Stopped, testee.Status);
            Assert.IsNull(to.GetValueAsObject());
        }
コード例 #4
0
        public async Task Test___Method_Start___Status_Created___Else_Completed()
        {
            var to = new AnyVariable <int>()
            {
                Value = 0
            };

            var testee = new IfActivity()
            {
                Condition = new FalseCondition(),
                Then      = new AssignActivity()
                {
                    To = to, Value = new AnyVariable <int>()
                    {
                        Value = 1
                    }
                },
                Else = new AssignActivity()
                {
                    To = to, Value = new AnyVariable <int>()
                    {
                        Value = 2
                    }
                }
            };

            await testee.Start();

            Assert.AreEqual(ActivityStatus.Completed, testee.Status);
            Assert.AreEqual(2, to.GetValueAsObject());
        }
コード例 #5
0
        public async Task Test___Method_Start___Status_Created___not_Empty()
        {
            var value = new AnyVariable <string>();
            var to    = new AnyVariable <string>();

            var testee = new ForEachActivity()
            {
                Enumerable = new AnyVariable <IEnumerable>()
                {
                    Value = new List <string>()
                    {
                        "foo",
                        "bar",
                        "baz"
                    }
                },
                Value    = value,
                Activity = new AssignActivity()
                {
                    To    = to,
                    Value = value
                }
            };

            await testee.Start();

            Assert.AreEqual(ActivityStatus.Completed, testee.Status);
            Assert.AreEqual("baz", to.GetValueAsObject());
        }
コード例 #6
0
ファイル: SwitchActivityTest.cs プロジェクト: np-albus/WFLite
        public async Task Test___Method_Start___Status_Created___Cases___Generic()
        {
            var to = new AnyVariable();

            var testee = new SwitchActivity <int>()
            {
                Value = new AnyVariable <int>()
                {
                    Value = 1
                },
                Cases = new Dictionary <int, IActivity>()
                {
                    { 1, new AssignActivity()
                      {
                          To = to, Value = new AnyVariable()
                          {
                              Value = 100
                          }
                      } },
                    { 2, new AssignActivity()
                      {
                          To = to, Value = new AnyVariable()
                          {
                              Value = 1000
                          }
                      } }
                }
            };

            await testee.Start();

            Assert.AreEqual(ActivityStatus.Completed, testee.Status);
            Assert.AreEqual(100, to.GetValue());
        }
コード例 #7
0
        public async Task Test___Method_Start___Status_Suspended_to_Suspended()
        {
            var value = new AnyVariable <bool>()
            {
                Value = false
            };

            var testee = new IfActivity()
            {
                Condition = new TrueCondition(),
                Then      = new SuspendActivity()
                {
                    Until = new TrueCondition()
                    {
                        Value = value
                    }
                }
            };

            await testee.Start();

            Assert.AreEqual(ActivityStatus.Suspended, testee.Status);

            await testee.Start();

            Assert.AreEqual(ActivityStatus.Suspended, testee.Status);
        }
コード例 #8
0
        public async Task Test___Method_Start___Encoding_UTF8()
        {
            var path = Path.Combine(Path.GetTempPath(), GetType().Name, "foo.txt");

            File.WriteAllText(path, "bar");

            var contents = new AnyVariable <string>();

            var testee = new FileReadAllTextActivity()
            {
                Path = new AnyVariable <string>()
                {
                    Value = path
                },
                Contents = contents,
                Encoding = new AnyVariable <Encoding>()
                {
                    Value = Encoding.UTF8
                }
            };

            await testee.Start();

            Assert.AreEqual("bar", contents.GetValue());
            Assert.AreEqual(ActivityStatus.Completed, testee.Status);
        }
コード例 #9
0
        public void Test___Method_Reset___Status_Stopped()
        {
            var elapsed = new AnyVariable <long>()
            {
                Value = 0
            };

            var testee = new StopwatchActivity()
            {
                Activity = new DelayActivity()
                {
                    Duration = new AnyVariable <int>()
                    {
                        Value = 1000
                    }
                },
                Elapsed = elapsed
            };

            testee.Stop();

            Assert.AreEqual(ActivityStatus.Stopped, testee.Status);
            Assert.AreEqual(0L, elapsed.GetValue());

            testee.Reset();

            Assert.AreEqual(ActivityStatus.Created, testee.Status);
        }
コード例 #10
0
        public void Test___Method_Reset___Status_Stopped()
        {
            var duration = new AnyVariable <int>()
            {
                Value = 1000
            };

            var testee = new ParallelActivity()
            {
                Activities = new List <IActivity>()
                {
                    new DelayActivity()
                    {
                        Duration = duration
                    },
                    new DelayActivity()
                    {
                        Duration = duration
                    }
                }
            };

            testee.Stop();

            Assert.AreEqual(ActivityStatus.Stopped, testee.Status);

            testee.Reset();

            Assert.AreEqual(ActivityStatus.Created, testee.Status);
        }
コード例 #11
0
        public async Task Test___Method_Start___Status_Created_to_Suspended()
        {
            var duration = new AnyVariable <int>()
            {
                Value = 1000
            };

            var testee = new ParallelActivity()
            {
                Activities = new List <IActivity>()
                {
                    new DelayActivity()
                    {
                        Duration = duration
                    },
                    new SuspendActivity()
                    {
                        Until = new FalseCondition()
                    }
                }
            };

            await testee.Start();

            Assert.AreEqual(ActivityStatus.Suspended, testee.Status);
        }
コード例 #12
0
        public async Task Test___Method_Start___Status_Suspended___Until_True()
        {
            var value = new AnyVariable <bool>()
            {
                Value = false
            };

            var testee = new SuspendActivity()
            {
                Until = new TrueCondition()
                {
                    Value = value
                }
            };

            await testee.Start();

            Assert.AreEqual(ActivityStatus.Suspended, testee.Status);

            value.SetValue <bool>(true);

            await testee.Start();

            Assert.AreEqual(ActivityStatus.Completed, testee.Status);
        }
コード例 #13
0
        public void Test___Method_Stop___Status_Created()
        {
            var variable = new AnyVariable <bool>()
            {
                Value = true
            };
            var duration = new AnyVariable <int>()
            {
                Value = 1000
            };

            var testee = new WhileActivity()
            {
                Condition = new TrueCondition()
                {
                    Value = variable
                },
                Activity = new DelayActivity()
                {
                    Duration = duration
                }
            };

            testee.Stop();

            Assert.AreEqual(ActivityStatus.Stopped, testee.Status);
        }
コード例 #14
0
        public async Task Test___Method_Start___Status_Created___Condition_False()
        {
            var variable = new AnyVariable <bool>()
            {
                Value = false
            };
            var duration = new AnyVariable <int>()
            {
                Value = 1000
            };

            var testee = new WhileActivity()
            {
                Condition = new TrueCondition()
                {
                    Value = variable
                },
                Activity = new DelayActivity()
                {
                    Duration = duration
                }
            };

            await testee.Start();

            Assert.AreEqual(ActivityStatus.Completed, testee.Status);
        }
コード例 #15
0
ファイル: SwitchActivityTest.cs プロジェクト: np-albus/WFLite
        public async Task Test___Method_Start___Status_Suspended_to_Suspended()
        {
            var value = new AnyVariable <bool>()
            {
                Value = false
            };

            var testee = new SwitchActivity()
            {
                Value = new AnyVariable <int>()
                {
                    Value = 1
                },
                Cases = new Dictionary <object, IActivity>()
                {
                    { 1, new SuspendActivity()
                      {
                          Until = new TrueCondition()
                          {
                              Value = value
                          }
                      } }
                }
            };

            await testee.Start();

            Assert.AreEqual(ActivityStatus.Suspended, testee.Status);

            await testee.Start();

            Assert.AreEqual(ActivityStatus.Suspended, testee.Status);
        }
コード例 #16
0
        public async Task Test___Method_Stop___Status_Executing()
        {
            var elapsed = new AnyVariable <long>()
            {
                Value = 0
            };

            var testee = new StopwatchActivity()
            {
                Activity = new DelayActivity()
                {
                    Duration = new AnyVariable <int>()
                    {
                        Value = 1000
                    }
                },
                Elapsed = elapsed
            };

            var task = testee.Start();

            testee.Stop();

            await task;

            Assert.AreEqual(ActivityStatus.Stopped, testee.Status);
            Assert.AreNotEqual(0, elapsed.GetValueAsObject());
        }
コード例 #17
0
ファイル: SwitchActivityTest.cs プロジェクト: np-albus/WFLite
        public void Test___Method_Stop___Status_Created()
        {
            var to = new AnyVariable();

            var testee = new SwitchActivity()
            {
                Value = new AnyVariable <int>()
                {
                    Value = 1
                },
                Cases = new Dictionary <object, IActivity>()
                {
                    { 1, new AssignActivity()
                      {
                          To = to, Value = new AnyVariable()
                          {
                              Value = 100
                          }
                      } },
                    { 2, new AssignActivity()
                      {
                          To = to, Value = new AnyVariable()
                          {
                              Value = 1000
                          }
                      } }
                }
            };

            testee.Stop();

            Assert.AreEqual(ActivityStatus.Stopped, testee.Status);
            Assert.IsNull(to.GetValue());
        }
コード例 #18
0
        public async Task Test___Method_Reset___Status_Completed()
        {
            var elapsed = new AnyVariable <long>()
            {
                Value = 0
            };

            var testee = new StopwatchActivity()
            {
                Activity = new DelayActivity()
                {
                    Duration = new AnyVariable <int>()
                    {
                        Value = 1000
                    }
                },
                Elapsed = elapsed
            };

            await testee.Start();

            Assert.AreEqual(ActivityStatus.Completed, testee.Status);
            Assert.AreNotEqual(0, elapsed.GetValueAsObject());

            testee.Reset();

            Assert.AreEqual(ActivityStatus.Created, testee.Status);
        }
コード例 #19
0
ファイル: Program.cs プロジェクト: np-albus/WFLite
        static async Task Main(string[] args)
        {
            var greeting = new AnyVariable <string>();

            var activity = new SequenceActivity()
            {
                Activities = new List <IActivity>()
                {
                    new AssignActivity <string, int>()
                    {
                        To        = greeting,
                        Value     = new NowHourVariable(),
                        Converter = new HourToGreetingConverter()
                    },
                    new ConsoleWriteLineActivity()
                    {
                        Value = greeting
                    }
                }
            };

            await activity.Start();

            Console.ReadKey();
        }
コード例 #20
0
        public async Task Test___Method_Stop___Status_Executing()
        {
            var value = new AnyVariable <int>();

            var testee = new ForEachActivity()
            {
                Enumerable = new AnyVariable <IEnumerable>()
                {
                    Value = new List <object>()
                    {
                        2000,
                        2000,
                        2000
                    }
                },
                Value    = value,
                Activity = new DelayActivity()
                {
                    Duration = value
                }
            };

            var task = testee.Start();

            Assert.AreEqual(ActivityStatus.Executing, testee.Status);

            Thread.Sleep(3000);

            testee.Stop();

            await task;

            Assert.AreEqual(ActivityStatus.Stopped, testee.Status);
        }
コード例 #21
0
        public void Test___Method_Reset___Status_Stopped()
        {
            var to = new AnyVariable <int>()
            {
                Value = 0
            };

            var testee = new IfActivity()
            {
                Condition = new TrueCondition(),
                Then      = new AssignActivity()
                {
                    To = to, Value = new AnyVariable <int>()
                    {
                        Value = 1
                    }
                },
                Else = new AssignActivity()
                {
                    To = to, Value = new AnyVariable <int>()
                    {
                        Value = 2
                    }
                }
            };

            testee.Stop();

            Assert.AreEqual(ActivityStatus.Stopped, testee.Status);
            Assert.AreEqual(0, to.GetValueAsObject());

            testee.Reset();

            Assert.AreEqual(ActivityStatus.Created, testee.Status);
        }
コード例 #22
0
ファイル: Program.cs プロジェクト: np-albus/WFLite
        static async Task Main(string[] args)
        {
            var elapsed = new AnyVariable <long>();

            var activity = new TryCatchActivity()
            {
                Try = new StopwatchActivity()
                {
                    Activity = new DelayActivity(new AnyVariable <int>(10000)),
                    Elapsed  = elapsed
                },
                Finally = new ConsoleWriteLineActivity()
                {
                    Value = elapsed
                }
            };

            // start
            Console.WriteLine("Press any key to start.");
            Console.ReadKey();

            var task = activity.Start();

            // stop
            Console.WriteLine("Press any key to stop.");
            Console.ReadKey();

            activity.Stop();

            await task;

            Console.ReadKey();
        }
コード例 #23
0
        static async Task Main(string[] args)
        {
            var statusCode = new AnyVariable <HttpStatusCode>();
            var data       = new AnyVariable <string>();

            var activity = new SequenceActivity()
            {
                Activities = new List <IActivity>()
                {
                    // start WFLite.AspNetCore.HelloWorld first.
                    new RestAsyncActivity <string>()
                    {
                        BaseUrl = new AnyVariable("http://localhost:51115/"),
                        Request = new RequestVariable()
                        {
                            Resource = new AnyVariable("api/values")
                        },
                        Response = new ResponseVariable <string>()
                        {
                            StatusCode = statusCode,
                            Data       = data
                        }
                    },
                    new ConsoleWriteLineActivity()
                    {
                        Value = data
                    }
                }
            };

            await activity.Start();

            Console.ReadKey();
        }
コード例 #24
0
ファイル: AssignActivityTest.cs プロジェクト: np-albus/WFLite
        public void Test___Method_Reset___Status_Stopped()
        {
            var to = new AnyVariable <int>()
            {
                Value = 0
            };
            var value = new AnyVariable <int>()
            {
                Value = 10
            };

            var testee = new AssignActivity()
            {
                To    = to,
                Value = value
            };

            testee.Stop();

            Assert.AreEqual(ActivityStatus.Stopped, testee.Status);
            Assert.AreEqual(0, to.GetValueAsObject());

            testee.Reset();
            Assert.AreEqual(ActivityStatus.Created, testee.Status);
        }
コード例 #25
0
ファイル: AssignActivityTest.cs プロジェクト: np-albus/WFLite
        public async Task Test___Method_Reset___Status_Completed()
        {
            var to = new AnyVariable <int>()
            {
                Value = 0
            };
            var value = new AnyVariable <int>()
            {
                Value = 10
            };

            var testee = new AssignActivity()
            {
                To    = to,
                Value = value
            };

            await testee.Start();

            Assert.AreEqual(ActivityStatus.Completed, testee.Status);
            Assert.AreEqual(10, to.GetValueAsObject());

            testee.Reset();
            Assert.AreEqual(ActivityStatus.Created, testee.Status);
        }
コード例 #26
0
        public async Task <IActionResult> Get([FromQuery(Name = "condition")] bool condition = true)  // false: Not Found
        {
            var actionResult = new AnyVariable <IActionResult>();

            var activity = new IfActivity()
            {
                Condition = new TrueCondition()
                {
                    Value = new AnyVariable <bool>()
                    {
                        Value = condition
                    }
                },
                Then = new AssignActivity()
                {
                    To    = actionResult,
                    Value = new OkObjectResultVariable()
                    {
                        Value = new AnyVariable()
                        {
                            Value = "Hello World!"
                        }
                    }
                },
                Else = new AssignActivity()
                {
                    To    = actionResult,
                    Value = new NotFoundResultVariable()
                }
            };

            await activity.Start();

            return(actionResult.GetValue());
        }
コード例 #27
0
        public async Task Test___Method_Stop___Status_Executing()
        {
            var duration = new AnyVariable <int>()
            {
                Value = 1000
            };

            var testee = new SequenceActivity()
            {
                Activities = new List <IActivity>()
                {
                    new DelayActivity()
                    {
                        Duration = duration
                    },
                    new DelayActivity()
                    {
                        Duration = duration
                    }
                }
            };

            var task = testee.Start();

            Assert.AreEqual(ActivityStatus.Executing, testee.Status);

            testee.Stop();

            await task;

            Assert.AreEqual(ActivityStatus.Stopped, testee.Status);
        }
コード例 #28
0
        public void Test___Method_Stop___Status_Created()
        {
            var variable1 = new AnyVariable <int>();
            var variable2 = new AnyVariable <int>();

            var testee = new SequenceActivity()
            {
                Activities = new List <IActivity>()
                {
                    new AssignActivity()
                    {
                        To = variable1, Value = new AnyVariable <int>()
                        {
                            Value = 10
                        }
                    },
                    new AssignActivity()
                    {
                        To = variable2, Value = new AnyVariable <int>()
                        {
                            Value = 20
                        }
                    }
                }
            };

            testee.Stop();

            Assert.AreEqual(ActivityStatus.Stopped, testee.Status);
            Assert.IsNull(variable1.GetValueAsObject());
            Assert.IsNull(variable2.GetValueAsObject());
        }
コード例 #29
0
        public async Task Test___Method_Start___Status_Created()
        {
            var variable1 = new AnyVariable <int>();
            var variable2 = new AnyVariable <int>();

            var testee = new SequenceActivity()
            {
                Activities = new List <IActivity>()
                {
                    new AssignActivity()
                    {
                        To = variable1, Value = new AnyVariable <int>()
                        {
                            Value = 10
                        }
                    },
                    new AssignActivity()
                    {
                        To = variable2, Value = new AnyVariable <int>()
                        {
                            Value = 20
                        }
                    }
                }
            };

            await testee.Start();

            Assert.AreEqual(ActivityStatus.Completed, testee.Status);
            Assert.AreEqual(10, variable1.GetValueAsObject());
            Assert.AreEqual(20, variable2.GetValueAsObject());
        }
コード例 #30
0
        public void Test___Method_GetValue___Generic_Method___enum_to_int()
        {
            var testee = new AnyVariable <ActivityStatus>()
            {
                Value = ActivityStatus.Created
            };

            Assert.AreEqual(0, testee.GetValue <int>());
        }
コード例 #31
0
ファイル: SelectList.cs プロジェクト: skyquery/graywulf
        public static SelectList Create(ColumnReference cr)
        {
            // Create new expression
            var nsl = new SelectList();

            var nce = new ColumnExpression();
            nce.ColumnReference = new ColumnReference(cr);
            nsl.Stack.AddLast(nce);

            var nex = new Expression();
            nce.Stack.AddLast(nex);

            var nav = new AnyVariable();
            nex.Stack.AddLast(nav);

            nav.Stack.AddLast(ColumnIdentifier.Create(new ColumnReference(cr)));

            return nsl;
        }