public void No_Directory() { var unknownPath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); var target = new GitService(new RepositoryFacade()); Assert.Throws <ArgumentException>(() => target.CreateLocalRepositoryModel(unknownPath)); }
public void NoRemoteUrl() { using (var temp = new TempDirectory()) { var repositoryFacade = Substitute.For <IRepositoryFacade>(); var gitService = new GitService(repositoryFacade); var path = temp.Directory.CreateSubdirectory("repo-name"); var model = gitService.CreateLocalRepositoryModel(path.FullName); Assert.That(model.Name, Is.EqualTo("repo-name")); } }
public void NoRepository_Same_As_Repository_With_No_CloneUrl() { using (var temp = new TempDirectory()) { var path = temp.Directory.FullName; var target = new GitService(new RepositoryFacade()); var model = target.CreateLocalRepositoryModel(path); Assert.That(model, Is.Not.Null); Assert.That(model.LocalPath, Is.EqualTo(path)); Assert.That(model.Name, Is.EqualTo(temp.Directory.Name)); } }
public void WithRemoteUrl() { using (var temp = new TempDirectory()) { var path = temp.Directory.CreateSubdirectory("repo-name"); var repository = CreateRepositoryWithOrigin("https://github.com/user/repo-name"); var repositoryFacade = CreateRepositoryFacade(path.FullName, repository); var gitService = new GitService(repositoryFacade); var model = gitService.CreateLocalRepositoryModel(path.FullName); Assert.That(model.Name, Is.EqualTo("repo-name")); Assert.That(model.Owner, Is.EqualTo("user")); } }
public void Check_HasRemotesButNoOrigin(string remoteName, string remoteUrl, bool noOrigin) { using (var temp = new TempRepository()) { if (remoteName != null) { temp.Repository.Network.Remotes.Add(remoteName, remoteUrl); } var path = temp.Directory.FullName; var target = new GitService(new RepositoryFacade()); var model = target.CreateLocalRepositoryModel(path); Assert.That(model.HasRemotesButNoOrigin, Is.EqualTo(noOrigin)); } }
public void Branch_With_Remote() { using (var temp = new TempRepository()) { var repository = temp.Repository; var owner = "owner"; var remoteName = "remoteName"; var remote = repository.Network.Remotes.Add(remoteName, $"https://github.com/{owner}/VisualStudio"); var localBranch = repository.Head; repository.Branches.Update(temp.Repository.Head, b => b.Remote = remote.Name, b => b.UpstreamBranch = localBranch.CanonicalName); var path = temp.Directory.FullName; var target = new GitService(new RepositoryFacade()); var localRepository = target.CreateLocalRepositoryModel(path); var branch = target.GetBranch(localRepository); Assert.That(branch.TrackedRemoteName, Is.EqualTo(remoteName)); } }
public void Master_Branch() { using (var temp = new TempRepository()) { var signature = new Signature("Me", "*****@*****.**", DateTimeOffset.Now); temp.Repository.Commit("First", signature, signature); var expectSha = temp.Repository.Head.Tip.Sha; var path = temp.Directory.FullName; var target = new GitService(new RepositoryFacade()); var localRepository = target.CreateLocalRepositoryModel(path); var branch = target.GetBranch(localRepository); Assert.That(branch.Name, Is.EqualTo("master")); Assert.That(branch.DisplayName, Is.EqualTo("master")); Assert.That(branch.Id, Is.EqualTo("/master")); // We don't know owner Assert.That(branch.IsTracking, Is.EqualTo(false)); Assert.That(branch.TrackedSha, Is.EqualTo(null)); Assert.That(branch.Sha, Is.EqualTo(expectSha)); } }