public void TryGetRepositoryPath_fails_when_starting_path_is_not_a_git_repository() { // ARRANGE using var temporaryDirectory = new TemporaryDirectory(); // ACT var success = RepositoryLocator.TryGetRepositoryPath(temporaryDirectory, out var actualRepositoryPath); // ASSERT Assert.False(success); Assert.Null(actualRepositoryPath); }
public async Task TryGetRepositoryPath_fails_when_starting_path_is_a_bare_repository() { // ARRANGE using var temporaryDirectory = new TemporaryDirectory(); var git = new GitWrapper(temporaryDirectory, m_TestOutputHelper); await git.InitAsync(createBareRepository : true); // ACT var success = RepositoryLocator.TryGetRepositoryPath(temporaryDirectory, out var actualRepositoryPath); // ASSERT Assert.False(success); Assert.Null(actualRepositoryPath); }
public async Task TryGetRepositoryPath_succeeds_when_starting_path_is_a_git_repository() { // ARRANGE using var temporaryDirectory = new TemporaryDirectory(); var git = new GitWrapper(temporaryDirectory, m_TestOutputHelper); await git.InitAsync(); // ACT var success = RepositoryLocator.TryGetRepositoryPath(temporaryDirectory, out var actualRepositoryPath); // ASSERT Assert.True(success); Assert.Equal(temporaryDirectory, actualRepositoryPath?.TrimEnd(Path.DirectorySeparatorChar)); }
private static bool TryGetRepositoryPath(CommandLineParameters parameters, ILogger logger, [NotNullWhen(true)] out string?repositoryPath) { if (!String.IsNullOrEmpty(parameters.RepositoryPath)) { repositoryPath = Path.GetFullPath(parameters.RepositoryPath); return(true); } if (RepositoryLocator.TryGetRepositoryPath(Environment.CurrentDirectory, out repositoryPath)) { logger.LogInformation($"Found git repository at '{repositoryPath}'"); return(true); } else { logger.LogError($"No git repository found in '{Environment.CurrentDirectory}' or any of its parent directories"); repositoryPath = default; return(false); } }