public static ITask <GitStatus> GetGitStatus(this IProcessManager processManager, NPath workingDirectory, IEnvironment environment, IProcessEnvironment gitEnvironment, NPath?gitPath = null) { var gitStatusEntryFactory = new GitObjectFactory(environment); var processor = new StatusOutputProcessor(gitStatusEntryFactory); NPath path = gitPath ?? defaultGitPath; return(new ProcessTask <GitStatus>(CancellationToken.None, processor) .Configure(processManager, path, "status -b -u --porcelain", workingDirectory, false)); }
private void AssertProcessOutput(IEnumerable <string> lines, GitStatus expected) { var gitObjectFactory = SubstituteFactory.CreateGitObjectFactory(TestRootPath); GitStatus?result = null; var outputProcessor = new StatusOutputProcessor(gitObjectFactory); outputProcessor.OnEntry += status => { result = status; }; foreach (var line in lines) { outputProcessor.LineReceived(line); } Assert.IsTrue(result.HasValue); result.Value.AssertEqual(expected); }
public static async Task <GitStatus> GetGitStatus(this ProcessManager processManager, NPath workingDirectory, IEnvironment environment, IFileSystem filesystem, IProcessEnvironment gitEnvironment, NPath gitPath = null) { var gitStatusEntryFactory = new GitObjectFactory(environment); var processor = new StatusOutputProcessor(gitStatusEntryFactory); NPath path = gitPath ?? defaultGitPath; var results = await new ProcessTask <GitStatus>(CancellationToken.None, processor) .Configure(processManager, path, "status -b -u --porcelain", workingDirectory, false) .Start() .Task; return(results); }