From e92cb4f14d586770c59151694fe65aa26c6e2f00 Mon Sep 17 00:00:00 2001 From: Denis Prokharhcyk Date: Mon, 6 Feb 2023 08:08:06 +0300 Subject: [PATCH] feat(issue-536): add tests for idportal service --- .../id-portal/O2Bionics.Services.IdPortal.sln | 18 +++++++++++ .../Controllers/VersionController.cs | 8 ++++- .../O2Bionics.Services.IdPortal.csproj | 5 +++- ...onTests.O2Bionics.Services.IdPortal.csproj | 28 +++++++++++++++++ .../VersionApiTests.cs | 30 +++++++++++++++++++ .../StubVersionController.cs | 22 ++++++++++++++ .../Tests.O2Bionics.Services.IdPortal.csproj | 22 ++++++++++++++ .../VersionControllerTests.cs | 26 ++++++++++++++++ 8 files changed, 157 insertions(+), 2 deletions(-) create mode 100644 src/Services/id-portal/tests/IntegrationTests.O2Bionics.Services.IdPortal/IntegrationTests.O2Bionics.Services.IdPortal.csproj create mode 100644 src/Services/id-portal/tests/IntegrationTests.O2Bionics.Services.IdPortal/VersionApiTests.cs create mode 100644 src/Services/id-portal/tests/Tests.O2Bionics.Services.IdPortal/StubVersionController.cs create mode 100644 src/Services/id-portal/tests/Tests.O2Bionics.Services.IdPortal/Tests.O2Bionics.Services.IdPortal.csproj create mode 100644 src/Services/id-portal/tests/Tests.O2Bionics.Services.IdPortal/VersionControllerTests.cs diff --git a/src/Services/id-portal/O2Bionics.Services.IdPortal.sln b/src/Services/id-portal/O2Bionics.Services.IdPortal.sln index 77539f18..88b94718 100644 --- a/src/Services/id-portal/O2Bionics.Services.IdPortal.sln +++ b/src/Services/id-portal/O2Bionics.Services.IdPortal.sln @@ -7,6 +7,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "O2Bionics.Services.IdPortal EndProject Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{0F7BEA3A-BD1E-4BE3-BBBB-CCD0100D10A5}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{7B217EFF-A101-4C6D-A3D8-2E2F3430AF6E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IntegrationTests.O2Bionics.Services.IdPortal", "tests\IntegrationTests.O2Bionics.Services.IdPortal\IntegrationTests.O2Bionics.Services.IdPortal.csproj", "{BDDE70F1-FDAB-4FC4-B07B-3D97ABA948F2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.O2Bionics.Services.IdPortal", "tests\Tests.O2Bionics.Services.IdPortal\Tests.O2Bionics.Services.IdPortal.csproj", "{D65A7929-5FDB-49A8-8547-E98B73046140}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -21,6 +27,14 @@ Global {0F7BEA3A-BD1E-4BE3-BBBB-CCD0100D10A5}.Debug|Any CPU.Build.0 = Debug|Any CPU {0F7BEA3A-BD1E-4BE3-BBBB-CCD0100D10A5}.Release|Any CPU.ActiveCfg = Release|Any CPU {0F7BEA3A-BD1E-4BE3-BBBB-CCD0100D10A5}.Release|Any CPU.Build.0 = Release|Any CPU + {BDDE70F1-FDAB-4FC4-B07B-3D97ABA948F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BDDE70F1-FDAB-4FC4-B07B-3D97ABA948F2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BDDE70F1-FDAB-4FC4-B07B-3D97ABA948F2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BDDE70F1-FDAB-4FC4-B07B-3D97ABA948F2}.Release|Any CPU.Build.0 = Release|Any CPU + {D65A7929-5FDB-49A8-8547-E98B73046140}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D65A7929-5FDB-49A8-8547-E98B73046140}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D65A7929-5FDB-49A8-8547-E98B73046140}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D65A7929-5FDB-49A8-8547-E98B73046140}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -28,4 +42,8 @@ Global GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {8AD066DD-B55F-49B5-8D69-6C076266C1B7} EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {BDDE70F1-FDAB-4FC4-B07B-3D97ABA948F2} = {7B217EFF-A101-4C6D-A3D8-2E2F3430AF6E} + {D65A7929-5FDB-49A8-8547-E98B73046140} = {7B217EFF-A101-4C6D-A3D8-2E2F3430AF6E} + EndGlobalSection EndGlobal diff --git a/src/Services/id-portal/src/O2Bionics.Services.IdPortal/Controllers/VersionController.cs b/src/Services/id-portal/src/O2Bionics.Services.IdPortal/Controllers/VersionController.cs index 0377a1f3..5402dd56 100644 --- a/src/Services/id-portal/src/O2Bionics.Services.IdPortal/Controllers/VersionController.cs +++ b/src/Services/id-portal/src/O2Bionics.Services.IdPortal/Controllers/VersionController.cs @@ -28,7 +28,7 @@ public VersionController(IWebHostEnvironment environment, ILogger - + + + + diff --git a/src/Services/id-portal/tests/IntegrationTests.O2Bionics.Services.IdPortal/IntegrationTests.O2Bionics.Services.IdPortal.csproj b/src/Services/id-portal/tests/IntegrationTests.O2Bionics.Services.IdPortal/IntegrationTests.O2Bionics.Services.IdPortal.csproj new file mode 100644 index 00000000..f439b732 --- /dev/null +++ b/src/Services/id-portal/tests/IntegrationTests.O2Bionics.Services.IdPortal/IntegrationTests.O2Bionics.Services.IdPortal.csproj @@ -0,0 +1,28 @@ + + + + net6.0 + enable + + false + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + diff --git a/src/Services/id-portal/tests/IntegrationTests.O2Bionics.Services.IdPortal/VersionApiTests.cs b/src/Services/id-portal/tests/IntegrationTests.O2Bionics.Services.IdPortal/VersionApiTests.cs new file mode 100644 index 00000000..613d7875 --- /dev/null +++ b/src/Services/id-portal/tests/IntegrationTests.O2Bionics.Services.IdPortal/VersionApiTests.cs @@ -0,0 +1,30 @@ +using System.Net.Http; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc.Testing; + +using Xunit; + +namespace IntegrationTests.O2Bionics.Services.IdPortal; + +public class VersionApiTests +{ + private readonly HttpClient _httpClient; + public VersionApiTests() + { + var webAppFactory = new WebApplicationFactory(); + _httpClient = webAppFactory.CreateDefaultClient(); + } + + [Fact] + public async Task VersionApi_Get_Test() + { + // Act + const string url = "/version"; + var response = await _httpClient.GetAsync(url); + + // Assert + response.EnsureSuccessStatusCode(); // Status Code 200-299 + Assert.Equal("application/json; charset=utf-8", + response.Content.Headers.ContentType?.ToString()); + } +} \ No newline at end of file diff --git a/src/Services/id-portal/tests/Tests.O2Bionics.Services.IdPortal/StubVersionController.cs b/src/Services/id-portal/tests/Tests.O2Bionics.Services.IdPortal/StubVersionController.cs new file mode 100644 index 00000000..abefb596 --- /dev/null +++ b/src/Services/id-portal/tests/Tests.O2Bionics.Services.IdPortal/StubVersionController.cs @@ -0,0 +1,22 @@ +using System; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Logging; +using O2Bionics.Services.IdPortal.Controllers; + +namespace Tests.O2Bionics.Services.IdPortal; + +public class StubVersionController : VersionController +{ + public string VersionString { get; init; } + +#pragma warning disable CS8618 + public StubVersionController(IWebHostEnvironment environment, +#pragma warning restore CS8618 + // ReSharper disable once ContextualLoggerProblem + ILogger logger) + : base(environment, logger) + { + } + + protected override Version GetVersion() => Version.Parse(VersionString); +} \ No newline at end of file diff --git a/src/Services/id-portal/tests/Tests.O2Bionics.Services.IdPortal/Tests.O2Bionics.Services.IdPortal.csproj b/src/Services/id-portal/tests/Tests.O2Bionics.Services.IdPortal/Tests.O2Bionics.Services.IdPortal.csproj new file mode 100644 index 00000000..96326a1e --- /dev/null +++ b/src/Services/id-portal/tests/Tests.O2Bionics.Services.IdPortal/Tests.O2Bionics.Services.IdPortal.csproj @@ -0,0 +1,22 @@ + + + + net6.0 + enable + + false + + + + + + + + + + + + + + + diff --git a/src/Services/id-portal/tests/Tests.O2Bionics.Services.IdPortal/VersionControllerTests.cs b/src/Services/id-portal/tests/Tests.O2Bionics.Services.IdPortal/VersionControllerTests.cs new file mode 100644 index 00000000..0d95eae6 --- /dev/null +++ b/src/Services/id-portal/tests/Tests.O2Bionics.Services.IdPortal/VersionControllerTests.cs @@ -0,0 +1,26 @@ +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; +using Moq; +using NUnit.Framework; + +namespace Tests.O2Bionics.Services.IdPortal; + +public class VersionControllerTests +{ + [Test] + public void VersionController_GetVersion_Test() + { + var moq = new Mock(); + var loggerMoq = new Mock>(); + var stub = new StubVersionController(moq.Object, loggerMoq.Object) + { + VersionString = "1.0.0.0" + }; + + var result = stub.Index(); + + // Assert + Assert.NotNull(result); + } +} \ No newline at end of file