Beispiel #1
0
        /// <summary>
        /// Determines whether a repository is a potential match for the project name. The repository must not be null.
        /// </summary>
        /// <param name="repoInfo"></param>
        /// <param name="projectName"></param>
        /// <returns>
        /// true iff the repository's name begins with the project name followed by only a number
        /// </returns>
        private static bool IsMatchingName(RepositoryInformation repoInfo, string projectName)
        {
            int dummy;

            return(repoInfo.RepoName.StartsWith(projectName) &&
                   int.TryParse(repoInfo.RepoName.Substring(projectName.Length), out dummy));
        }
        public void SetUp()
        {
            // represents a normal repo
            _normalRepo = new RepositoryInformation("AnotherProjectName", "RepoId1");
            // represents a repo that already exists when a project with the same name is added
            _duplicateRepo = new RepositoryInformation("DuplicateProject", "RepoId3");
            // represents a new repo with the same name as the project being added;
            // also represents a new repo with a name derived from the name of the duplicate project
            _newRepo = new RepositoryInformation("DuplicateProject2", RepositoryInformation.NEW_REPO);

            _repositoryInformations = new List<RepositoryInformation>
                {
                    new RepositoryInformation("ProjectName", "RepoId"),
                    _normalRepo,
                    new RepositoryInformation("DifferentProjectName", "RepoId2"),
                    _duplicateRepo,
                    new RepositoryInformation("DuplicateProject1", "RepoId4"),
                    new RepositoryInformation("DuplicateProjectNot", RepositoryInformation.NEW_REPO),
                    _newRepo
                };

            _source = new ChorusHubRepositorySource("localhost",
                _chorusHubURL + RepositoryAddress.ProjectNameVariable,
                false, _repositoryInformations);
        }
 /// <summary>
 /// Determines whether a repository is a potential match for the project name. The repository must not be null.
 /// </summary>
 /// <param name="repoInfo"></param>
 /// <param name="projectName"></param>
 /// <returns>
 /// true iff the repository's name begins with the project name followed by only a number
 /// </returns>
 private static bool IsMatchingName(RepositoryInformation repoInfo, string projectName)
 {
     int dummy;
     return repoInfo.RepoName.StartsWith(projectName)
            && int.TryParse(repoInfo.RepoName.Substring(projectName.Length), out dummy);
 }
 // Allows us to access and test the private method
 private static bool InvokeIsMatchingName(RepositoryInformation repoInfo, string projectName)
 {
     return (bool)typeof(ChorusHubRepositorySource).InvokeMember("IsMatchingName", BindingFlags.DeclaredOnly |
              BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.InvokeMethod,
             null, null, new object[] { repoInfo, projectName });
 }