Add some Tests ✅
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
d3dd10723b
commit
40662b1340
@ -0,0 +1,15 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Rider ignored files
|
||||
/.idea.VeraxShield.iml
|
||||
/contentModel.xml
|
||||
/modules.xml
|
||||
/projectSettingsUpdater.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
||||
# GitHub Copilot persisted chat sessions
|
||||
/copilot/chatSessions
|
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="UserContentModel">
|
||||
<attachedFolders />
|
||||
<explicitIncludes />
|
||||
<explicitExcludes />
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1 @@
|
||||
global using Xunit;
|
@ -0,0 +1,47 @@
|
||||
namespace TestVeraxShield;
|
||||
|
||||
public class ModeleAppUtilisateurTests
|
||||
{
|
||||
|
||||
[Fact]
|
||||
public void Constructeur_DoitInitialiserProprietes()
|
||||
{
|
||||
// Arrange & Act
|
||||
var utilisateur = new ModeleAppUtilisateur("pseudoTest", "NomTest", "PrenomTest", "email@test.com", "motdepasse", "RoleTest");
|
||||
|
||||
// Assert
|
||||
Assert.Equal("pseudoTest", utilisateur.Pseudo);
|
||||
Assert.Equal("NomTest", utilisateur.Nom);
|
||||
Assert.Equal("PrenomTest", utilisateur.Prenom);
|
||||
Assert.Equal("email@test.com", utilisateur.Mail);
|
||||
Assert.Equal("motdepasse", utilisateur.MotDePasse);
|
||||
Assert.Contains("RoleTest", utilisateur.Roles);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AjouterRole_DoItAjouterNouveauRole()
|
||||
{
|
||||
// Arrange
|
||||
var utilisateur = new ModeleAppUtilisateur("pseudoTest", "NomTest", "PrenomTest", "email@test.com", "motdepasse", "RoleTest");
|
||||
|
||||
// Act
|
||||
utilisateur.ajouterRole("NouveauRole");
|
||||
|
||||
// Assert
|
||||
Assert.Contains("NouveauRole", utilisateur.Roles);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SupprimerRole_DoItSupprimerRoleExistant()
|
||||
{
|
||||
// Arrange
|
||||
var utilisateur = new ModeleAppUtilisateur("pseudoTest", "NomTest", "PrenomTest", "email@test.com", "motdepasse", "RoleTest");
|
||||
utilisateur.ajouterRole("NouveauRole");
|
||||
|
||||
// Act
|
||||
utilisateur.supprimerRole("RoleTest");
|
||||
|
||||
// Assert
|
||||
Assert.DoesNotContain("RoleTest", utilisateur.Roles);
|
||||
}
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
namespace TestVeraxShield;
|
||||
|
||||
public class ModeleCurrentUserTests
|
||||
{
|
||||
[Fact]
|
||||
public void InitializesCorrectly()
|
||||
{
|
||||
var utilisateur = new UtilisateurCourant();
|
||||
|
||||
Assert.Null(utilisateur.Claims);
|
||||
Assert.False(utilisateur.EstAuthentifie);
|
||||
Assert.Null(utilisateur.Pseudo);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AddsAndUpdatesClaimsCorrectly()
|
||||
{
|
||||
var utilisateur = new UtilisateurCourant { Claims = new Dictionary<string, string>() };
|
||||
utilisateur.Claims.Add("role", "user");
|
||||
|
||||
Assert.Equal("user", utilisateur.Claims["role"]);
|
||||
|
||||
utilisateur.Claims["role"] = "admin";
|
||||
Assert.Equal("admin", utilisateur.Claims["role"]);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void RemovesClaimsCorrectly()
|
||||
{
|
||||
var utilisateur = new UtilisateurCourant { Claims = new Dictionary<string, string>() };
|
||||
utilisateur.Claims.Add("role", "user");
|
||||
utilisateur.Claims.Remove("role");
|
||||
|
||||
Assert.False(utilisateur.Claims.ContainsKey("role"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TogglesAuthenticationState()
|
||||
{
|
||||
var utilisateur = new UtilisateurCourant();
|
||||
utilisateur.EstAuthentifie = true;
|
||||
|
||||
Assert.True(utilisateur.EstAuthentifie);
|
||||
|
||||
utilisateur.EstAuthentifie = false;
|
||||
Assert.False(utilisateur.EstAuthentifie);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void UpdatesPseudoCorrectly()
|
||||
{
|
||||
var utilisateur = new UtilisateurCourant();
|
||||
utilisateur.Pseudo = "TestUser";
|
||||
|
||||
Assert.Equal("TestUser", utilisateur.Pseudo);
|
||||
}
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
using VeraxShield.modele.utilisateurs;
|
||||
|
||||
namespace TestVeraxShield;
|
||||
|
||||
public class ModeleUtilisateurTests
|
||||
{
|
||||
[Fact]
|
||||
public void ConstructorAssignsPropertiesCorrectly()
|
||||
{
|
||||
// Arrange
|
||||
string expectedPseudo = "TestPseudo";
|
||||
string expectedNom = "TestNom";
|
||||
string expectedPrenom = "TestPrenom";
|
||||
string expectedRole = "TestRole";
|
||||
string expectedMdp = "TestMdp";
|
||||
string expectedMail = "test@mail.com";
|
||||
bool expectedIsBan = true;
|
||||
|
||||
// Act
|
||||
Utilisateur utilisateur = new Utilisateur(expectedPseudo, expectedNom, expectedPrenom, expectedRole, expectedMdp, expectedMail, expectedIsBan);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expectedPseudo, utilisateur.Pseudo);
|
||||
Assert.Equal(expectedNom, utilisateur.Nom);
|
||||
Assert.Equal(expectedPrenom, utilisateur.Prenom);
|
||||
Assert.Equal(expectedRole, utilisateur.Role);
|
||||
Assert.Equal(expectedMdp, utilisateur.Mdp);
|
||||
Assert.Equal(expectedMail, utilisateur.Mail);
|
||||
Assert.Equal(expectedIsBan, utilisateur.IsBan);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("NewPseudo", "NewNom", "NewPrenom", "NewRole", "NewMdp", "new@mail.com", false)]
|
||||
[InlineData("AnotherPseudo", "AnotherNom", "AnotherPrenom", "AnotherRole", "AnotherMdp", "another@mail.com", true)]
|
||||
public void PropertiesUpdateCorrectly(string pseudo, string nom, string prenom, string role, string mdp, string mail, bool isBan)
|
||||
{
|
||||
// Arrange
|
||||
Utilisateur utilisateur = new Utilisateur(pseudo, nom, prenom, role, mdp, mail, isBan);
|
||||
|
||||
// Act - changing values to test setter
|
||||
string updatedPseudo = pseudo + "Update";
|
||||
string updatedNom = nom + "Update";
|
||||
string updatedPrenom = prenom + "Update";
|
||||
string updatedRole = role + "Update";
|
||||
string updatedMdp = mdp + "Update";
|
||||
string updatedMail = "updated@" + mail;
|
||||
bool updatedIsBan = !isBan;
|
||||
|
||||
utilisateur.Pseudo = updatedPseudo;
|
||||
utilisateur.Nom = updatedNom;
|
||||
utilisateur.Prenom = updatedPrenom;
|
||||
utilisateur.Role = updatedRole;
|
||||
utilisateur.Mdp = updatedMdp;
|
||||
utilisateur.Mail = updatedMail;
|
||||
utilisateur.IsBan = updatedIsBan;
|
||||
|
||||
// Assert
|
||||
Assert.Equal(updatedPseudo, utilisateur.Pseudo);
|
||||
Assert.Equal(updatedNom, utilisateur.Nom);
|
||||
Assert.Equal(updatedPrenom, utilisateur.Prenom);
|
||||
Assert.Equal(updatedRole, utilisateur.Role);
|
||||
Assert.Equal(updatedMdp, utilisateur.Mdp);
|
||||
Assert.Equal(updatedMail, utilisateur.Mail);
|
||||
Assert.Equal(updatedIsBan, utilisateur.IsBan);
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
|
||||
<IsPackable>false</IsPackable>
|
||||
<IsTestProject>true</IsTestProject>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="bunit.web" Version="1.27.17" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.0"/>
|
||||
<PackageReference Include="xunit" Version="2.4.2"/>
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.0">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\VeraxShield\VeraxShield.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Remove="factoriesTests\**" />
|
||||
<Compile Remove="ModeleTests\**" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Remove="factoriesTests\**" />
|
||||
<EmbeddedResource Remove="ModeleTests\**" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Remove="factoriesTests\**" />
|
||||
<None Remove="ModeleTests\**" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,35 @@
|
||||
namespace TestVeraxShield.factoriesTests;
|
||||
|
||||
using Xunit;
|
||||
using VeraxShield.factories;
|
||||
using VeraxShield.composants.formulaires.modeles;
|
||||
using VeraxShield.modele.utilisateurs;
|
||||
|
||||
public class UtilisateursFactoryTests
|
||||
{
|
||||
[Fact]
|
||||
public void ConvertsToUtilisateur_WithNewPasswordHashing()
|
||||
{
|
||||
// Arrange
|
||||
var modele = new FormulaireAjoutModele { Mdp = "newPassword", /* other properties */ };
|
||||
|
||||
// Act
|
||||
var utilisateur = UtilisateursFactory.toUtilisateur(modele);
|
||||
|
||||
// Assert
|
||||
Assert.NotEqual("newPassword", utilisateur.Mdp);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ConvertsToModele_FromUtilisateur()
|
||||
{
|
||||
// Arrange
|
||||
var utilisateur = new Utilisateur("pseudo", "nom", "prenom", "role", "mdp", "mail", false);
|
||||
|
||||
// Act
|
||||
var modele = UtilisateursFactory.toModele(utilisateur);
|
||||
|
||||
// Assert
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in new issue