コード例 #1
0
        public void Report(ShellCommand command, CommandResult result)
        {
            this.errorTaskHandler.Remove(command);

            var resultTasks = this.BuildErrorTask(command, result.Result);
            this.errorTaskHandler.Add(resultTasks);
        }
コード例 #2
0
        public void Should_remove_task_from_error_task_list()
        {
            var command = new ShellCommand(".", ".");
            var error = this.CreateError(command);
            this.errorTaskHandler.Add(new [] { error});

            this.errorTaskHandler.Remove(command);

            A.CallTo(() => this.errorListFacade.Remove(error)).MustHaveHappened();
        }
コード例 #3
0
        public void Should_be_able_to_remove_tasks()
        {
            var command = new ShellCommand("", "");
            var error0 = this.CreateError(command);
            this.errorTaskHandler.Add(new [] { error0 });

            this.errorTaskHandler.Remove(command);

               Assert.That(this.errorTaskHandler.Existing(command).Any(), Is.False);
        }
コード例 #4
0
        public void Should_remove_previous_errors_from_matching_command_when_handling_new_errors()
        {
            var task = A.Fake<IGooseErrorTask>();
            var command = new ShellCommand("", "");
            A.CallTo(() => task.Command).Returns(command);
            A.CallTo(() => this.errorTaskHandler.Existing(command)).Returns(new[] { task });

            this.errorReporter.Report(command, A.Fake<CommandResult>());

            A.CallTo(() => this.errorTaskHandler.Remove(command)).MustHaveHappened();
        }
コード例 #5
0
 public void Remove(ShellCommand command)
 {
     IEnumerable<IGooseErrorTask> errors;
     if (this.knownErrors.TryRemove(command, out errors))
     {
         foreach (var error in errors)
         {
             this.errorListFacade.Remove(error);
         }
     }
 }
コード例 #6
0
        public void Should_be_able_to_add_tasks_results_from_multiple_commands()
        {
            var command0 = new ShellCommand("a", "a");
            var error0 = this.CreateError(command0);
            var error1 = this.CreateError(command0);
            var tasks0 = new[] { error0, this.CreateError(new ShellCommand("", "")) };
            var tasks1 = new[] { this.CreateError(new ShellCommand("", "")), error1 };
            this.errorTaskHandler.Add(tasks0);
            this.errorTaskHandler.Add(tasks1);

            var existing = this.errorTaskHandler.Existing(command0);

            Assert.That(existing, Is.EquivalentTo(new [] { error0, error1 }));
        }
コード例 #7
0
        private IEnumerable<IGooseErrorTask> BuildErrorTask(ShellCommand command, string content)
        {
            var output = this.logParser.Parse(content);

            return output.Results
                         .Where(error => error.Type.Equals(CommandOutputItemType.Error))
                         .Select(error =>
                             {
                                 var errorTask = new ErrorTask
                                     {
                                         CanDelete = true,
                                         Column = 0,
                                         Line = (int) error.Line,
                                         Document = error.FullPath,
                                         Text = string.Format("{0}{1}{2}", error.Message, Environment.NewLine, error.Excerpt)
                                     };
                                 return new GooseErrorTask(command, errorTask);
                             });
        }
コード例 #8
0
        public void Should_save_added_tasks()
        {
            var command = new ShellCommand("", "");
            var tasks0 = new[] { this.CreateError(command), this.CreateError(command) };
            var tasks1 = new[] { this.CreateError(command), this.CreateError(command) };
            this.errorTaskHandler.Add(tasks0);
            this.errorTaskHandler.Add(tasks1);

            var existing = this.errorTaskHandler.Existing(command);

            Assert.That(existing, Is.EquivalentTo(tasks0.Concat(tasks1)));
        }
コード例 #9
0
        private IGooseErrorTask CreateError(ShellCommand command)
        {
            var error = A.Fake<IGooseErrorTask>();
            A.CallTo(() => error.Command).Returns(command);

            return error;
        }
コード例 #10
0
 public IEnumerable<IGooseErrorTask> Existing(ShellCommand command)
 {
     return this.knownErrors.GetOrAdd(command, key => Enumerable.Empty<IGooseErrorTask>());
 }
コード例 #11
0
 public GooseErrorTask(ShellCommand command, ErrorTask error)
 {
     this.Command = command;
     this.Error = error;
 }