PlanTempusApp/Tests/PasswordHasherTest.cs

72 lines
No EOL
2 KiB
C#

using Autofac;
using System.Data;
using Insight.Database;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Microsoft.Extensions.Logging;
using Core.Telemetry;
using Core.Entities.Users;
namespace Tests
{
[TestClass]
public class PasswordHasherTests : TestFixture
{
[TestMethod]
public void HashPassword_ShouldCreateValidHashFormat()
{
// Arrange
string password = "TestPassword123";
// Act
string hashedPassword = PasswordHasher.HashPassword(password);
string[] parts = hashedPassword.Split('.');
// Assert
Assert.AreEqual(3, parts.Length);
Assert.AreEqual("100000", parts[0]);
}
[TestMethod]
public void VerifyPassword_WithCorrectPassword_ShouldReturnTrue()
{
// Arrange
string password = "TestPassword123";
string hashedPassword = PasswordHasher.HashPassword(password);
// Act
bool result = PasswordHasher.VerifyPassword(hashedPassword, password);
// Assert
Assert.IsTrue(result);
}
[TestMethod]
public void VerifyPassword_WithWrongPassword_ShouldReturnFalse()
{
// Arrange
string correctPassword = "TestPassword123";
string wrongPassword = "WrongPassword123";
string hashedPassword = PasswordHasher.HashPassword(correctPassword);
// Act
bool result = PasswordHasher.VerifyPassword(hashedPassword, wrongPassword);
// Assert
Assert.IsFalse(result);
}
[TestMethod]
public void VerifyPassword_WithInvalidHashFormat_ShouldReturnFalse()
{
// Arrange
string password = "TestPassword123";
string invalidHash = "InvalidHash";
// Act
bool result = PasswordHasher.VerifyPassword(invalidHash, password);
// Assert
Assert.IsFalse(result);
}
}
}