public void Matches()
        {
            using (TestHostContext tc = new TestHostContext(this))
            {
                try
                {
                    // Arrange.
                    Prepare(tc);
                    var expected = new MockTfsVCWorkspace(
                        name: _workspaceName,
                        mappings: _definitionMappings,
                        localRoot: _sourcesDirectory);

                    // Act.
                    ITfsVCWorkspace actual = TfsVCSourceProvider.WorkspaceUtil.MatchExactWorkspace(
                        executionContext: _executionContext.Object,
                        tfWorkspaces: new[] { expected },
                        name: _workspaceName,
                        definitionMappings: _definitionMappings,
                        sourcesDirectory: _sourcesDirectory);

                    // Assert.
                    Assert.Equal(expected, actual);
                }
                finally
                {
                    Cleanup();
                }
            }
        }
        public void DoesNotMatch_ComputerName()
        {
            using (TestHostContext tc = new TestHostContext(this))
            {
                try
                {
                    // Arrange.
                    Prepare(tc);
                    _definitionMappings = new[]
                    {
                        new TfsVCSourceProvider.DefinitionWorkspaceMapping
                        {
                            LocalPath   = "",
                            MappingType = TfsVCSourceProvider.DefinitionMappingType.Map,
                            ServerPath  = "$/myProj",
                        },
                    };
                    var tfWorkspace = new MockTfsVCWorkspace(
                        name: _workspaceName,
                        mappings: _definitionMappings,
                        localRoot: _sourcesDirectory,
                        computer: "NON_MATCHING_COMPUTER_NAME");

                    // Act.
                    ITfsVCWorkspace actual = TfsVCSourceProvider.WorkspaceUtil.MatchExactWorkspace(
                        executionContext: _executionContext.Object,
                        tfWorkspaces: new[] { tfWorkspace },
                        name: _workspaceName,
                        definitionMappings: _definitionMappings,
                        sourcesDirectory: _sourcesDirectory);

                    // Assert.
                    Assert.Null(actual);
                }
                finally
                {
                    Cleanup();
                }
            }
        }
        public void DoesNotMatch_Map_SingleLevel()
        {
            using (TestHostContext tc = new TestHostContext(this))
            {
                try
                {
                    // Arrange.
                    Prepare(tc);
                    _definitionMappings = new[]
                    {
                        new TfsVCSourceProvider.DefinitionWorkspaceMapping
                        {
                            LocalPath   = "",
                            MappingType = TfsVCSourceProvider.DefinitionMappingType.Map,
                            ServerPath  = "$/myProj/*",
                        },
                    };
                    var tfWorkspace = new MockTfsVCWorkspace(
                        name: _workspaceName,
                        mappings: _definitionMappings,
                        localRoot: _sourcesDirectory);
                    (tfWorkspace.Mappings[0] as MockTfsVCMapping).Recursive = true;

                    // Act.
                    ITfsVCWorkspace actual = TfsVCSourceProvider.WorkspaceUtil.MatchExactWorkspace(
                        executionContext: _executionContext.Object,
                        tfWorkspaces: new[] { tfWorkspace },
                        name: _workspaceName,
                        definitionMappings: _definitionMappings,
                        sourcesDirectory: _sourcesDirectory);

                    // Assert.
                    Assert.Null(actual);
                }
                finally
                {
                    Cleanup();
                }
            }
        }