From b2619f6acccd63ad6164f79b427c9caedefeeb6e Mon Sep 17 00:00:00 2001 From: csimonapastore Date: Sun, 2 Mar 2025 23:36:21 +0100 Subject: [PATCH] Adding tests on models --- .../Models/Api/Common/Role/UserRole_Tests.cs | 39 ++++++++ .../Common/User/AuthenticatedUser_Tests.cs | 51 ++++++++++ .../Auth/AuthenticateResponse_Tests.cs | 96 +++++++++++++++++++ .../Models/Api/Common/Role/UserRole.cs | 10 ++ 4 files changed, 196 insertions(+) create mode 100644 MainProject.Tests/Models/Api/Common/Role/UserRole_Tests.cs create mode 100644 MainProject.Tests/Models/Api/Common/User/AuthenticatedUser_Tests.cs create mode 100644 MainProject.Tests/Models/Api/Response/Auth/AuthenticateResponse_Tests.cs diff --git a/MainProject.Tests/Models/Api/Common/Role/UserRole_Tests.cs b/MainProject.Tests/Models/Api/Common/Role/UserRole_Tests.cs new file mode 100644 index 0000000..817bc33 --- /dev/null +++ b/MainProject.Tests/Models/Api/Common/Role/UserRole_Tests.cs @@ -0,0 +1,39 @@ +using System; +using System.Reflection; +using System.Net; +using System.Net.Http; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using BasicDotnetTemplate.MainProject; +using BasicDotnetTemplate.MainProject.Models.Api.Response; +using Microsoft.Extensions.DependencyModel.Resolution; +using BasicDotnetTemplate.MainProject.Models.Api.Common.User; +using BasicDotnetTemplate.MainProject.Models.Api.Common.Role; +using DatabaseSqlServer = BasicDotnetTemplate.MainProject.Models.Database.SqlServer; +using BasicDotnetTemplate.MainProject.Models.Api.Response.Auth; + + +namespace BasicDotnetTemplate.MainProject.Tests; + +[TestClass] +public class UserRole_Tests +{ + [TestMethod] + public void InitializeUserRoleFromRole() + { + try + { + DatabaseSqlServer.Role role = new DatabaseSqlServer.Role() + { + Name = "test" + }; + UserRole userRole = new UserRole(role); + + Assert.IsTrue(userRole.Name == role.Name); + } + catch (Exception ex) + { + Console.WriteLine(ex.InnerException); + Assert.Fail($"An exception was thrown: {ex.Message}"); + } + } +} \ No newline at end of file diff --git a/MainProject.Tests/Models/Api/Common/User/AuthenticatedUser_Tests.cs b/MainProject.Tests/Models/Api/Common/User/AuthenticatedUser_Tests.cs new file mode 100644 index 0000000..9979492 --- /dev/null +++ b/MainProject.Tests/Models/Api/Common/User/AuthenticatedUser_Tests.cs @@ -0,0 +1,51 @@ +using System; +using System.Reflection; +using System.Net; +using System.Net.Http; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using BasicDotnetTemplate.MainProject; +using BasicDotnetTemplate.MainProject.Models.Api.Response; +using Microsoft.Extensions.DependencyModel.Resolution; +using BasicDotnetTemplate.MainProject.Models.Api.Common.User; +using BasicDotnetTemplate.MainProject.Models.Api.Common.Role; +using DatabaseSqlServer = BasicDotnetTemplate.MainProject.Models.Database.SqlServer; +using BasicDotnetTemplate.MainProject.Models.Api.Response.Auth; + + +namespace BasicDotnetTemplate.MainProject.Tests; + +[TestClass] +public class AuthenticatedUser_Tests +{ + [TestMethod] + public void InitializeAuthenticatedUserFromUser() + { + try + { + DatabaseSqlServer.User user = new DatabaseSqlServer.User() + { + Username = "test", + FirstName = "test", + LastName = "test", + Email = "test", + PasswordHash = "test", + Role = new DatabaseSqlServer.Role() + { + Name = "test" + } + }; + AuthenticatedUser authenticatedUser = new AuthenticatedUser(user); + + Assert.IsTrue(authenticatedUser.Username == user.Username); + Assert.IsTrue(authenticatedUser.FirstName == user.FirstName); + Assert.IsTrue(authenticatedUser.LastName == user.LastName); + Assert.IsTrue(authenticatedUser.Email == user.Email); + Assert.IsInstanceOfType(authenticatedUser.Role, typeof(UserRole)); + } + catch (Exception ex) + { + Console.WriteLine(ex.InnerException); + Assert.Fail($"An exception was thrown: {ex.Message}"); + } + } +} \ No newline at end of file diff --git a/MainProject.Tests/Models/Api/Response/Auth/AuthenticateResponse_Tests.cs b/MainProject.Tests/Models/Api/Response/Auth/AuthenticateResponse_Tests.cs new file mode 100644 index 0000000..e47dd3d --- /dev/null +++ b/MainProject.Tests/Models/Api/Response/Auth/AuthenticateResponse_Tests.cs @@ -0,0 +1,96 @@ +using System; +using System.Reflection; +using System.Net; +using System.Net.Http; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using BasicDotnetTemplate.MainProject; +using BasicDotnetTemplate.MainProject.Models.Api.Response; +using Microsoft.Extensions.DependencyModel.Resolution; +using BasicDotnetTemplate.MainProject.Models.Api.Common.User; +using BasicDotnetTemplate.MainProject.Models.Api.Common.Role; +using DatabaseSqlServer = BasicDotnetTemplate.MainProject.Models.Database.SqlServer; +using BasicDotnetTemplate.MainProject.Models.Api.Response.Auth; + + +namespace BasicDotnetTemplate.MainProject.Tests; + +[TestClass] +public class AuthenticateResponse_Tests +{ + [TestMethod] + public void IstantiateAuthenticateResponse_OnlyStatus_Valid() + { + try + { + var authenticateResponse = new AuthenticateResponse(200, null, null); + Assert.IsTrue(authenticateResponse.Status == 200 && String.IsNullOrEmpty(authenticateResponse.Message) && authenticateResponse.Data == null); + } + catch (Exception ex) + { + Console.WriteLine(ex.InnerException); + Assert.Fail($"An exception was thrown: {ex.Message}"); + } + } + + [TestMethod] + public void IstantiateAuthenticateResponse_OnlyStatus_IsInvalid() + { + try + { + var authenticateResponse = new AuthenticateResponse(201, null, null); + Assert.IsFalse(authenticateResponse.Status == 200); + } + catch (Exception ex) + { + Console.WriteLine(ex.InnerException); + Assert.Fail($"An exception was thrown: {ex.Message}"); + } + } + + [TestMethod] + public void IstantiateAuthenticateResponse_StatusAndMessage_Valid() + { + try + { + var authenticateResponse = new AuthenticateResponse(200, "This is a test message", null); + Assert.IsTrue(authenticateResponse.Status == 200 && authenticateResponse.Message == "This is a test message" && authenticateResponse.Data == null); + } + catch (Exception ex) + { + Console.WriteLine(ex.InnerException); + Assert.Fail($"An exception was thrown: {ex.Message}"); + } + } + + [TestMethod] + public void IstantiateAuthenticateResponse_AllFields_Valid() + { + try + { + DatabaseSqlServer.User user = new DatabaseSqlServer.User() + { + Username = "test", + FirstName = "test", + LastName = "test", + Email = "test", + PasswordHash = "test", + Role = new DatabaseSqlServer.Role() + { + Name = "test" + } + }; + AuthenticatedUser data = new AuthenticatedUser(user); + var authenticateResponse = new AuthenticateResponse(200, "This is a test message", data); + Assert.IsTrue(authenticateResponse.Status == 200 && authenticateResponse.Message == "This is a test message" && authenticateResponse.Data == data); + } + catch (Exception ex) + { + Console.WriteLine(ex.InnerException); + Assert.Fail($"An exception was thrown: {ex.Message}"); + } + } +} + + + + diff --git a/MainProject/Models/Api/Common/Role/UserRole.cs b/MainProject/Models/Api/Common/Role/UserRole.cs index a57914a..b568ca7 100644 --- a/MainProject/Models/Api/Common/Role/UserRole.cs +++ b/MainProject/Models/Api/Common/Role/UserRole.cs @@ -1,3 +1,5 @@ +using DatabaseSqlServer = BasicDotnetTemplate.MainProject.Models.Database.SqlServer; + namespace BasicDotnetTemplate.MainProject.Models.Api.Common.Role; public class UserRole @@ -6,4 +8,12 @@ public class UserRole public string? Guid { get; set; } public string? Name { get; set; } #nullable disable + + public UserRole() {} + + public UserRole(DatabaseSqlServer.Role role) + { + Guid = role.Guid; + Name = role.Name; + } }