From d1a7d18996ddad9aeb7bebfc0fed9a6806590dfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80=20=D0=9A=D0=BE=D1=87?= =?UTF-8?q?=D0=B5=D1=82=D0=BA=D0=BE=D0=B2?= Date: Wed, 20 Jan 2021 16:57:19 +0300 Subject: [PATCH 01/11] stack trace retrieve --- src/TeamCitySharp/ActionTypes/Tests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TeamCitySharp/ActionTypes/Tests.cs b/src/TeamCitySharp/ActionTypes/Tests.cs index 227c5839..3ad6be28 100644 --- a/src/TeamCitySharp/ActionTypes/Tests.cs +++ b/src/TeamCitySharp/ActionTypes/Tests.cs @@ -32,7 +32,7 @@ public TestOccurrences ByBuildLocator(BuildLocator locator) public TestOccurrences ByProjectLocator(ProjectLocator locator) { - return m_caller.Get($"/testOccurrences?locator=currentlyFailing:true,affectedProject:({locator})"); + return m_caller.Get($"/testOccurrences?locator=currentlyFailing:true,affectedProject:({locator})&fields=testOccurrence(id,name,status,href,details,duration)"); } public TestOccurrences ByTestLocator(TestLocator locator) From 317516921d72f3bd88a1add6b3a6671f0c145110 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80=20=D0=9A=D0=BE=D1=87?= =?UTF-8?q?=D0=B5=D1=82=D0=BA=D0=BE=D0=B2?= Date: Mon, 25 Jan 2021 16:55:51 +0300 Subject: [PATCH 02/11] test metadata --- src/TeamCitySharp/ActionTypes/Tests.cs | 98 ++++++++-------- .../DomainEntities/TestOccurrence.cs | 106 +++++++++++------- 2 files changed, 114 insertions(+), 90 deletions(-) diff --git a/src/TeamCitySharp/ActionTypes/Tests.cs b/src/TeamCitySharp/ActionTypes/Tests.cs index 3ad6be28..6cb3576c 100644 --- a/src/TeamCitySharp/ActionTypes/Tests.cs +++ b/src/TeamCitySharp/ActionTypes/Tests.cs @@ -6,66 +6,66 @@ namespace TeamCitySharp.ActionTypes { - public class Tests : ITests - { - #region Attributes + public class Tests : ITests + { + #region Attributes - private ITeamCityCaller m_caller; + private ITeamCityCaller m_caller; - #endregion + #endregion - #region Constructor + #region Constructor - internal Tests(ITeamCityCaller caller) - { - m_caller = caller; - } + internal Tests(ITeamCityCaller caller) + { + m_caller = caller; + } - #endregion + #endregion - #region Public Methods + #region Public Methods - public TestOccurrences ByBuildLocator(BuildLocator locator) - { - return m_caller.Get($"/testOccurrences?locator=build:({locator})"); - } + public TestOccurrences ByBuildLocator(BuildLocator locator) + { + return m_caller.Get($"/testOccurrences?locator=build:({locator})"); + } - public TestOccurrences ByProjectLocator(ProjectLocator locator) - { - return m_caller.Get($"/testOccurrences?locator=currentlyFailing:true,affectedProject:({locator})&fields=testOccurrence(id,name,status,href,details,duration)"); - } + public TestOccurrences ByProjectLocator(ProjectLocator locator) + { + return m_caller.Get($"/testOccurrences?locator=currentlyFailing:true,affectedProject:({locator})&fields=testOccurrence(id,name,status,href,details,duration,newFailure,metadata)"); + } - public TestOccurrences ByTestLocator(TestLocator locator) - { - return m_caller.Get($"/testOccurrences?locator=test:({locator})"); - } + public TestOccurrences ByTestLocator(TestLocator locator) + { + return m_caller.Get($"/testOccurrences?locator=test:({locator})"); + } - public List All(BuildLocator locator) - { - return AllResults(ByBuildLocator(locator)); - } + public List All(BuildLocator locator) + { + return AllResults(ByBuildLocator(locator)); + } - public List All(ProjectLocator locator) - { - return AllResults(ByProjectLocator(locator)); - } + public List All(ProjectLocator locator) + { + return AllResults(ByProjectLocator(locator)); + } - public List All(TestLocator locator) - { - return AllResults(ByTestLocator(locator)); - } - #endregion - #region Private Method - private List AllResults(TestOccurrences firstPageResult) - { - var result = new List() { firstPageResult }; - while (!(string.IsNullOrEmpty(result.Last().NextHref))) - { - var response = m_caller.GetNextHref(result.Last().NextHref); - result.Add(response); - } - return result; + public List All(TestLocator locator) + { + return AllResults(ByTestLocator(locator)); + } + #endregion + #region Private Method + private List AllResults(TestOccurrences firstPageResult) + { + var result = new List() { firstPageResult }; + while (!(string.IsNullOrEmpty(result.Last().NextHref))) + { + var response = m_caller.GetNextHref(result.Last().NextHref); + result.Add(response); + } + return result; + } + #endregion } - #endregion - } } diff --git a/src/TeamCitySharp/DomainEntities/TestOccurrence.cs b/src/TeamCitySharp/DomainEntities/TestOccurrence.cs index c2f21817..daed91ca 100644 --- a/src/TeamCitySharp/DomainEntities/TestOccurrence.cs +++ b/src/TeamCitySharp/DomainEntities/TestOccurrence.cs @@ -3,64 +3,88 @@ namespace TeamCitySharp.DomainEntities { - public class TestOccurrence - { - public override string ToString() + public class TestMetadata { - return "testOccurrence"; + [JsonProperty("name")] + public string Name { get; set; } + + [JsonProperty("value")] + public string Value { get; set; } + } + + public class TestMetadataContainer + { + [JsonProperty("count")] + public int Count { get; set; } + + [JsonProperty("typedValues")] + public List Metadata { get; set; } } - [JsonProperty("id")] - public string Id { get; set; } - [JsonProperty("name")] - public string Name { get; set; } + public class TestOccurrence + { + public override string ToString() + { + return "testOccurrence"; + } + [JsonProperty("id")] + public string Id { get; set; } + + [JsonProperty("name")] + public string Name { get; set; } + + [JsonProperty("status")] + public string Status { get; set; } - [JsonProperty("status")] - public string Status { get; set; } + [JsonProperty("ignored")] + public bool Ignored { get; set; } - [JsonProperty("ignored")] - public bool Ignored { get; set; } + [JsonProperty("duration")] + public int Duration { get; set; } - [JsonProperty("duration")] - public int Duration { get; set; } + [JsonProperty("runOrder")] + public string RunOrder { get; set; } - [JsonProperty("runOrder")] - public string RunOrder { get; set; } + [JsonProperty("muted")] + public bool Muted { get; set; } - [JsonProperty("muted")] - public bool Muted { get; set; } + [JsonProperty("currentlyMuted")] + public bool CurrentlyMuted { get; set; } - [JsonProperty("currentlyMuted")] - public bool CurrentlyMuted { get; set; } + [JsonProperty("currentlyInvestigated")] + public bool CurrentlyInvestigated { get; set; } - [JsonProperty("currentlyInvestigated")] - public bool CurrentlyInvestigated { get; set; } + [JsonProperty("href")] + public string Href { get; set; } - [JsonProperty("href")] - public string Href { get; set; } + [JsonProperty("ignoreDetails")] + public string IgnoreDetails { get; set; } - [JsonProperty("ignoreDetails")] - public string IgnoreDetails { get; set; } + [JsonProperty("details")] + public string Details { get; set; } - [JsonProperty("details")] - public string Details { get; set; } + [JsonProperty("test")] + public Test Test { get; set; } - [JsonProperty("test")] - public Test Test { get; set; } + [JsonProperty("mute")] + public Mute Mute { get; set; } - [JsonProperty("mute")] - public Mute Mute { get; set; } + [JsonProperty("build")] + public Build Build { get; set; } - [JsonProperty("build")] - public Build Build { get; set; } + [JsonProperty("firstFailed")] + public Build FirstFailed { get; set; } - [JsonProperty("firstFailed")] - public Build FirstFailed { get; set; } + [JsonProperty("nextFixed")] + public Build NextFixed { get; set; } - [JsonProperty("nextFixed")] - public Build NextFixed { get; set; } + [JsonProperty("logAnchor")] + public string LogAnchor { get; set; } - [JsonProperty("logAnchor")] - public string LogAnchor { get; set; } - } + [JsonProperty("newFailure")] + public bool? NewFailure { get; set; } + + [JsonProperty("metadata")] + public TestMetadataContainer Metadata { get; set; } + } } From 29f5bc2239e0370e0efec1a1a35e7652f2b934bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80=20=D0=9A=D0=BE=D1=87?= =?UTF-8?q?=D0=B5=D1=82=D0=BA=D0=BE=D0=B2?= Date: Mon, 25 Jan 2021 18:50:46 +0300 Subject: [PATCH 03/11] nuget build --- icon.png | Bin 0 -> 6993 bytes src/TeamCitySharp/TeamCitySharp.csproj | 44 ++++++++++++------------- 2 files changed, 21 insertions(+), 23 deletions(-) create mode 100644 icon.png diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..47ea94a8abba3a68e6add0061fe7b58b0720a5da GIT binary patch literal 6993 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 literal 0 HcmV?d00001 diff --git a/src/TeamCitySharp/TeamCitySharp.csproj b/src/TeamCitySharp/TeamCitySharp.csproj index f1770ebf..c13a2577 100644 --- a/src/TeamCitySharp/TeamCitySharp.csproj +++ b/src/TeamCitySharp/TeamCitySharp.csproj @@ -1,33 +1,31 @@ + - netstandard2.0;net45 - 2.0.12 + netstandard2.0 + MvsTelecom.Teamcity.Api + MVS Telecom + MVS Telecom + 0.0.0.1 + https://github.com/MVS-Telecom/mvstelecom-teamcity-api + icon.png + C# API client for TeamCity + MvsTelecom.Teamcity.Api - + + NETCORE;NETSTANDARD;NETSTANDARD2_0 - + + - - - - - - - - - - - - - - - - NET45;NETFULL - - - + + + + True + + + \ No newline at end of file From b73237ca48a28745a599095f758fa762200a7f61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80=20=D0=9A=D0=BE=D1=87?= =?UTF-8?q?=D0=B5=D1=82=D0=BA=D0=BE=D0=B2?= Date: Tue, 26 Jan 2021 12:17:00 +0300 Subject: [PATCH 04/11] more information for test occurences --- src/TeamCitySharp/ActionTypes/Tests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TeamCitySharp/ActionTypes/Tests.cs b/src/TeamCitySharp/ActionTypes/Tests.cs index 6cb3576c..8b29228a 100644 --- a/src/TeamCitySharp/ActionTypes/Tests.cs +++ b/src/TeamCitySharp/ActionTypes/Tests.cs @@ -27,7 +27,7 @@ internal Tests(ITeamCityCaller caller) public TestOccurrences ByBuildLocator(BuildLocator locator) { - return m_caller.Get($"/testOccurrences?locator=build:({locator})"); + return m_caller.Get($"/testOccurrences?locator=currentlyFailing:true&build:({locator})&fields=testOccurrence(id,name,status,href,details,duration,newFailure,metadata)"); } public TestOccurrences ByProjectLocator(ProjectLocator locator) From 52c18b59f2d1ede02fec0b261867ec100cb1e69b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80=20=D0=9A=D0=BE=D1=87?= =?UTF-8?q?=D0=B5=D1=82=D0=BA=D0=BE=D0=B2?= Date: Tue, 26 Jan 2021 12:17:14 +0300 Subject: [PATCH 05/11] build name helper methods --- src/TeamCitySharp/DomainEntities/BuildConfig.cs | 4 ++++ src/TeamCitySharp/DomainEntities/TestOccurrence.cs | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/src/TeamCitySharp/DomainEntities/BuildConfig.cs b/src/TeamCitySharp/DomainEntities/BuildConfig.cs index c89e6b55..3b80e8e5 100644 --- a/src/TeamCitySharp/DomainEntities/BuildConfig.cs +++ b/src/TeamCitySharp/DomainEntities/BuildConfig.cs @@ -1,4 +1,5 @@ using Newtonsoft.Json; +using System.Linq; namespace TeamCitySharp.DomainEntities { @@ -9,6 +10,9 @@ public override string ToString() return Name; } + [JsonIgnore] + public string BuildName => Id?.Split('_')?.ElementAtOrDefault(1); + [JsonProperty("id")] public string Id { get; set; } diff --git a/src/TeamCitySharp/DomainEntities/TestOccurrence.cs b/src/TeamCitySharp/DomainEntities/TestOccurrence.cs index daed91ca..6deb9b52 100644 --- a/src/TeamCitySharp/DomainEntities/TestOccurrence.cs +++ b/src/TeamCitySharp/DomainEntities/TestOccurrence.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Linq; using Newtonsoft.Json; namespace TeamCitySharp.DomainEntities @@ -27,6 +28,11 @@ public override string ToString() { return "testOccurrence"; } + + + [JsonIgnore] + public string BuildName => Name?.Split(':')?.ElementAtOrDefault(0)?.Replace(".dll", "")?.Replace(".", ""); + [JsonProperty("id")] public string Id { get; set; } From 17b245475f3ab5b70919e9c50ae52bb22c3696f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80=20=D0=9A=D0=BE=D1=87?= =?UTF-8?q?=D0=B5=D1=82=D0=BA=D0=BE=D0=B2?= Date: Wed, 27 Jan 2021 11:29:00 +0300 Subject: [PATCH 06/11] nuget build --- src/TeamCitySharp/TeamCitySharp.csproj | 2 +- src/Tests/UnitTests/TeamCitySharp.UnitTests.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/TeamCitySharp/TeamCitySharp.csproj b/src/TeamCitySharp/TeamCitySharp.csproj index c13a2577..b65dfaa5 100644 --- a/src/TeamCitySharp/TeamCitySharp.csproj +++ b/src/TeamCitySharp/TeamCitySharp.csproj @@ -5,7 +5,7 @@ MvsTelecom.Teamcity.Api MVS Telecom MVS Telecom - 0.0.0.1 + 0.0.0.2 https://github.com/MVS-Telecom/mvstelecom-teamcity-api icon.png C# API client for TeamCity diff --git a/src/Tests/UnitTests/TeamCitySharp.UnitTests.csproj b/src/Tests/UnitTests/TeamCitySharp.UnitTests.csproj index 481a57c5..8ec1b196 100644 --- a/src/Tests/UnitTests/TeamCitySharp.UnitTests.csproj +++ b/src/Tests/UnitTests/TeamCitySharp.UnitTests.csproj @@ -10,7 +10,7 @@ Properties TeamCitySharp TeamCitySharp.UnitTests - v4.5 + v4.8 512 From fef1f0bea6400c48b0dcbaa38e89f45d77227b44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80=20=D0=9A=D0=BE=D1=87?= =?UTF-8?q?=D0=B5=D1=82=D0=BA=D0=BE=D0=B2?= Date: Tue, 1 Jun 2021 15:01:00 +0300 Subject: [PATCH 07/11] include build info --- src/TeamCitySharp/ActionTypes/Tests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TeamCitySharp/ActionTypes/Tests.cs b/src/TeamCitySharp/ActionTypes/Tests.cs index 8b29228a..d6025a54 100644 --- a/src/TeamCitySharp/ActionTypes/Tests.cs +++ b/src/TeamCitySharp/ActionTypes/Tests.cs @@ -32,7 +32,7 @@ public TestOccurrences ByBuildLocator(BuildLocator locator) public TestOccurrences ByProjectLocator(ProjectLocator locator) { - return m_caller.Get($"/testOccurrences?locator=currentlyFailing:true,affectedProject:({locator})&fields=testOccurrence(id,name,status,href,details,duration,newFailure,metadata)"); + return m_caller.Get($"/testOccurrences?locator=currentlyFailing:true,affectedProject:({locator})&fields=testOccurrence(id,name,status,href,details,duration,newFailure,metadata,build)"); } public TestOccurrences ByTestLocator(TestLocator locator) From 471d07c03e3c76c8b7f698eaad688033f0570712 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80=20=D0=9A=D0=BE=D1=87?= =?UTF-8?q?=D0=B5=D1=82=D0=BA=D0=BE=D0=B2?= Date: Tue, 1 Jun 2021 15:01:19 +0300 Subject: [PATCH 08/11] new unit test project template --- TeamCitySharp.sln | 30 +++--- .../UnitTests/Properties/AssemblyInfo.cs | 40 -------- .../UnitTests/TeamCitySharp.UnitTests.csproj | 97 +++---------------- src/Tests/UnitTests/packages.config | 8 -- 4 files changed, 31 insertions(+), 144 deletions(-) delete mode 100644 src/Tests/UnitTests/Properties/AssemblyInfo.cs delete mode 100644 src/Tests/UnitTests/packages.config diff --git a/TeamCitySharp.sln b/TeamCitySharp.sln index 7612bf16..be13a99d 100644 --- a/TeamCitySharp.sln +++ b/TeamCitySharp.sln @@ -7,15 +7,15 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{263F35DD EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TeamCitySharp.IntegrationTests", "src\Tests\IntegrationTests\TeamCitySharp.IntegrationTests.csproj", "{BA409A09-CC7B-4A71-A3D4-FE27234A721B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TeamCitySharp.UnitTests", "src\Tests\UnitTests\TeamCitySharp.UnitTests.csproj", "{1DA175C4-2A6F-4B52-A9B4-87D382150AE9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TeamCitySharp", "src\TeamCitySharp\TeamCitySharp.csproj", "{419C8D24-ED8A-47BE-87BB-8790534FEF09}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamCitySharp", "src\TeamCitySharp\TeamCitySharp.csproj", "{419C8D24-ED8A-47BE-87BB-8790534FEF09}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Documentation", "Documentation", "{E947C127-1479-451D-994A-0E6935999466}" ProjectSection(SolutionItems) = preProject README.md = README.md EndProjectSection EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TeamCitySharp.UnitTests", "src\Tests\UnitTests\TeamCitySharp.UnitTests.csproj", "{031165E3-0EC4-4E0D-BF8E-E63C732A1D6F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -36,16 +36,6 @@ Global {BA409A09-CC7B-4A71-A3D4-FE27234A721B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {BA409A09-CC7B-4A71-A3D4-FE27234A721B}.Release|Mixed Platforms.Build.0 = Release|Any CPU {BA409A09-CC7B-4A71-A3D4-FE27234A721B}.Release|x86.ActiveCfg = Release|Any CPU - {1DA175C4-2A6F-4B52-A9B4-87D382150AE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1DA175C4-2A6F-4B52-A9B4-87D382150AE9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1DA175C4-2A6F-4B52-A9B4-87D382150AE9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {1DA175C4-2A6F-4B52-A9B4-87D382150AE9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {1DA175C4-2A6F-4B52-A9B4-87D382150AE9}.Debug|x86.ActiveCfg = Debug|Any CPU - {1DA175C4-2A6F-4B52-A9B4-87D382150AE9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1DA175C4-2A6F-4B52-A9B4-87D382150AE9}.Release|Any CPU.Build.0 = Release|Any CPU - {1DA175C4-2A6F-4B52-A9B4-87D382150AE9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {1DA175C4-2A6F-4B52-A9B4-87D382150AE9}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {1DA175C4-2A6F-4B52-A9B4-87D382150AE9}.Release|x86.ActiveCfg = Release|Any CPU {419C8D24-ED8A-47BE-87BB-8790534FEF09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {419C8D24-ED8A-47BE-87BB-8790534FEF09}.Debug|Any CPU.Build.0 = Debug|Any CPU {419C8D24-ED8A-47BE-87BB-8790534FEF09}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -58,13 +48,25 @@ Global {419C8D24-ED8A-47BE-87BB-8790534FEF09}.Release|Mixed Platforms.Build.0 = Release|Any CPU {419C8D24-ED8A-47BE-87BB-8790534FEF09}.Release|x86.ActiveCfg = Release|Any CPU {419C8D24-ED8A-47BE-87BB-8790534FEF09}.Release|x86.Build.0 = Release|Any CPU + {031165E3-0EC4-4E0D-BF8E-E63C732A1D6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {031165E3-0EC4-4E0D-BF8E-E63C732A1D6F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {031165E3-0EC4-4E0D-BF8E-E63C732A1D6F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {031165E3-0EC4-4E0D-BF8E-E63C732A1D6F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {031165E3-0EC4-4E0D-BF8E-E63C732A1D6F}.Debug|x86.ActiveCfg = Debug|Any CPU + {031165E3-0EC4-4E0D-BF8E-E63C732A1D6F}.Debug|x86.Build.0 = Debug|Any CPU + {031165E3-0EC4-4E0D-BF8E-E63C732A1D6F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {031165E3-0EC4-4E0D-BF8E-E63C732A1D6F}.Release|Any CPU.Build.0 = Release|Any CPU + {031165E3-0EC4-4E0D-BF8E-E63C732A1D6F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {031165E3-0EC4-4E0D-BF8E-E63C732A1D6F}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {031165E3-0EC4-4E0D-BF8E-E63C732A1D6F}.Release|x86.ActiveCfg = Release|Any CPU + {031165E3-0EC4-4E0D-BF8E-E63C732A1D6F}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {BA409A09-CC7B-4A71-A3D4-FE27234A721B} = {263F35DD-20C1-4209-B121-E962C9328C70} - {1DA175C4-2A6F-4B52-A9B4-87D382150AE9} = {263F35DD-20C1-4209-B121-E962C9328C70} + {031165E3-0EC4-4E0D-BF8E-E63C732A1D6F} = {263F35DD-20C1-4209-B121-E962C9328C70} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {81D02472-9664-494C-B6A4-0D6ABBD44EC7} diff --git a/src/Tests/UnitTests/Properties/AssemblyInfo.cs b/src/Tests/UnitTests/Properties/AssemblyInfo.cs deleted file mode 100644 index 5e7ac8fc..00000000 --- a/src/Tests/UnitTests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("TeamCitySharp.UnitTests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("TeamCitySharp.UnitTests")] -[assembly: AssemblyCopyright("Copyright © 2013")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. - -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM - -[assembly: Guid("ffe7fbda-d6b9-459f-9b4d-a8d7858bd053")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/src/Tests/UnitTests/TeamCitySharp.UnitTests.csproj b/src/Tests/UnitTests/TeamCitySharp.UnitTests.csproj index 8ec1b196..56165f16 100644 --- a/src/Tests/UnitTests/TeamCitySharp.UnitTests.csproj +++ b/src/Tests/UnitTests/TeamCitySharp.UnitTests.csproj @@ -1,88 +1,21 @@ - - - - + + - Debug - AnyCPU - {1DA175C4-2A6F-4B52-A9B4-87D382150AE9} - Library - Properties - TeamCitySharp - TeamCitySharp.UnitTests - v4.8 - 512 - - - + net5.0 + + false - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - true - false - - - - ..\..\..\packages\FakeItEasy.1.25.3\lib\net40\FakeItEasy.dll - - - ..\..\..\packages\FluentAssertions.2.0.1\lib\net40\FluentAssertions.dll - - - ..\..\..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll - - - ..\..\..\packages\NUnit.3.0.1\lib\net40\nunit.framework.dll - - - - - - - - - - - - - - + - + + + + + + - - {419c8d24-ed8a-47be-87bb-8790534fef09} - TeamCitySharp - + - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - \ No newline at end of file + + diff --git a/src/Tests/UnitTests/packages.config b/src/Tests/UnitTests/packages.config deleted file mode 100644 index c3e83916..00000000 --- a/src/Tests/UnitTests/packages.config +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file From 78ba7e3d61bb19e1fcf2bec4cc5722c96968ac37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80=20=D0=9A=D0=BE=D1=87?= =?UTF-8?q?=D0=B5=D1=82=D0=BA=D0=BE=D0=B2?= Date: Tue, 1 Jun 2021 15:01:25 +0300 Subject: [PATCH 09/11] Update ServerInformationTest.cs --- .../ActionTypes/ServerInformationTest.cs | 148 +++++++++++------- 1 file changed, 95 insertions(+), 53 deletions(-) diff --git a/src/Tests/UnitTests/ActionTypes/ServerInformationTest.cs b/src/Tests/UnitTests/ActionTypes/ServerInformationTest.cs index a01e05ac..7332c4be 100644 --- a/src/Tests/UnitTests/ActionTypes/ServerInformationTest.cs +++ b/src/Tests/UnitTests/ActionTypes/ServerInformationTest.cs @@ -2,65 +2,107 @@ namespace TeamCitySharp.ActionTypes { - using FakeItEasy; - using FluentAssertions; - using NUnit.Framework; - using TeamCitySharp.Connection; - - [TestFixture] - public class ServerInformationTest - { - private ServerInformation testee; - private ITeamCityCaller teamCityCaller; - - [SetUp] - public void SetUp() - { - this.teamCityCaller = A.Fake(); - this.testee = new ServerInformation(this.teamCityCaller); - } + using FakeItEasy; + using FluentAssertions; + using NUnit.Framework; + using System.Collections.Generic; + using System.Linq; + using TeamCitySharp.Connection; + using TeamCitySharp.Locators; - [TestCase(true, true, true, true)] - [TestCase(false, false, false, false)] - [TestCase(true, false, false, false)] - [TestCase(false, true, false, false)] - [TestCase(false, false, true, false)] - [TestCase(false, false, false, true)] - public void CreatesBackupWithSelectedParts(bool includeBuildLogs, bool includeConfigurations, bool includeDatabase, - bool includePersonalChanges) + [TestFixture] + public class ServerInformationTest { - const string Filename = "Filename"; - var backupOptions = new BackupOptions + private ServerInformation testee; + private ITeamCityCaller teamCityCaller; + + [SetUp] + public void SetUp() { - Filename = Filename, - IncludeBuildLogs = includeBuildLogs, - IncludeConfigurations = includeConfigurations, - IncludeDatabase = includeDatabase, - IncludePersonalChanges = includePersonalChanges - }; - - this.testee.TriggerServerInstanceBackup(backupOptions); - - A.CallTo(() => this.teamCityCaller.StartBackup(string.Concat( - "/server/backup?fileName=", - Filename, - "&includeBuildLogs=" + includeBuildLogs, - "&includeConfigs=" + includeConfigurations, - "&includeDatabase=" + includeDatabase, - "&includePersonalChanges=" + includePersonalChanges))) - .MustHaveHappened(); - } + this.teamCityCaller = A.Fake(); + this.testee = new ServerInformation(this.teamCityCaller); + } - [Test] - public void GetsBackupStatus() - { - const string Status = "Idle"; + [TestCase(true, true, true, true)] + [TestCase(false, false, false, false)] + [TestCase(true, false, false, false)] + [TestCase(false, true, false, false)] + [TestCase(false, false, true, false)] + [TestCase(false, false, false, true)] + public void CreatesBackupWithSelectedParts(bool includeBuildLogs, bool includeConfigurations, bool includeDatabase, + bool includePersonalChanges) + { + const string Filename = "Filename"; + var backupOptions = new BackupOptions + { + Filename = Filename, + IncludeBuildLogs = includeBuildLogs, + IncludeConfigurations = includeConfigurations, + IncludeDatabase = includeDatabase, + IncludePersonalChanges = includePersonalChanges + }; + + this.testee.TriggerServerInstanceBackup(backupOptions); + + A.CallTo(() => this.teamCityCaller.StartBackup(string.Concat( + "/server/backup?fileName=", + Filename, + "&includeBuildLogs=" + includeBuildLogs, + "&includeConfigs=" + includeConfigurations, + "&includeDatabase=" + includeDatabase, + "&includePersonalChanges=" + includePersonalChanges))) + .MustHaveHappened(); + } + + [Test] + public void GetsBackupStatus() + { + const string Status = "Idle"; + + A.CallTo(() => this.teamCityCaller.GetRaw("/server/backup")).Returns(Status); + + string status = this.testee.GetBackupStatus(); + + status.Should().Be(Status); + } + + + [Test] + public void Test() + { + var teamcity = new TeamCityClient("build.mvstelecom.ru"); + teamcity.ConnectWithAccessToken("eyJ0eXAiOiAiVENWMiJ9.V0R5T1k5R0tPTklESUctNndDQjhkOVFkYzVn.OTczMGJhZGItMzVkYy00Y2QyLThmYWUtODg1NTk0N2RlYWFl"); + + var p = teamcity.Projects.ById("ExtraCheckTest"); + + //p.BuildTypes.BuildType.Where(x=>x.) + + var aa = teamcity.Tests.ByProjectLocator(ProjectLocator.WithId("ExtraCheckTest")); + var cc = aa.TestOccurrence.Select(x => x.BuildName).ToList(); + + var bb = aa.TestOccurrence.Select(x => x.Build.BuildTypeId).ToList(); + + var buildName = "ExtraCheckTest_Iridium360ExtraCheckTest"; + + ///Название билда + var name = buildName.Split('_').ElementAtOrDefault(1); + + var builds = teamcity.Projects.ById("ExtraCheckTest").BuildTypes.BuildType; + var tests = teamcity.Tests.ByProjectLocator(ProjectLocator.WithId("ExtraCheckTest")); + + var targetTests = tests.TestOccurrence.Where(x => x.BuildName == name).ToList(); + + var targetBuild = teamcity.Builds.ByBuildLocator(BuildLocator.WithNumber(targetTests[0].Build.Number)); + var prevBuild = teamcity.Builds.ByBuildLocator(BuildLocator.WithNumber(targetTests[0].Build.Number)); - A.CallTo(() => this.teamCityCaller.GetRaw("/server/backup")).Returns(Status); + var groups = new Dictionary>(); - string status = this.testee.GetBackupStatus(); + foreach (var build in builds) + { + groups.Add(build.BuildName, tests.TestOccurrence.Where(x => x.BuildName == build.BuildName).ToList()); + //var aaa = teamcity.Builds.ByBuildLocator(BuildLocator.WithDimensions(BuildTypeLocator.WithId(build.Id), maxResults: 5)); + } - status.Should().Be(Status); + } } - } } \ No newline at end of file From 77a1b4f870023b39eab4f8eb688ecd9fbc52b8e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80=20=D0=9A=D0=BE=D1=87?= =?UTF-8?q?=D0=B5=D1=82=D0=BA=D0=BE=D0=B2?= Date: Tue, 1 Jun 2021 15:05:52 +0300 Subject: [PATCH 10/11] Update ServerInformationTest.cs --- .../ActionTypes/ServerInformationTest.cs | 42 ++++++------------- 1 file changed, 12 insertions(+), 30 deletions(-) diff --git a/src/Tests/UnitTests/ActionTypes/ServerInformationTest.cs b/src/Tests/UnitTests/ActionTypes/ServerInformationTest.cs index 7332c4be..6cb78b5b 100644 --- a/src/Tests/UnitTests/ActionTypes/ServerInformationTest.cs +++ b/src/Tests/UnitTests/ActionTypes/ServerInformationTest.cs @@ -70,39 +70,21 @@ public void GetsBackupStatus() [Test] public void Test() { - var teamcity = new TeamCityClient("build.mvstelecom.ru"); - teamcity.ConnectWithAccessToken("eyJ0eXAiOiAiVENWMiJ9.V0R5T1k5R0tPTklESUctNndDQjhkOVFkYzVn.OTczMGJhZGItMzVkYy00Y2QyLThmYWUtODg1NTk0N2RlYWFl"); + var projectName = "ExtraCheckTest"; + var api = new TeamCityClient("build.mvstelecom.ru"); + api.ConnectWithAccessToken("eyJ0eXAiOiAiVENWMiJ9.V0R5T1k5R0tPTklESUctNndDQjhkOVFkYzVn.OTczMGJhZGItMzVkYy00Y2QyLThmYWUtODg1NTk0N2RlYWFl"); - var p = teamcity.Projects.ById("ExtraCheckTest"); + var project = api.Projects.ById(projectName); + var tests = api.Tests.ByProjectLocator(ProjectLocator.WithId(projectName)); - //p.BuildTypes.BuildType.Where(x=>x.) - - var aa = teamcity.Tests.ByProjectLocator(ProjectLocator.WithId("ExtraCheckTest")); - var cc = aa.TestOccurrence.Select(x => x.BuildName).ToList(); - - var bb = aa.TestOccurrence.Select(x => x.Build.BuildTypeId).ToList(); - - var buildName = "ExtraCheckTest_Iridium360ExtraCheckTest"; - - ///Название билда - var name = buildName.Split('_').ElementAtOrDefault(1); - - var builds = teamcity.Projects.ById("ExtraCheckTest").BuildTypes.BuildType; - var tests = teamcity.Tests.ByProjectLocator(ProjectLocator.WithId("ExtraCheckTest")); - - var targetTests = tests.TestOccurrence.Where(x => x.BuildName == name).ToList(); - - var targetBuild = teamcity.Builds.ByBuildLocator(BuildLocator.WithNumber(targetTests[0].Build.Number)); - var prevBuild = teamcity.Builds.ByBuildLocator(BuildLocator.WithNumber(targetTests[0].Build.Number)); - - var groups = new Dictionary>(); - - foreach (var build in builds) - { - groups.Add(build.BuildName, tests.TestOccurrence.Where(x => x.BuildName == build.BuildName).ToList()); - //var aaa = teamcity.Builds.ByBuildLocator(BuildLocator.WithDimensions(BuildTypeLocator.WithId(build.Id), maxResults: 5)); - } + var disabled = project.BuildTypes.BuildType + .Where(x => x.Name.StartsWith("[disabled]")) + .Select(x => x.Id) + .ToList(); + var actualTests = tests.TestOccurrence + .Where(x => !disabled.Contains(x.Build.BuildTypeId)) + .ToList(); } } } \ No newline at end of file From 92776dbf42892c056043dfd2038abd1079f89919 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80=20=D0=9A=D0=BE=D1=87?= =?UTF-8?q?=D0=B5=D1=82=D0=BA=D0=BE=D0=B2?= Date: Tue, 1 Jun 2021 15:15:25 +0300 Subject: [PATCH 11/11] nuget build --- src/TeamCitySharp/TeamCitySharp.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TeamCitySharp/TeamCitySharp.csproj b/src/TeamCitySharp/TeamCitySharp.csproj index b65dfaa5..9a7a2265 100644 --- a/src/TeamCitySharp/TeamCitySharp.csproj +++ b/src/TeamCitySharp/TeamCitySharp.csproj @@ -5,7 +5,7 @@ MvsTelecom.Teamcity.Api MVS Telecom MVS Telecom - 0.0.0.2 + 0.0.0.3 https://github.com/MVS-Telecom/mvstelecom-teamcity-api icon.png C# API client for TeamCity