Premiere commit - Omika

This commit is contained in:
2026-10-23 18:46:50 +02:00
commit 8ea76c1b24
2155 changed files with 984301 additions and 0 deletions
@@ -0,0 +1,40 @@
using Omika.Core.Contracts.Security;
namespace Omika.Tests.Contracts.Security;
/// <summary>
/// Tests de sécurité du contrat <see cref="LoginRequest"/> : le mot de passe
/// ne doit jamais être exposé par <see cref="LoginRequest.ToString"/>.
/// </summary>
public class LoginRequestTests
{
[Fact]
public void ToString_NeverExposesPassword()
{
const string password = "MotDePasseUltraSecret123!";
var request = new LoginRequest { Login = "jean.dupont", Password = password };
string text = request.ToString();
Assert.DoesNotContain(password, text, StringComparison.Ordinal);
Assert.Contains(request.Login, text, StringComparison.Ordinal);
}
[Fact]
public void ToString_IndicatesWhetherPasswordIsPresent()
{
var withPassword = new LoginRequest { Login = "jean.dupont", Password = "secret" };
var withoutPassword = new LoginRequest { Login = "jean.dupont", Password = null };
Assert.Contains("HasPassword = True", withPassword.ToString(), StringComparison.Ordinal);
Assert.Contains("HasPassword = False", withoutPassword.ToString(), StringComparison.Ordinal);
}
[Fact]
public void ToString_EmptyPasswordIsTreatedAsAbsent()
{
var request = new LoginRequest { Login = "jean.dupont", Password = string.Empty };
Assert.Contains("HasPassword = False", request.ToString(), StringComparison.Ordinal);
}
}