internal static VersionControlServer GetFakeVCServer(List <ChangesetInfo> changeSetHierarchy) { var server = new ShimVersionControlServer() { QueryMergesStringVersionSpecStringVersionSpecVersionSpecVersionSpecRecursionType = (sourcePath, sourceVersion, targetPath, targetVersion, versionFrom, versionTo, recursion) => { var mergeIds = from set in changeSetHierarchy from c in set.Changes where c.ChangeType.HasFlag(ChangeType.Merge) && c.Path == targetPath && c.VersionId == ((ChangesetVersionSpec)versionFrom).ChangesetId select c.MergeSourcesIds; var flatList = new List <int>(); foreach (var list in mergeIds) { flatList = flatList.Union(list).ToList(); } return(flatList.ConvertAll(i => (ChangesetMerge) new ShimChangesetMerge() { SourceVersionGet = () => i, TargetVersionGet = () => ((ChangesetVersionSpec)versionFrom).ChangesetId }).ToArray()); }, GetChangesetInt32 = (i) => changeSetHierarchy.SingleOrDefault(c => c.Id == i).ToChangeset() }; return(server); }
internal static VersionControlServer GetFakeVCServer(List<ChangesetInfo> changeSetHierarchy) { var server = new ShimVersionControlServer() { QueryMergesStringVersionSpecStringVersionSpecVersionSpecVersionSpecRecursionType = (sourcePath, sourceVersion, targetPath, targetVersion, versionFrom, versionTo, recursion) => { var mergeIds = from set in changeSetHierarchy from c in set.Changes where c.ChangeType.HasFlag(ChangeType.Merge) && c.Path == targetPath && c.VersionId == ((ChangesetVersionSpec)versionFrom).ChangesetId select c.MergeSourcesIds; var flatList = new List<int>(); foreach (var list in mergeIds) { flatList = flatList.Union(list).ToList(); } return flatList.ConvertAll(i => (ChangesetMerge)new ShimChangesetMerge() { SourceVersionGet = () => i, TargetVersionGet = () => ((ChangesetVersionSpec)versionFrom).ChangesetId }).ToArray(); }, GetChangesetInt32 = (i) => changeSetHierarchy.SingleOrDefault(c => c.Id == i).ToChangeset() }; return server; }
/// <summary>The setup TFS shim.</summary> /// <param name="collectionUrl">The collection URL.</param> /// <param name="teamProjectName">The team project name.</param> /// <param name="changesetId">The change set id.</param> /// <param name="pendingChangeCount">The pending change count.</param> private void SetupTfsShim( string collectionUrl, string teamProjectName, int changesetId, int pendingChangeCount) { ShimTfsTeamProjectCollection.ConstructorUri = (@this, value) => { // ReSharper disable ObjectCreationAsStatement new ShimTfsTeamProjectCollection(@this) { NameGet = () => collectionUrl }; new ShimTfsConnection(@this) { EnsureAuthenticated = () => { }, CredentialsGet = () => new System.Net.NetworkCredential("testUser", "pwd", "testDomain") }; // ReSharper restore ObjectCreationAsStatement }; var workspace = new ShimWorkspace { CheckInPendingChangeArrayString = (x, y) => changesetId, Delete = () => true, GetPendingChanges = () => new PendingChange[pendingChangeCount], }; var teamProject = new ShimTeamProject { ServerItemGet = () => string.Format("$/{0}", teamProjectName) }; var versionControlServer = new ShimVersionControlServer { CreateWorkspaceStringStringStringWorkingFolderArray = (a, b, c, d) => workspace, QueryWorkspacesStringStringString = (a, b, c) => new Workspace[0], GetTeamProjectString = a => teamProject, QueryBranchObjectsItemIdentifierRecursionType = (a, b) => new BranchObject[0], SupportedFeaturesGet = () => 8, ServerItemExistsStringItemType = (x, y) => true }; ShimTfsConnection.AllInstances.GetServiceOf1<VersionControlServer>(t => versionControlServer); }