Premiere commit - Omika
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user