public void Should_Set_The_Error_Handler()
            {
                // Given
                var task    = new ActionTask("task");
                var builder = new CakeTaskBuilder <ActionTask>(task);

                // When
                builder.ContinueOnError();

                // Then
                Assert.NotNull(builder.Task.ErrorHandler);
            }
Beispiel #2
0
            public void Should_Set_The_Property()
            {
                // Given
                var task    = new ActionTask("task");
                var builder = new CakeTaskBuilder <ActionTask>(task);

                // When
                builder.ContinueOnError();

                // Then
                Assert.True(builder.Task.ContinueOnError);
            }
Beispiel #3
0
        /// <summary>
        ///     Creates an actual Cake task from the internal <see cref="RegisteredTask"/> structure.
        /// </summary>
        private void RegisterPluginTasks()
        {
            foreach (RegisteredTask registeredTask in _registeredTasks)
            {
                CakeTaskBuilder builder = RegisterTask(registeredTask.Name)
                                          .Description(registeredTask.Description);

                if (registeredTask.ContinueOnError)
                {
                    builder.ContinueOnError();
                }

                if (registeredTask.AttributeType == typeof(TaskAttribute) && registeredTask.RequiresConfig)
                {
                    builder.IsDependentOn(TaskNames.Config);
                }

                ParameterInfo[] parameters = registeredTask.Method.GetParameters();
                switch (parameters.Length)
                {
                case 2:
                    var action2 = (Action <ICakeContext, TaskConfig>)registeredTask.Method.CreateDelegate(
                        typeof(Action <ICakeContext, TaskConfig>));
                    builder.Does(action2);
                    break;

                case 1:
                    if (parameters[0].ParameterType == typeof(TaskConfig))
                    {
                        Action <ICakeContext, TaskConfig> action1 = (_, cfg) =>
                        {
                            registeredTask.Method.Invoke(obj: null, new object[] { cfg });
                        };
                        builder.Does(action1);
                    }
                    else
                    {
                        var action1 = (Action <ICakeContext>)registeredTask.Method.CreateDelegate(typeof(Action <ICakeContext>));
                        builder.Does(action1);
                    }

                    break;

                default:
                    var action = (Action)registeredTask.Method.CreateDelegate(typeof(Action));
                    builder.Does(action);
                    break;
                }
            }
        }