public void Translate() { var engine = new MockEngine(); var task = new TranslateRepositoryUrls() { BuildEngine = engine, RepositoryUrl = "ssh://[email protected]/project/team/_ssh/repo", IsSingleProvider = true, SourceRoots = new[] { new MockItem("/1/", KVP("SourceControl", "git"), KVP("ScmRepositoryUrl", "ssh://[email protected]:22/project/team/_ssh/repo")), // ok new MockItem("/2/", KVP("SourceControl", "git"), KVP("ScmRepositoryUrl", "ssh://[email protected]:22/project/_ssh/repo")), // ok new MockItem("/3/", KVP("SourceControl", "git"), KVP("ScmRepositoryUrl", "ssh://[email protected]:22/v3/account/project/team/repo")), // ok new MockItem("/4/", KVP("SourceControl", "git"), KVP("ScmRepositoryUrl", "ssh://[email protected]/_ssh/repo")), // ok new MockItem("/5/", KVP("SourceControl", "git"), KVP("ScmRepositoryUrl", "ssh://[email protected]:22/project/team/_ssh/repo")), // ok new MockItem("/6/", KVP("SourceControl", "git"), KVP("ScmRepositoryUrl", "ssh://[email protected]/v3/account/project/team/repo")), // ok new MockItem("/7/", KVP("SourceControl", "tfvc"), KVP("ScmRepositoryUrl", "ssh://[email protected]:22/project/team/_ssh/repo")), // different source control new MockItem("/8/", KVP("SourceControl", "git"), KVP("ScmRepositoryUrl", "ssh://[email protected]:22/project/team/_ssh/repo")), // no "vs-ssh." prefix new MockItem("/9/", KVP("SourceControl", "git"), KVP("ScmRepositoryUrl", "ssh://[email protected]:22/project/team/_ssh/repo")), // known host, but not visualstudio.com new MockItem("/A/", KVP("SourceControl", "git"), KVP("ScmRepositoryUrl", "ssh://[email protected]:22/project/team/_ssh/repo")), // unknown host new MockItem("/B/", KVP("SourceControl", "git"), KVP("ScmRepositoryUrl", "ssh://[email protected]:22/project/team/ZZZ/repo")), // bad format }, Hosts = new[] { new MockItem("contoso.com") } }; bool result = task.Execute(); AssertEx.AssertEqualToleratingWhitespaceDifferences("", engine.Log); AssertEx.AreEqual("https://account.visualstudio.com/project/team/_git/repo", task.TranslatedRepositoryUrl); AssertEx.Equal(new[] { "https://account.visualstudio.com/project/team/_git/repo", "https://test.visualstudio.com/project/_git/repo", "https://account.visualstudio.com/project/team/_git/repo", "https://account.visualstudio.com/_git/repo", "https://contoso.com/account/project/team/_git/repo", "https://contoso.com/account/project/team/_git/repo", "ssh://[email protected]:22/project/team/_ssh/repo", "ssh://[email protected]:22/project/team/_ssh/repo", "ssh://[email protected]:22/project/team/_ssh/repo", "ssh://[email protected]:22/project/team/_ssh/repo", "ssh://[email protected]:22/project/team/ZZZ/repo" }, task.TranslatedSourceRoots?.Select(r => r.GetMetadata("ScmRepositoryUrl"))); Assert.True(result); }
public void Translate() { var engine = new MockEngine(); var task = new TranslateRepositoryUrls() { BuildEngine = engine, RepositoryUrl = "ssh://[email protected]/a/b/project/team/_ssh/repo", IsSingleProvider = true, SourceRoots = new[] { new MockItem("/1/", KVP("SourceControl", "git"), KVP("ScmRepositoryUrl", "ssh://[email protected]:22/tfs/project/team/_ssh/repo")), // ok new MockItem("/2/", KVP("SourceControl", "git"), KVP("ScmRepositoryUrl", "ssh://[email protected]/tfs/project/_ssh/repo")), // ok new MockItem("/3/", KVP("SourceControl", "git"), KVP("ScmRepositoryUrl", "ssh://[email protected]/v3/account/project/team/repo")), // v3 not supported for on-prem new MockItem("/4/", KVP("SourceControl", "tfvc"), KVP("ScmRepositoryUrl", "ssh://[email protected]/tfs/project/team/_ssh/repo")), // different source control new MockItem("/5/", KVP("SourceControl", "git"), KVP("ScmRepositoryUrl", "ssh://[email protected]:22/tfs/project/team/_ssh/repo")), // unknown host new MockItem("/6/", KVP("SourceControl", "git"), KVP("ScmRepositoryUrl", "ssh://[email protected]:22/tfs/project/team/ZZZ/repo")), // bad format }, Hosts = new[] { new MockItem("contoso.com") } }; bool result = task.Execute(); AssertEx.AssertEqualToleratingWhitespaceDifferences("", engine.Log); // SSH translation does not need virtual directory AssertEx.AreEqual("https://mytfs.com/a/b/project/team/_git/repo", task.TranslatedRepositoryUrl); AssertEx.Equal(new[] { "https://mytfs.com/tfs/project/team/_git/repo", "https://contoso.com/tfs/project/_git/repo", "ssh://[email protected]/v3/account/project/team/repo", "ssh://[email protected]/tfs/project/team/_ssh/repo", "ssh://[email protected]:22/tfs/project/team/_ssh/repo", "ssh://[email protected]:22/tfs/project/team/ZZZ/repo" }, task.TranslatedSourceRoots?.Select(r => r.GetMetadata("ScmRepositoryUrl"))); Assert.True(result); }
public void Translate() { var engine = new MockEngine(); var task = new TranslateRepositoryUrls() { BuildEngine = engine, RepositoryUrl = "ssh://[email protected]/root_dir_name/sub_dirs/reponame.git", IsSingleProvider = true, SourceRoots = new[] { new MockItem("/1/", KVP("SourceControl", "git"), KVP("ScmRepositoryUrl", "ssh://[email protected]/root_dir_name/sub_dirs/reponame.git")), new MockItem("/2/", KVP("SourceControl", "tfvc"), KVP("ScmRepositoryUrl", "ssh://[email protected]/root_dir_name/sub_dirs/reponame.git")), new MockItem("/2/", KVP("SourceControl", "git"), KVP("ScmRepositoryUrl", "ssh://[email protected]/root_dir_name/sub_dirs/reponame.git")), new MockItem("/2/", KVP("SourceControl", "tfvc"), KVP("ScmRepositoryUrl", "ssh://[email protected]/root_dir_name/sub_dirs/reponame.git")), }, Hosts = new[] { new MockItem("src.intranet.company1.com") } }; bool result = task.Execute(); AssertEx.AssertEqualToleratingWhitespaceDifferences("", engine.Log); AssertEx.AreEqual("ssh://[email protected]/root_dir_name/sub_dirs/reponame.git", task.TranslatedRepositoryUrl); AssertEx.Equal(new[] { "ssh://[email protected]/root_dir_name/sub_dirs/reponame.git", "ssh://[email protected]/root_dir_name/sub_dirs/reponame.git", "ssh://[email protected]/root_dir_name/sub_dirs/reponame.git", "ssh://[email protected]/root_dir_name/sub_dirs/reponame.git", }, task.TranslatedSourceRoots?.Select(r => r.GetMetadata("ScmRepositoryUrl"))); Assert.True(result); }
public void Translate() { var engine = new MockEngine(); var task = new TranslateRepositoryUrls() { BuildEngine = engine, RepositoryUrl = "ssh://github.com/a/b", IsSingleProvider = true, SourceRoots = new[] { new MockItem("/1/", KVP("SourceControl", "git"), KVP("ScmRepositoryUrl", "ssh://github.com:22/a/b")), new MockItem("/2/", KVP("SourceControl", "tfvc"), KVP("ScmRepositoryUrl", "ssh://github1.com/a/b")), new MockItem("/2/", KVP("SourceControl", "git"), KVP("ScmRepositoryUrl", "ssh://github1.com/a/b")), new MockItem("/2/", KVP("SourceControl", "tfvc"), KVP("ScmRepositoryUrl", "ssh://github2.com/a/b")), }, Hosts = new[] { new MockItem("github1.com") } }; bool result = task.Execute(); AssertEx.AssertEqualToleratingWhitespaceDifferences("", engine.Log); AssertEx.AreEqual("https://github.com/a/b", task.TranslatedRepositoryUrl); AssertEx.Equal(new[] { "https://github.com/a/b", "ssh://github1.com/a/b", "https://github1.com/a/b", "ssh://github2.com/a/b" }, task.TranslatedSourceRoots?.Select(r => r.GetMetadata("ScmRepositoryUrl"))); Assert.True(result); }