SWPCore/Tests/Entities/UserTests.cs

83 lines
No EOL
2.2 KiB
C#

using Microsoft.VisualStudio.TestTools.UnitTesting;
using Shouldly;
using SWP.Core.Entities.Users;
using SWP.Core.X.TDD.TestHelpers;
namespace SWP.Core.X.TDD.Entities;
[TestClass]
public class UserTests
{
[TestMethod]
public void User_ShouldHaveBasicProperties()
{
// Arrange & Act
var user = new User
{
Id = 1,
Email = "test@example.com",
PasswordHash = "hashedPassword",
SecurityStamp = "securityStamp",
EmailConfirmed = true,
CreatedDate = DateTime.UtcNow
};
// Assert
user.Id.ShouldBe(1);
user.Email.ShouldBe("test@example.com");
user.PasswordHash.ShouldBe("hashedPassword");
user.SecurityStamp.ShouldBe("securityStamp");
user.EmailConfirmed.ShouldBeTrue();
user.CreatedDate.ShouldBeInRange(DateTime.UtcNow.AddMinutes(-1), DateTime.UtcNow.AddMinutes(1));
}
[TestMethod]
public void TestDataBuilder_ShouldCreateValidUser()
{
// Act
var user = TestDataBuilder.Users.CreateTestUser();
// Assert
user.ShouldNotBeNull();
user.Email.ShouldNotBeNullOrEmpty();
user.Email.ShouldContain("@example.com");
user.CreatedDate.ShouldBeInRange(DateTime.UtcNow.AddMinutes(-1), DateTime.UtcNow.AddMinutes(1));
}
[TestMethod]
public void TestDataBuilder_ShouldCreateUserWithCustomEmail()
{
// Arrange
var customEmail = "custom@test.com";
// Act
var user = TestDataBuilder.Users.CreateTestUser(customEmail);
// Assert
user.Email.ShouldBe(customEmail);
}
}
[TestClass]
public class OrganizationTests
{
[TestMethod]
public void Organization_ShouldHaveBasicProperties()
{
// Arrange & Act
var org = new Organization
{
Id = 1,
ConnectionString = "test connection",
CreatedDate = DateTime.UtcNow,
CreatedBy = 1,
IsActive = true
};
// Assert
org.Id.ShouldBe(1);
org.ConnectionString.ShouldBe("test connection");
org.CreatedBy.ShouldBe(1);
org.IsActive.ShouldBeTrue();
}
}