Ejemplo n.º 1
0
        public VcsRoot Create(Action <IGitVCSRootBuilder> having)
        {
            var gitVCSBuilder = new GitVCSRootBuilder();

            having(gitVCSBuilder);

            var vcs = gitVCSBuilder.GetVCSRoot();

            StringBuilder xmlData = new StringBuilder();

            xmlData.AppendFormat(
                @"<vcs-root id=""{0}"" name=""{1}"" vcsName=""{2}""> <project id=""{3}""/> <properties count =""{4}"">",
                SecurityElement.Escape(vcs.Id),
                SecurityElement.Escape(vcs.Name),
                SecurityElement.Escape(vcs.vcsName),
                SecurityElement.Escape(vcs.Project.Id),
                vcs.Properties.Property.Count);

            foreach (var property in vcs.Properties.Property)
            {
                xmlData.Append(@"<property name=""");
                xmlData.AppendFormat(@"{0}""", SecurityElement.Escape(property.Name));
                xmlData.AppendFormat(@" value=""{0}""/>", SecurityElement.Escape(property.Value));
            }
            xmlData.Append(@"</properties>");

            xmlData.Append(@"</vcs-root>");
            m_TeamCityCaller.Post(
                xmlData.ToString(),
                HttpContentTypes.ApplicationXml,
                "/app/rest/vcs-roots",
                HttpContentTypes.ApplicationJson);
            return(vcs);
        }
Ejemplo n.º 2
0
        public void GetVCSRoot_SshKey_SshKeyCreated()
        {
            // Act
            var vcsRootBuilder = new GitVCSRootBuilder();

            vcsRootBuilder
            .AuthMethod(AuthMethod.TeamcitySshKey)
            .TeamcitySshKey("keyName");
            var vcsRoot = vcsRootBuilder.GetVCSRoot();

            // Assert
            vcsRoot.Properties.Property.Should()
            .ContainSingle(p => p.Name == "authMethod" && p.Value == "TEAMCITY_SSH_KEY");
            vcsRoot.Properties.Property.Should().ContainSingle(p => p.Name == "teamcitySshKey" && p.Value == "keyName");
        }
Ejemplo n.º 3
0
        public void SimpleCreation()
        {
            var vcsRootBuilder = new GitVCSRootBuilder();
            var url            = new Uri("http://www.google.com");

            vcsRootBuilder
            .AgentCleanFilePolicy(AgentCleanFilePolicy.AllIgnoredUntrackedFiles)
            .AgentCleanPolicy(AgentCleanPolicy.Always)
            .AuthMethod(AuthMethod.Anonymous)
            .Branch("branch")
            .BranchSpec("branchSpec")
            .CheckoutSubModule()
            .Id("id")
            .IgnoreKnownHosts()
            .Name("name")
            .Password("password")
            .ProjectId("projectId")
            .Url(url)
            .UseAlternates()
            .Username("username")
            .UserNameStyle(UserNameStyle.AuthorName);

            var vcsRoot = vcsRootBuilder.GetVCSRoot();

            vcsRoot.Id.Should().Be("id");
            vcsRoot.Name.Should().Be("name");
            vcsRoot.Project.Id.Should().Be("projectId");
            var properties = vcsRoot.Properties.Property;

            properties.FirstOrDefault(
                p => p.Name == "agentCleanFilePolicy" &&
                p.Value == "ALL_IGNORED_UNTRACKED_FILES").Should().NotBeNull();
            properties.FirstOrDefault(
                p => p.Name == "agentCleanPolicy" &&
                p.Value == "ALWAYS").Should().NotBeNull();
            properties.FirstOrDefault(
                p => p.Name == "authMethod" &&
                p.Value == "ANONYMOUS").Should().NotBeNull();
            properties.FirstOrDefault(
                p => p.Name == "branch" &&
                p.Value == "branch").Should().NotBeNull();
            properties.FirstOrDefault(
                p => p.Name == "teamcity:branchSpec" &&
                p.Value == "branchSpec").Should().NotBeNull();
            properties.FirstOrDefault(
                p => p.Name == "submoduleCheckout" &&
                p.Value == "CHECKOUT").Should().NotBeNull();
            properties.FirstOrDefault(
                p => p.Name == "ignoreKnownHosts" &&
                p.Value == "true").Should().NotBeNull();
            properties.FirstOrDefault(
                p => p.Name == "secure:password" &&
                p.Value == "password").Should().NotBeNull();
            properties.FirstOrDefault(
                p => p.Name == "url" &&
                p.Value == url.ToString()).Should().NotBeNull();
            properties.FirstOrDefault(
                p => p.Name == "useAlternates" &&
                p.Value == "true").Should().NotBeNull();
            properties.FirstOrDefault(
                p => p.Name == "username" &&
                p.Value == "username").Should().NotBeNull();
            properties.FirstOrDefault(
                p => p.Name == "userNameStyle" &&
                p.Value == "AUTHOR_NAME").Should().NotBeNull();
        }