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); }
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"); }
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(); }