示例#1
0
        static void Main(string[] args)
        {
            //4.1)
            SimpleActivity greaterThan100Activity = new SimpleActivity(()=>Console.WriteLine("Value is greater than 100."));

            //4.2)
            SimpleActivity lessThan100Activity = new SimpleActivity(()=>Console.WriteLine("Value is less than 100."));

            //3.)
            Decision<int> greaterOrLess100Decision = new Decision<int>(multipliedValue => multipliedValue > 100, greaterThan100Activity, lessThan100Activity);

            //2.)
            InputOutputActivity<int,int> mutiplyBy10Activity = new InputOutputActivity<int, int>(inputValue => inputValue * 10, greaterOrLess100Decision);

            //1.)
            OutputActivity<int> getInputValueActivity = new OutputActivity<int>(()=>
                                                                                {
                                                                                    Console.Write("Please type in value:");
                                                                                    var input = Console.ReadLine();
                                                                                    return Convert.ToInt32(input);
                                                                                }, mutiplyBy10Activity);

            WorkflowEngine engine = new WorkflowEngine();
            engine.WorkflowProgressChanged += (arg1, arg2, arg3, arg4) => Console.WriteLine("Step:{0}\r\nContext:{1}\r\nSuccess:{2}\r\nException message:{3}", arg1, arg2, arg3, arg4 != null ? arg4.Message : string.Empty);

            engine.WorkflowCompleted += (arg1, arg2) => Console.WriteLine("Completed:\r\nSucceeded:{0}\r\nException message:{1}", arg1, arg2 != null ? arg2.Message : string.Empty);

            engine.Run(getInputValueActivity);

            Console.ReadLine();

            engine.Dispose();
        }
        public void GetActivitiesAfterDate()
        {
            var oldActivity = new SimpleActivity
            {
                What = "oldActivity",
                When = DateTime.Now.Subtract(new TimeSpan(5, 0, 0, 0)),
                Who = _actor
            };

            var newActivity = new SimpleActivity
            {
                What = "newActivity",
                When = DateTime.Now,
                Who = _actor
            };
            _activityRepo.SendActivity(_feedId, oldActivity);
            _activityRepo.SendActivity(_feedId, newActivity);

            var feed = _activityRepo.GetFeed(_feedId, DateTime.Now.Subtract(new TimeSpan(1, 0, 0)));

            var activity = feed.Activities.FirstOrDefault(a => a.What.ToString() == "newActivity");
            Assert.IsNotNull(activity);

            var ooactivity = feed.Activities.FirstOrDefault(a => a.What.ToString() == "oldActivity");
            Assert.IsNull(ooactivity);
        }
示例#3
0
        public void DefaultConstructor_ExpectedValues()
        {
            // Call
            var activity = new SimpleActivity(false, false, false);

            // Assert
            Assert.AreEqual("Uitvoeren van berekening", activity.Description);
            Assert.AreEqual(ActivityState.None, activity.State);
            Assert.IsNull(activity.ProgressText);
        }
示例#4
0
        public void Cancel_ActivityWithSuccessfulCancel_StateIsChangedToCanceled()
        {
            // Setup
            var activity = new SimpleActivity(false, false, false);

            // Call
            activity.Cancel();

            // Assert
            Assert.AreEqual(ActivityState.Canceled, activity.State);
        }
示例#5
0
        public void Run_ActivityWithFailingRun_StateIsChangedToFailed()
        {
            // Setup
            var activity = new SimpleActivity(true, false, false);

            // Call
            activity.Run();

            // Assert
            Assert.AreEqual(ActivityState.Failed, activity.State);
        }
示例#6
0
        public void Run_ActivityWithSuccessfulRun_StateIsChangedToExecuted()
        {
            // Setup
            var activity = new SimpleActivity(false, false, false);

            // Call
            activity.Run();

            // Assert
            Assert.AreEqual(ActivityState.Executed, activity.State);
        }
示例#7
0
        public void Finish_ActivityWithNoneStateAndFailingFinish_StateIsPreserved()
        {
            // Setup
            var activity = new SimpleActivity(false, false, true);

            // Call
            activity.Finish();

            // Assert
            Assert.AreEqual(ActivityState.None, activity.State);
        }
示例#8
0
        public void Finish_ActivityWithSpecificStateAndFailingFinish_StateIsChangedToFailed(ActivityState state)
        {
            // Setup
            var activity = new SimpleActivity(false, false, true, state);

            // Call
            activity.Finish();

            // Assert
            Assert.AreEqual(ActivityState.Failed, activity.State);
        }
示例#9
0
        public void LogState_ActivityWithSpecificState_MessageIsSentToLog(ActivityState state, string message)
        {
            // Setup
            var activity = new SimpleActivity(false, false, false, state);

            // Call / Assert
            TestHelper.AssertLogMessagesAreGenerated(() => activity.LogState(), new[]
            {
                message
            });
        }
示例#10
0
        public void Cancel_ActivityWithFailingCancel_StateIsChangedToFailed()
        {
            // Setup
            var activity = new SimpleActivity(false, true, false);

            // Call
            activity.Cancel();

            // Assert
            Assert.AreEqual(ActivityState.Failed, activity.State);
        }
        public ActionResult Index()
        {
            var workflow = new SimpleActivity();
            var outputs = WorkflowInvoker.Invoke(workflow);

            var message = (String)outputs["value"];

            //ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
            ViewBag.Message = message;

            return View();
        }
示例#12
0
        public void ProgressText_SetValue_ProgressChangedListenersAreNotified()
        {
            // Setup
            const string someProgress = "Some progress";

            var counter  = 0;
            var activity = new SimpleActivity(false, false, false);

            activity.ProgressChanged += (sender, args) => counter++;

            // Call
            activity.SetProgressText(someProgress);

            // Assert
            Assert.AreEqual(1, counter);
            Assert.AreEqual(someProgress, activity.ProgressText);
        }