Skip to content
This repository was archived by the owner on Feb 12, 2019. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions src/TeamCitySharp/ActionTypes/Branches.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TeamCitySharp.Connection;
using TeamCitySharp.DomainEntities;
using TeamCitySharp.Locators;

namespace TeamCitySharp.ActionTypes
{
internal class Branches : IBranches
{
private readonly TeamCityCaller _caller;

internal Branches(TeamCityCaller caller)
{
_caller = caller;
}

public List<Branch> ByBuildLocator(BuildTypeLocator locator)
{
var branchesWrapper = _caller.GetFormat<BranchesWrapper>("/app/rest/buildTypes/{0}/branches", locator);
return branchesWrapper.Branch;
}
}
}
27 changes: 27 additions & 0 deletions src/TeamCitySharp/ActionTypes/Build.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TeamCitySharp.Connection;
using TeamCitySharp.DomainEntities;

namespace TeamCitySharp.ActionTypes
{
/// <summary>
/// This class is named BuildI to avoid confusion with the Build domain entity
/// </summary>
internal class BuildI : IBuild
{
private readonly TeamCityCaller _caller;

internal BuildI(TeamCityCaller caller)
{
_caller = caller;
}

public Build ByBuildLocator(Locators.BuildLocator locator)
{
return _caller.GetFormat<Build>(string.Format("/app/rest/builds/{0}", locator));
}
}
}
14 changes: 14 additions & 0 deletions src/TeamCitySharp/ActionTypes/IBranches.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TeamCitySharp.DomainEntities;
using TeamCitySharp.Locators;

namespace TeamCitySharp.ActionTypes
{
public interface IBranches
{
List<Branch> ByBuildLocator(BuildTypeLocator locator);
}
}
14 changes: 14 additions & 0 deletions src/TeamCitySharp/ActionTypes/IBuild.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TeamCitySharp.DomainEntities;
using TeamCitySharp.Locators;

namespace TeamCitySharp.ActionTypes
{
public interface IBuild
{
Build ByBuildLocator(BuildLocator locator);
}
}
13 changes: 13 additions & 0 deletions src/TeamCitySharp/DomainEntities/Branch.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TeamCitySharp.DomainEntities
{
public class Branch
{
public string Name { get; set; }
public bool Default { get; set; }
}
}
12 changes: 12 additions & 0 deletions src/TeamCitySharp/DomainEntities/BranchesWrapper.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TeamCitySharp.DomainEntities
{
public class BranchesWrapper
{
public List<Branch> Branch { get; set; }
}
}
8 changes: 5 additions & 3 deletions src/TeamCitySharp/ITeamCityClient.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using TeamCitySharp.ActionTypes;
using TeamCitySharp.ActionTypes;

namespace TeamCitySharp
{
Expand All @@ -7,15 +7,17 @@ public interface ITeamCityClient
void Connect(string userName, string password);
void ConnectAsGuest();
bool Authenticate();

IBuilds Builds { get; }
IBuild Build { get; }
IBuildConfigs BuildConfigs { get; }
IProjects Projects { get; }
IServerInformation ServerInformation { get; }
IUsers Users { get; }
IAgents Agents { get; }
IVcsRoots VcsRoots { get; }
IChanges Changes { get; }
IBuildArtifacts Artifacts { get; }
IBuildArtifacts Artifacts { get; }
IBranches Branches { get; }
}
}
2 changes: 1 addition & 1 deletion src/TeamCitySharp/Locators/BuildLocator.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;

namespace TeamCitySharp.Locators
Expand Down
28 changes: 20 additions & 8 deletions src/TeamCitySharp/TeamCityClient.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using TeamCitySharp.ActionTypes;
using TeamCitySharp.ActionTypes;
using TeamCitySharp.Connection;

namespace TeamCitySharp
Expand All @@ -15,6 +15,8 @@ public class TeamCityClient : IClientConnection, ITeamCityClient
private IVcsRoots _vcsRoots;
private IChanges _changes;
private IBuildArtifacts _artifacts;
private IBranches _branches;
private IBuild _build;

public TeamCityClient(string hostName, bool useSsl = false)
{
Expand All @@ -37,8 +39,13 @@ public bool Authenticate()
}

public IBuilds Builds
{
get { return _builds ?? (_builds = new Builds(_caller)); }
{
get { return _builds ?? (_builds = new Builds(_caller)); }
}

public IBuild Build
{
get { return _build ?? (_build = new BuildI(_caller)); }
}

public IBuildConfigs BuildConfigs
Expand All @@ -55,8 +62,8 @@ public IServerInformation ServerInformation
{
get { return _serverInformation ?? (_serverInformation = new ServerInformation(_caller)); }
}

public IUsers Users
public IUsers Users
{
get { return _users ?? (_users = new Users(_caller)); }
}
Expand All @@ -72,13 +79,18 @@ public IVcsRoots VcsRoots
}

public IChanges Changes
{
get { return _changes ?? (_changes = new Changes(_caller)); }
{
get { return _changes ?? (_changes = new Changes(_caller)); }
}

public IBuildArtifacts Artifacts
{
get { return _artifacts ?? (_artifacts = new BuildArtifacts(_caller)); }
}

public IBranches Branches
{
get { return _branches ?? (_branches = new Branches(_caller)); }
}
}
}
}
6 changes: 6 additions & 0 deletions src/TeamCitySharp/TeamCitySharp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,15 @@
<ItemGroup>
<Compile Include="ActionTypes\Agents.cs" />
<Compile Include="ActionTypes\BackupOptions.cs" />
<Compile Include="ActionTypes\Branches.cs" />
<Compile Include="ActionTypes\Build.cs" />
<Compile Include="ActionTypes\BuildArtifacts.cs" />
<Compile Include="ActionTypes\BuildConfigs.cs" />
<Compile Include="ActionTypes\Builds.cs" />
<Compile Include="ActionTypes\Changes.cs" />
<Compile Include="ActionTypes\IAgents.cs" />
<Compile Include="ActionTypes\IBranches.cs" />
<Compile Include="ActionTypes\IBuild.cs" />
<Compile Include="ActionTypes\IBuildArtifacts.cs" />
<Compile Include="ActionTypes\IBuildConfigs.cs" />
<Compile Include="ActionTypes\IBuilds.cs" />
Expand All @@ -67,6 +71,8 @@
<Compile Include="ActionTypes\Projects.cs" />
<Compile Include="ActionTypes\ServerInformation.cs" />
<Compile Include="Connection\ITeamCityCaller.cs" />
<Compile Include="DomainEntities\Branch.cs" />
<Compile Include="DomainEntities\BranchesWrapper.cs" />
<Compile Include="TeamCityClient.cs" />
<Compile Include="ActionTypes\Users.cs" />
<Compile Include="ActionTypes\VcsRoots.cs" />
Expand Down
29 changes: 29 additions & 0 deletions src/Tests/IntegrationTests/SampleBranchesUsage.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using TeamCitySharp.Locators;

namespace TeamCitySharp.IntegrationTests
{
public class when_interacting_to_get_build_branches
{
private ITeamCityClient _client;

[SetUp]
public void SetUp()
{
_client = new TeamCityClient("teamcity.codebetter.com");
_client.Connect("teamcitysharpuser", "qwerty");
}

[Test]
public void it_returns_all_branches()
{
var branches = _client.Branches.ByBuildLocator(BuildTypeLocator.WithId("bt787" /*git-tfs*/));

Assert.That(branches.Any(), "Could not get any branches from the tfs-git project.");
}
}
}
31 changes: 31 additions & 0 deletions src/Tests/IntegrationTests/SampleBuildUsage.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using TeamCitySharp.Locators;

namespace TeamCitySharp.IntegrationTests
{
public class when_interacting_to_get_a_build
{
private ITeamCityClient _client;

[SetUp]
public void SetUp()
{
_client = new TeamCityClient("teamcity.codebetter.com");
_client.Connect("teamcitysharpuser", "qwerty");
}

[Test]
public void it_can_returns_details_on_a_single_build()
{
// build http://teamcity.codebetter.com/viewLog.html?buildId=98727&tab=buildResultsDiv&buildTypeId=bt787
var build = _client.Build.ByBuildLocator(BuildLocator.WithId(98727));

Assert.That(build, Is.Not.Null);
Assert.That(build.Id, Is.EqualTo("98727"));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@
<Compile Include="SampleAgentUsage.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="SampleBranchesUsage.cs" />
<Compile Include="SampleBuildUsage.cs" />
<Compile Include="SampleBuildsConfigsUsage.cs">
<SubType>Code</SubType>
</Compile>
Expand Down