public async Task TestRetrieveRepositories_WhenRepoRetrievalStatusIsSucceeded_DoesNotCallConnection() { var systemUnderTest = new TfProject(new TeamProject(), _tfsConnection, _logger); _tfsConnection.GetRepositoriesInProject(systemUnderTest).Returns(Enumerable.Empty <ITfGitRepository>()); await systemUnderTest.RetrieveRepositories(); Assert.That(systemUnderTest.RepositoryRetrievalStatus, Is.EqualTo(RetrievalStatus.Suceeded)); await _tfsConnection.Received(1).GetRepositoriesInProject(systemUnderTest); await systemUnderTest.RetrieveRepositories(); await _tfsConnection.Received(1).GetRepositoriesInProject(systemUnderTest); }
public async Task TestRetrieveRepositories_WhenGettingReposSucceeds_SetsRepoRetrievalStatusToSucceeded() { var systemUnderTest = new TfProject(new TeamProject(), _tfsConnection, _logger); _tfsConnection.GetRepositoriesInProject(systemUnderTest).Returns(Enumerable.Empty <ITfGitRepository>()); await systemUnderTest.RetrieveRepositories(); Assert.That(systemUnderTest.RepositoryRetrievalStatus, Is.EqualTo(RetrievalStatus.Suceeded)); }
public async Task TestRetrieveRepositories_WhenGettingRepositoriesFailsForUnknownReason_SetsStatusToFailedReasonUnknown(Exception exception) { var systemUnderTest = new TfProject(new TeamProject(), _tfsConnection, _logger); _tfsConnection.GetRepositoriesInProject(systemUnderTest).Throws(exception); await systemUnderTest.RetrieveRepositories(); Assert.That(systemUnderTest.RepositoryRetrievalStatus, Is.EqualTo(RetrievalStatus.FailedReasonUnknown)); }
public async Task TestRetrieveRepositories_WhenRepositoryRetrievalStatusIsUnstarted_CallsConnection() { var systemUnderTest = new TfProject(new TeamProject(), _tfsConnection, _logger); _tfsConnection.GetRepositoriesInProject(systemUnderTest).Returns(Enumerable.Empty <ITfGitRepository>()); await systemUnderTest.RetrieveRepositories(); await _tfsConnection.Received(1).GetRepositoriesInProject(systemUnderTest); }
public async Task TestUpdateRepositories_GetsProjectRepositoriesFromServer() { var projectId = Guid.NewGuid(); var systemUnderTest = new TfProject(new TeamProject { Id = projectId }, _tfsConnection, _logger); _tfsConnection.GetRepositoriesInProject(systemUnderTest).Returns(Enumerable.Empty <ITfGitRepository>()); await systemUnderTest.RetrieveRepositories(); await _tfsConnection.Received().GetRepositoriesInProject(systemUnderTest); }
public async Task TestRepositories_AfterUpdatingRepositories_WhenRepoFilterIsNull_ReturnsReposReturnedByServer() { var projectId = Guid.NewGuid(); var systemUnderTest = new TfProject(new TeamProject { Id = projectId }, _tfsConnection, _logger); var reposFromServer = new List <ITfGitRepository>(); reposFromServer.Add(Substitute.For <ITfGitRepository>()); reposFromServer.Add(Substitute.For <ITfGitRepository>()); reposFromServer.Add(Substitute.For <ITfGitRepository>()); _tfsConnection.GetRepositoriesInProject(systemUnderTest).Returns(reposFromServer); systemUnderTest.RepositoryFilter = null; // For clarity of the test await systemUnderTest.RetrieveRepositories(); foreach (var repo in reposFromServer) { Assert.That(systemUnderTest.Repositories, Does.Contain(repo)); } }
public async Task TestRepositories_AfterUpdatingRepositories_WhenRepoFilterIsNotNull_AppliesFilter() { var projectId = Guid.NewGuid(); var systemUnderTest = new TfProject(new TeamProject { Id = projectId }, _tfsConnection, _logger); var includedRepos = new HashSet <ITfGitRepository>(); includedRepos.Add(Substitute.For <ITfGitRepository>()); includedRepos.Add(Substitute.For <ITfGitRepository>()); includedRepos.Add(Substitute.For <ITfGitRepository>()); var excludedRepos = new HashSet <ITfGitRepository>(); excludedRepos.Add(Substitute.For <ITfGitRepository>()); excludedRepos.Add(Substitute.For <ITfGitRepository>()); var reposFromServer = new List <ITfGitRepository>(); reposFromServer.AddRange(includedRepos); reposFromServer.AddRange(excludedRepos); _tfsConnection.GetRepositoriesInProject(systemUnderTest).Returns(reposFromServer); var repoFilter = Substitute.For <IRepositoryFilter>(); repoFilter.IncludesRepo(Arg.Any <ITfGitRepository>()) .Returns(callInfo => includedRepos.Contains(callInfo.Arg <ITfGitRepository>())); systemUnderTest.RepositoryFilter = repoFilter; await systemUnderTest.RetrieveRepositories(); foreach (var repo in includedRepos) { Assert.That(systemUnderTest.Repositories.Contains(repo), Is.True); } foreach (var repo in excludedRepos) { Assert.That(systemUnderTest.Repositories.Contains(repo), Is.False); } }