Files
git-tfs/GitTfsTest/Integration/CloneTests.cs
T
2012-04-25 00:44:26 -04:00

70 lines
2.4 KiB
C#

using System;
using System.IO;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Sep.Git.Tfs.Core.TfsInterop;
namespace Sep.Git.Tfs.Test.Integration
{
[TestClass]
public class CloneTests
{
IntegrationHelper h;
[TestInitialize]
public void Setup()
{
h = new IntegrationHelper();
}
[TestCleanup]
public void Teardown()
{
h.Dispose();
}
[TestMethod, Ignore]
public void FailOnNoProject()
{
}
[TestMethod, Ignore]
public void ClonesEmptyProject()
{
h.SetupFake(r =>
{
r.Changeset(1, "Project created from template", DateTime.Parse("2012-01-01 12:12:12"))
.Change(TfsChangeType.Add, TfsItemType.Folder, "$/MyProject");
});
h.Run("clone", h.TfsUrl, "$/MyProject");
h.AssertGitRepo("MyProject");
const string expectedSha = "tbd";
h.AssertRef("MyProject", "HEAD", expectedSha);
h.AssertRef("MyProject", "master", expectedSha);
h.AssertRef("MyProject", "tfs/default", expectedSha);
h.AssertEmptyWorkspace("MyProject");
}
[TestMethod]
public void CloneProjectWithChangesets()
{
h.SetupFake(r =>
{
r.Changeset(1, "Project created from template", DateTime.Parse("2012-01-01 12:12:12"))
.Change(TfsChangeType.Add, TfsItemType.Folder, "$/MyProject");
r.Changeset(2, "First commit", DateTime.Parse("2012-01-02 12:12:12"))
.Change(TfsChangeType.Add, TfsItemType.Folder, "$/MyProject/Folder")
.Change(TfsChangeType.Add, TfsItemType.File, "$/MyProject/Folder/File.txt", "File contents")
.Change(TfsChangeType.Add, TfsItemType.File, "$/MyProject/README", "tldr");
});
h.Run("clone", h.TfsUrl, "$/MyProject");
h.AssertGitRepo("MyProject");
const string expectedSha = "dd806911118e6fa16d028b322ad91360d56ea47b";
h.AssertRef("MyProject", "HEAD", expectedSha);
h.AssertRef("MyProject", "master", expectedSha);
h.AssertRef("MyProject", "tfs/default", expectedSha);
h.AssertFileInWorkspace("MyProject", "Folder/File.txt", "File contents");
h.AssertFileInWorkspace("MyProject", "README", "tldr");
}
}
}