예제 #1
0
        public async Task CloneRepoAndCheckout(string path)
        {
            if (_pathTogit == null)
            {
                Assert.Ignore("no git implementation found!");
            }

            var folder    = TestDirectoryHelper.GenerateRandomSubFolder(TestContext.CurrentContext.WorkDirectory);
            var gitDriver = new GitCmdDriver(_pathTogit, _logger, new Folder(_logger, folder), new Abstractions.Git.GitUsernamePasswordCredentials());

            Assert.DoesNotThrowAsync(() => gitDriver.Clone(new Uri(path)));
            Assert.IsTrue(Directory.Exists(Path.Combine(folder.FullName, ".git")), "Local git repo should exist in {0}", folder.FullName);

            // Checkout master branch
            Assert.DoesNotThrowAsync(() => gitDriver.Checkout("master"));
            var head = await gitDriver.GetCurrentHead();

            Assert.AreEqual(head, "master");

            // Checkout new branch
            Assert.DoesNotThrowAsync(() => gitDriver.CheckoutNewBranch("newBranch"));
            head = await gitDriver.GetCurrentHead();

            Assert.AreEqual("newBranch", head);

            TestDirectoryHelper.DeleteDirectory(folder.FullName);
        }
예제 #2
0
        public void Setup()
        {
            _logger    = new ConfigurableLogger();
            _pathTogit = TestDirectoryHelper.DiscoverPathToGit();
            if (_pathTogit == null)
            {
                Assert.Ignore("no git implementation found!");
            }

            // create a local repo to test against
            var folder    = TestDirectoryHelper.GenerateRandomSubFolder(TestContext.CurrentContext.WorkDirectory);
            var gitDriver = new GitCmdDriver(_pathTogit, _logger, new Folder(_logger, folder), new Abstractions.Git.GitUsernamePasswordCredentials());

            Assert.DoesNotThrowAsync(() => gitDriver.Clone(new Uri(_origin)));
            _repoPath = folder.FullName;
        }