Skip to content

Commit

Permalink
Added new method NextBuilds
Browse files Browse the repository at this point in the history
/// <summary>
/// Retrieves the list of build after a build id.
///
/// IMPORTANT NOTE: The list starts from the latest build to oldest
(Descending)
/// </summary>
/// <param name="buildid"></param>
/// <param name="count"></param>
/// <returns></returns>
public List<Build> NextBuilds(string buildid, int count = 100)
  • Loading branch information
mavezeau committed May 17, 2016
1 parent e6ddbfa commit 4d87c62
Show file tree
Hide file tree
Showing 8 changed files with 75 additions and 18 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ Each area has its own list of methods available
List<Build> AllRunningBuild();
List<Build> RetrieveEntireBuildChainFrom(string buildConfigId);
List<Build> RetrieveEntireBuildChainTo(string buildConfigId);
List<Build> NextBuilds(string buildid, int count = 100);

###Projects

Expand Down Expand Up @@ -230,3 +231,4 @@ Thanks to the following contributors:
* Philipp Dolder
* Mark deVilliers
* Marc-Andre Vezeau (@exfo)
* Bassem Mawassi (@exfo)
18 changes: 17 additions & 1 deletion src/TeamCitySharp/ActionTypes/Builds.cs
Original file line number Diff line number Diff line change
Expand Up @@ -214,5 +214,21 @@ public List<Build> RetrieveEntireBuildChainTo(string buildConfigId)
buildConfigId);
return int.Parse(buildWrapper.Count) > 0 ? buildWrapper.Build : new List<Build>();
}

/// <summary>
/// Retrieves the list of build after a build id.
///
/// IMPORTANT NOTE: The list starts from the latest build to oldest (Descending)
/// </summary>
/// <param name="buildid"></param>
/// <param name="count"></param>
/// <returns></returns>
public List<Build> NextBuilds(string buildid, int count = 100)
{
var buildWrapper =
_caller.GetFormat<BuildWrapper>(
ActionHelper.CreateFieldUrl("/app/rest/builds?locator=sinceBuild:(id:{0}),count({1})", _fields),buildid,count);
return int.Parse(buildWrapper.Count) > 0 ? buildWrapper.Build : new List<Build>();
}
}
}
}
1 change: 1 addition & 0 deletions src/TeamCitySharp/ActionTypes/IBuilds.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,6 @@ public interface IBuilds
List<Build> AllRunningBuild();
List<Build> RetrieveEntireBuildChainFrom(string buildConfigId);
List<Build> RetrieveEntireBuildChainTo(string buildConfigId);
List<Build> NextBuilds(string buildid, int count = 100);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public CamelCaseJsonWriter(DataWriterSettings settings, params string[] contentT

protected override ITextFormatter<ModelTokenType> GetFormatter()
{
return new CamelCaseJsonFormatter(this.Settings);
return new CamelCaseJsonFormatter(Settings);
}
}

Expand Down
4 changes: 2 additions & 2 deletions src/TeamCitySharp/TeamCitySharp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="EasyHttp, Version=1.6.80.0, Culture=neutral, processorArchitecture=MSIL">
<Reference Include="EasyHttp, Version=1.6.86.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\packages\EasyHttp.1.6.80.0\lib\net40\EasyHttp.dll</HintPath>
<HintPath>..\..\packages\EasyHttp.1.6.86.0\lib\net40\EasyHttp.dll</HintPath>
</Reference>
<Reference Include="JsonFx">
<HintPath>..\..\packages\JsonFx.2.0.1209.2802\lib\net40\JsonFx.dll</HintPath>
Expand Down
2 changes: 1 addition & 1 deletion src/TeamCitySharp/packages.config
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>

<packages>
<package id="EasyHttp" version="1.6.80.0" targetFramework="net40" />
<package id="EasyHttp" version="1.6.86" targetFramework="net40" />
<package id="JsonFx" version="2.0.1209.2802" targetFramework="net40" />
</packages>
56 changes: 46 additions & 10 deletions src/Tests/IntegrationTests/SampleBuildsUsage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using System.Net;
using System.Runtime.CompilerServices;
using NUnit.Framework;
using TeamCitySharp.Fields;
using TeamCitySharp.Locators;

namespace TeamCitySharp.IntegrationTests
Expand All @@ -16,7 +17,7 @@ public class when_interacting_to_get_build_status_info
public void SetUp()
{
_client = new TeamCityClient("teamcity.codebetter.com");
_client.Connect("teamcitysharpuser", "qwerty");
_client.Connect("testteamcitysharp", "testteamcitysharp");
}

[Test]
Expand Down Expand Up @@ -84,7 +85,7 @@ public void it_returns_all_non_successful_builds_by_config_id()
[Test]
public void it_returns_last_error_build_by_config_id()
{
const string buildConfigId = "bt437";
const string buildConfigId = "bt464";
var buildDetails = _client.Builds.LastErrorBuildByBuildConfigId(buildConfigId);

Assert.That(buildDetails != null, "No errored builds have been found");
Expand All @@ -93,7 +94,7 @@ public void it_returns_last_error_build_by_config_id()
[Test]
public void it_returns_all_error_builds_by_config_id()
{
const string buildId = "bt437";
const string buildId = "bt464";
var builds = _client.Builds.ErrorBuildsByBuildConfigId(buildId);

Assert.That(builds.Any(), "No errored builds have been found");
Expand Down Expand Up @@ -174,8 +175,8 @@ public void it_returns_all_successful_builds_since_date()
public void it_does_not_populate_the_status_text_field_of_the_build_object()
{
const string buildConfigId = "bt5";
var client = new TeamCityClient("localhost:81");
client.Connect("admin", "qwerty");
var client = new TeamCityClient("teamcity.codebetter.com");
client.ConnectAsGuest();

var build =
client.Builds.ByBuildLocator(BuildLocator.WithDimensions(BuildTypeLocator.WithId(buildConfigId),
Expand All @@ -185,16 +186,51 @@ public void it_does_not_populate_the_status_text_field_of_the_build_object()
}

[Test]
public void ig_returns_correct_build_when_calling_by_id()
public void it_returns_correct_build_when_calling_by_id()
{
const string buildId = "5726";
var client = new TeamCityClient("localhost:81");
client.Connect("admin", "qwerty");
const string buildId = "53642";
var client = new TeamCityClient("teamcity.codebetter.com");
client.ConnectAsGuest();

var build = client.Builds.ById(buildId);

Assert.That(build != null);
Assert.That(build.Id == buildId);
}
[Test]
public void it_returns_correct_next_builds()
{
const string buildId = "5726";
var client = new TeamCityClient("teamcity.codebetter.com");
client.ConnectAsGuest();

var builds = client.Builds.NextBuilds(buildId, 10);

Assert.That(builds != null);
Assert.That(builds.Count == 10);

}
[Test]
public void it_returns_correct_next_builds_with_filter()
{
const string buildId = "5726";
var client = new TeamCityClient("teamcity.codebetter.com");
client.ConnectAsGuest();

BuildField buildField = BuildField.WithFields(id: true, number: true, finishDate: true);
BuildsField buildsField = BuildsField.WithFields(buildField);
var builds = client.Builds.GetFields(buildsField.ToString()).NextBuilds(buildId, 10);

Assert.That(builds != null);
Assert.That(builds.Count == 10);
int i = 0;
foreach (var build in builds)
{
Assert.That(build.FinishDate != new DateTime());
Console.WriteLine("{0} => BuildId => {1} FinishDate => {2}",i,build.Id,build.FinishDate);
i++;
}

}
}
}
}
8 changes: 5 additions & 3 deletions src/Tests/IntegrationTests/SampleServerUsage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ public class when_interacting_to_get_server_info
[SetUp]
public void SetUp()
{
_client = new TeamCityClient("localhost:81");
_client.Connect("admin", "qwerty");
_client = new TeamCityClient("teamcity.codebetter.com");
_client.Connect("testteamcitysharp", "testteamcitysharp");
}

[Test]
Expand Down Expand Up @@ -55,7 +55,9 @@ public void it_returns_server_info()
[Test]
public void it_returns_all_server_plugins()
{
List<Plugin> plugins = _client.ServerInformation.AllPlugins();
var client = new TeamCityClient("test:81");
client.Connect("admin", "qwerty");
List<Plugin> plugins = client.ServerInformation.AllPlugins();

Assert.IsNotNull(plugins, "Server is not returning a plugin list");
}
Expand Down

0 comments on commit 4d87c62

Please sign in to comment.