forked from git-tfs/git-tfs
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFetchTests.cs
More file actions
89 lines (74 loc) · 3.78 KB
/
Copy pathFetchTests.cs
File metadata and controls
89 lines (74 loc) · 3.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
using System;
using Sep.Git.Tfs.Core.TfsInterop;
using Xunit;
namespace Sep.Git.Tfs.Test.Integration
{
public class FetchTests : IDisposable
{
private readonly IntegrationHelper integrationHelper;
public FetchTests()
{
integrationHelper = new IntegrationHelper();
}
public void Dispose()
{
integrationHelper.Dispose();
}
[FactExceptOnUnix]
public void CanFetchWithMixedUpCasingForTfsServerUrl()
{
CloneRepoWithTwoCommits();
AddNewCommitToFakeTfsServer();
string tfsUrlInUpperCase = integrationHelper.TfsUrl.ToUpper();
integrationHelper.ChangeConfigSetting("MyProject", "tfs-remote.default.url", tfsUrlInUpperCase);
integrationHelper.RunIn("MyProject", "pull");
Assert.Equal(3, integrationHelper.GetCommitCount("MyProject"));
}
[FactExceptOnUnix]
public void CanFetchWithMixedUpCasingForLegacyTfsServerUrl()
{
CloneRepoWithTwoCommits();
AddNewCommitToFakeTfsServer();
string tfsUrlInUpperCase = integrationHelper.TfsUrl.ToUpper();
integrationHelper.ChangeConfigSetting("MyProject", "tfs-remote.default.url", "nomatch");
integrationHelper.ChangeConfigSetting("MyProject", "tfs-remote.default.legacy-urls", tfsUrlInUpperCase + ",aDifferentUrl");
integrationHelper.RunIn("MyProject", "pull");
Assert.Equal(3, integrationHelper.GetCommitCount("MyProject"));
}
[FactExceptOnUnix]
public void CanFetchWithMixedUpCasingForTfsRepositoryPath()
{
CloneRepoWithTwoCommits();
AddNewCommitToFakeTfsServer();
const string repoUrlInUpperCase = "$/MYPROJECT";
integrationHelper.ChangeConfigSetting("MyProject", "tfs-remote.default.repository", repoUrlInUpperCase);
integrationHelper.RunIn("MyProject", "pull");
Assert.Equal(3, integrationHelper.GetCommitCount("MyProject"));
}
private void CloneRepoWithTwoCommits()
{
integrationHelper.SetupFake(r =>
{
r.Changeset(1, "Project created from template", DateTime.Parse("2012-01-01 12:12:12 -05:00"))
.Change(TfsChangeType.Add, TfsItemType.Folder, "$/MyProject");
r.Changeset(2, "Add Readme", DateTime.Parse("2012-01-02 12:12:12 -05:00"))
.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");
});
integrationHelper.Run("clone", integrationHelper.TfsUrl, "$/MyProject");
integrationHelper.AssertGitRepo("MyProject");
}
private void AddNewCommitToFakeTfsServer()
{
integrationHelper.SetupFake(r => CreateAChangeset(r));
}
private static IntegrationHelper.FakeChangesetBuilder CreateAChangeset(IntegrationHelper.FakeHistoryBuilder r)
{
return r.Changeset(3, "Add a file", DateTime.Parse("2012-01-03 12:12:12 -05:00"))
.Change(TfsChangeType.Add, TfsItemType.Folder, "$/MyProject/Foo")
.Change(TfsChangeType.Add, TfsItemType.Folder, "$/MyProject/Foo/Bar")
.Change(TfsChangeType.Add, TfsItemType.File, "$/MyProject/Foo/Bar/File.txt", "File contents");
}
}
}