From a0c93ea58751ed6a717a02da3f8e9c3b218453f3 Mon Sep 17 00:00:00 2001 From: csimonapastore Date: Mon, 3 Mar 2025 21:54:03 +0100 Subject: [PATCH] Adding JwtService tests + fixed issues --- .../Controllers/AuthController_Tests.cs | 6 +- .../Services/JwtService_Tests.cs | 76 +++++++++++++++++++ MainProject.Tests/TestsUtils/TestUtils.cs | 9 +++ 3 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 MainProject.Tests/Services/JwtService_Tests.cs diff --git a/MainProject.Tests/Controllers/AuthController_Tests.cs b/MainProject.Tests/Controllers/AuthController_Tests.cs index 758f913..ede9785 100644 --- a/MainProject.Tests/Controllers/AuthController_Tests.cs +++ b/MainProject.Tests/Controllers/AuthController_Tests.cs @@ -102,7 +102,7 @@ public class AuthController_Tests { Data = null }; - AuthenticatedUser authenticatedUser = null; + AuthenticatedUser? authenticatedUser = null; authServiceMock.Setup(s => s.AuthenticateAsync(It.IsAny())).ReturnsAsync(authenticatedUser); ObjectResult response = (ObjectResult)(await controller.AuthenticateAsync(request)); @@ -142,7 +142,7 @@ public class AuthController_Tests Password = "d2ejdI1f4GYpq2kTB1nmeQkZXqR3QSxH8Yqkl7" } }; - AuthenticatedUser authenticatedUser = null; + AuthenticatedUser? authenticatedUser = null; authServiceMock.Setup(s => s.AuthenticateAsync(It.IsAny())).ReturnsAsync(authenticatedUser); NotFoundResult response = (NotFoundResult)(await controller.AuthenticateAsync(request)); @@ -169,7 +169,7 @@ public class AuthController_Tests { Data = null }; - AuthenticatedUser authenticatedUser = null; + AuthenticatedUser? authenticatedUser = null; authServiceMock.Setup(s => s.AuthenticateAsync(It.IsAny())).ReturnsAsync(authenticatedUser); controller.ModelState.AddModelError("Data", "Invalid data"); ObjectResult response = (ObjectResult)(await controller.AuthenticateAsync(request)); diff --git a/MainProject.Tests/Services/JwtService_Tests.cs b/MainProject.Tests/Services/JwtService_Tests.cs new file mode 100644 index 0000000..f3db28d --- /dev/null +++ b/MainProject.Tests/Services/JwtService_Tests.cs @@ -0,0 +1,76 @@ +using BasicDotnetTemplate.MainProject.Models.Settings; +using Microsoft.AspNetCore.Builder; +using Microsoft.EntityFrameworkCore; +using BasicDotnetTemplate.MainProject.Utils; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Configuration; +using Moq; +using Newtonsoft.Json; +using BasicDotnetTemplate.MainProject.Core.Database; +using BasicDotnetTemplate.MainProject.Services; +using BasicDotnetTemplate.MainProject.Models.Api.Response; +using BasicDotnetTemplate.MainProject.Models.Api.Request.Auth; +using BasicDotnetTemplate.MainProject.Models.Api.Data.Auth; +using BasicDotnetTemplate.MainProject.Models.Api.Response.Auth; +using DatabaseSqlServer = BasicDotnetTemplate.MainProject.Models.Database.SqlServer; + + + +namespace BasicDotnetTemplate.MainProject.Tests; + +[TestClass] +public class JwtService_Tests +{ + [TestMethod] + public void Inizialize() + { + try + { + var jwtService = TestUtils.CreateJwtService(); + if(jwtService != null) + { + Assert.IsInstanceOfType(jwtService, typeof(JwtService)); + } + else + { + Assert.Fail($"JwtService is null"); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.InnerException); + Assert.Fail($"An exception was thrown: {ex.Message}"); + } + } + + [TestMethod] + public async Task GenerateToken() + { + try + { + var jwtService = TestUtils.CreateJwtService(); + var testString = "test"; + if(jwtService != null) + { + var jwt = jwtService.GenerateToken(testString, testString); + Assert.IsTrue(jwt != null); + Assert.IsInstanceOfType(jwt, typeof(string)); + } + else + { + Assert.Fail($"JwtService is null"); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.InnerException); + Assert.Fail($"An exception was thrown: {ex.Message}"); + } + } + + +} + + + + diff --git a/MainProject.Tests/TestsUtils/TestUtils.cs b/MainProject.Tests/TestsUtils/TestUtils.cs index 73b3406..8eea9a1 100644 --- a/MainProject.Tests/TestsUtils/TestUtils.cs +++ b/MainProject.Tests/TestsUtils/TestUtils.cs @@ -61,6 +61,15 @@ public static class TestUtils SqlServerContext sqlServerContext = new SqlServerContext(optionsBuilder.Options); return new UserService(configuration, sqlServerContext); } + + public static JwtService CreateJwtService() + { + IConfiguration configuration = CreateConfiguration(); + var optionsBuilder = new DbContextOptionsBuilder(); + optionsBuilder.UseSqlServer("test"); + SqlServerContext sqlServerContext = new SqlServerContext(optionsBuilder.Options); + return new JwtService(configuration, sqlServerContext); + } }