コード例 #1
0
        public void OperationRunnerTwoOperationsSuccess()
        {
            OperationRunner runner = new OperationRunner(
                null,
                _wizardPage);

            int execution = 0;

            for (int i = 0; i < 2; i++)
            {
                runner.Operations.Enqueue(new Operation()
                {
                    Name = $"Operation_{i}",
                    OperationFunction = (context) =>
                    {
                        execution++;

                        return(null);
                    },
                    ValidateFunction = (context) =>
                    {
                        return(context.LastOperationStatusCode == 0);
                    },
                });
            }

            runner.RunOperations();

            Assert.AreEqual(2, execution, $"Unexpected number of operations executed ('1' != '{execution}')!");
        }
コード例 #2
0
        public void OperationRunnerSingleOperationSuccess()
        {
            OperationRunner runner = new OperationRunner(
                null,
                _wizardPage);

            int execution = 0;

            runner.Operations.Enqueue(new Operation()
            {
                Name = "SingleOperation",
                OperationFunction = (context) =>
                {
                    execution++;

                    return(null);
                },
                ValidateFunction = (context) =>
                {
                    return(context.LastOperationStatusCode == 0);
                },
            });

            runner.RunOperations();

            Assert.AreEqual(1, execution, $"Unexpected number of operations executed ('1' != '{execution}')!");
        }
コード例 #3
0
        public void OperationRunnerFiveOperationsExceptionOnThird()
        {
            OperationRunner runner = new OperationRunner(
                null,
                _wizardPage);

            int  execution        = 0;
            bool handledException = false;

            for (int i = 0; i < 5; i++)
            {
                if (i == 2)
                {
                    runner.Operations.Enqueue(new Operation()
                    {
                        Name = $"Operation_{i}",
                        OperationFunction = (context) =>
                        {
                            execution++;

                            throw new Exception("Halt here!");
                        },
                        ValidateFunction = (context) =>
                        {
                            return(context.LastOperationStatusCode == 0);
                        },
                        ExceptionHandler = (ex) =>
                        {
                            handledException = true;
                        },
                    });
                }
                else
                {
                    runner.Operations.Enqueue(new Operation()
                    {
                        Name = $"Operation_{i}",
                        OperationFunction = (context) =>
                        {
                            execution++;

                            return(null);
                        },
                        ValidateFunction = (context) =>
                        {
                            return(context.LastOperationStatusCode == 0);
                        },
                    });
                }
            }

            runner.RunOperations();

            Assert.AreEqual(3, execution, $"Unexpected number of operations executed ('1' != '{execution}')!");
            Assert.IsTrue(handledException, "Operation should have been passed exception thrown!");
        }
コード例 #4
0
        public void OperationRunnerFiveOperationsValidationFailOnFourth()
        {
            OperationRunner runner = new OperationRunner(
                null,
                _wizardPage);

            int execution = 0;

            for (int i = 0; i < 5; i++)
            {
                if (i == 3)
                {
                    runner.Operations.Enqueue(new Operation()
                    {
                        Name = $"Operation_{i}",
                        OperationFunction = (context) =>
                        {
                            execution++;

                            return(null);
                        },
                        ValidateFunction = (context) =>
                        {
                            return(context.LastOperationStatusCode == -1);
                        },
                    });
                }
                else
                {
                    runner.Operations.Enqueue(new Operation()
                    {
                        Name = $"Operation_{i}",
                        OperationFunction = (context) =>
                        {
                            execution++;

                            return(null);
                        },
                        ValidateFunction = (context) =>
                        {
                            return(context.LastOperationStatusCode == 0);
                        },
                    });
                }
            }

            runner.RunOperations();

            Assert.AreEqual(4, execution, $"Unexpected number of operations executed ('1' != '{execution}')!");
        }