Add some Tests
continuous-integration/drone/push Build is passing Details

tests
Tony Fages 1 year ago
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,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
}
}

@ -5,6 +5,8 @@ VisualStudioVersion = 17.8.34322.80
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VeraxShield", "VeraxShield\VeraxShield.csproj", "{40D16910-ADA7-496E-BA48-AA9D6FF1E502}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestVeraxShield", "TestVeraxShield\TestVeraxShield.csproj", "{7924C3CD-C50B-41D1-8A93-C4E0AF0F1B3C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -15,6 +17,10 @@ Global
{40D16910-ADA7-496E-BA48-AA9D6FF1E502}.Debug|Any CPU.Build.0 = Debug|Any CPU
{40D16910-ADA7-496E-BA48-AA9D6FF1E502}.Release|Any CPU.ActiveCfg = Release|Any CPU
{40D16910-ADA7-496E-BA48-AA9D6FF1E502}.Release|Any CPU.Build.0 = Release|Any CPU
{7924C3CD-C50B-41D1-8A93-C4E0AF0F1B3C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7924C3CD-C50B-41D1-8A93-C4E0AF0F1B3C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7924C3CD-C50B-41D1-8A93-C4E0AF0F1B3C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7924C3CD-C50B-41D1-8A93-C4E0AF0F1B3C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

@ -1,4 +1,4 @@
public class AppUtilisateur
public class ModeleAppUtilisateur
{
public string MotDePasse { get; set; }
public List<string> Roles { get; set; }
@ -8,7 +8,7 @@ public class AppUtilisateur
public string Mail { get; set; }
public AppUtilisateur(string pseudo,string nom, string prenom, string mail, string mdp, String premierRole)
public ModeleAppUtilisateur(string pseudo,string nom, string prenom, string mail, string mdp, String premierRole)
{
this.MotDePasse = mdp;
this.Pseudo = pseudo;
Loading…
Cancel
Save