コード例 #1
0
        public void CreateCommand_Invoked_ShouldCreateRepositoryAndCloneAndRaiseClosed()
        {
            bool closed = false;

            _sut.Name      = "repo";
            _sut.LocalPath = "path";
            _sut.IsPrivate = true;
            _sut.Closed   += delegate { closed = true; };

            var remoteRepo = new GitRemoteRepository()
            {
                CloneUrl = Guid.NewGuid().ToString(),
                Name     = Guid.NewGuid().ToString()
            };

            _gitService.Expect(x => x.CloneRepository(remoteRepo.CloneUrl, remoteRepo.Name, _sut.LocalPath));

            var result = _gitClientService
                         .Capture()
                         .Args <GitRemoteRepository, GitRemoteRepository>((s, repo) => s.CreateRepositoryAsync(repo), remoteRepo);

            _sut.CreateCommand.Execute(null);

            Assert.AreEqual(1, result.CallCount);

            var args = result.Args[0];

            Assert.AreEqual(_sut.Name, args.Name);
            Assert.AreEqual(_sut.Description, args.Description);
            Assert.AreEqual(_sut.IsPrivate, args.IsPrivate);

            _gitClientService.VerifyAllExpectations();
            _gitService.VerifyAllExpectations();
            Assert.That(closed, Is.EqualTo(true));
        }
コード例 #2
0
        public async Task <GitRemoteRepository> CreateRepositoryAsync(GitRemoteRepository newRepository)
        {
            var repository = newRepository.MapTo <Repository>();

            repository.Name = repository.Name.Replace(' ', '-');
            var result = await _bitbucketClient.RepositoriesClient.CreateRepository(repository, newRepository.IsTeam);

            return(result.MapTo <GitRemoteRepository>());
        }
コード例 #3
0
        public void PublishRepository(GitRemoteRepository repository)
        {
            Repository activeRepository = GetRepository();

            SetRemote(activeRepository, repository.CloneUrl);
            Push(activeRepository);
            Fetch(activeRepository);
            SetTrackingRemote(activeRepository);
        }
コード例 #4
0
        public bool IsOriginRepo(GitRemoteRepository gitRemoteRepository)
        {
            if (gitRemoteRepository?.CloneUrl == null)
            {
                return(false);
            }
            Uri uri = new Uri(gitRemoteRepository.CloneUrl);

            return(_bitbucketClient.ApiConnection.ApiUrl.Host.Contains(uri.Host, StringComparison.OrdinalIgnoreCase));
        }
        public void PublishCommand_Invoked_ShouldCreateAndPublishRepositoryAndRefreshActiveRepo()
        {
            IEnumerable <GitTeam> teams = new List <GitTeam>()
            {
                new GitTeam()
                {
                    Name = "TeamName"
                }
            };
            var connectionData = new ConnectionData()
            {
                UserName = "******", IsLoggedIn = true
            };

            _gitClientService.Expect(x => x.GetTeams()).Return(teams.FromTaskAsync());
            _userInfoService.Stub(x => x.ConnectionData).Return(connectionData);

            _sut.Initialize();


            var remoteRepo = new GitRemoteRepository();

            _sut.SelectedOwner = new Owner()
            {
                Name = "owner"
            };
            _sut.RepositoryName = "repoName with space";
            _sut.Description    = "description";
            _sut.IsPrivate      = true;

            _gitService.Expect(x => x.PublishRepository(remoteRepo));
            _gitWatcher.Expect(x => x.Refresh());

            var result = _gitClientService
                         .Capture()
                         .Args <GitRemoteRepository, GitRemoteRepository>((s, repo) => s.CreateRepositoryAsync(repo), remoteRepo);

            _sut.PublishRepositoryCommand.Execute(null);

            Assert.AreEqual(1, result.CallCount);

            var args = result.Args[0];

            Assert.AreEqual("repoName-with-space", args.Name);
            Assert.AreEqual(_sut.Description, args.Description);
            Assert.AreEqual(_sut.IsPrivate, args.IsPrivate);
            Assert.AreEqual(_sut.SelectedOwner, args.Owner);

            _gitClientService.VerifyAllExpectations();
            _gitService.VerifyAllExpectations();
            _gitWatcher.VerifyAllExpectations();
        }
コード例 #6
0
 private bool IsGitLocalRepoAndLoggedIn(GitRemoteRepository repo)
 {
     return(_userInformationService.ConnectionData.IsLoggedIn && repo != null && string.IsNullOrEmpty(repo.CloneUrl));
 }
 public ActiveRepositoryChangedEvent(GitRemoteRepository activeRepository, GitRemoteRepository previousRepository)
 {
     PreviousRepository = previousRepository;
     ActiveRepository   = activeRepository;
 }