Update data access layer, begin acquiring raw data

This commit is contained in:
Aaron Po
2025-11-17 02:39:40 -05:00
parent b86607e37a
commit fc2e8c9b6d
15 changed files with 166221 additions and 7 deletions

View File

@@ -0,0 +1,154 @@
using System;
using System.Collections.Generic;
using System.Linq;
using DataAccessLayer;
using DataAccessLayer.Entities;
using Xunit;
namespace DALTests
{
public class UserAccountRepositoryTests
{
private readonly UserAccountRepository _repository;
public UserAccountRepositoryTests()
{
_repository = new UserAccountRepository();
}
[Fact]
public void Add_ShouldInsertUserAccount()
{
// Arrange
var userAccount = new UserAccount
{
UserAccountID = Guid.NewGuid(),
Username = "testuser",
FirstName = "Test",
LastName = "User",
Email = "testuser@example.com",
CreatedAt = DateTime.UtcNow,
DateOfBirth = new DateTime(1990, 1, 1),
};
// Act
_repository.Add(userAccount);
var retrievedUser = _repository.GetById(userAccount.UserAccountID);
// Assert
Assert.NotNull(retrievedUser);
Assert.Equal(userAccount.Username, retrievedUser.Username);
}
[Fact]
public void GetById_ShouldReturnUserAccount()
{
// Arrange
var userId = Guid.NewGuid();
var userAccount = new UserAccount
{
UserAccountID = userId,
Username = "existinguser",
FirstName = "Existing",
LastName = "User",
Email = "existinguser@example.com",
CreatedAt = DateTime.UtcNow,
DateOfBirth = new DateTime(1985, 5, 15),
};
_repository.Add(userAccount);
// Act
var retrievedUser = _repository.GetById(userId);
// Assert
Assert.NotNull(retrievedUser);
Assert.Equal(userId, retrievedUser.UserAccountID);
}
[Fact]
public void Update_ShouldModifyUserAccount()
{
// Arrange
var userAccount = new UserAccount
{
UserAccountID = Guid.NewGuid(),
Username = "updatableuser",
FirstName = "Updatable",
LastName = "User",
Email = "updatableuser@example.com",
CreatedAt = DateTime.UtcNow,
DateOfBirth = new DateTime(1992, 3, 10),
};
_repository.Add(userAccount);
// Act
userAccount.FirstName = "Updated";
_repository.Update(userAccount);
var updatedUser = _repository.GetById(userAccount.UserAccountID);
// Assert
Assert.NotNull(updatedUser);
Assert.Equal("Updated", updatedUser.FirstName);
}
[Fact]
public void Delete_ShouldRemoveUserAccount()
{
// Arrange
var userAccount = new UserAccount
{
UserAccountID = Guid.NewGuid(),
Username = "deletableuser",
FirstName = "Deletable",
LastName = "User",
Email = "deletableuser@example.com",
CreatedAt = DateTime.UtcNow,
DateOfBirth = new DateTime(1995, 7, 20),
};
_repository.Add(userAccount);
// Act
_repository.Delete(userAccount.UserAccountID);
var deletedUser = _repository.GetById(userAccount.UserAccountID);
// Assert
Assert.Null(deletedUser);
}
[Fact]
public void GetAll_ShouldReturnAllUserAccounts()
{
// Arrange
var user1 = new UserAccount
{
UserAccountID = Guid.NewGuid(),
Username = "user1",
FirstName = "User",
LastName = "One",
Email = "user1@example.com",
CreatedAt = DateTime.UtcNow,
DateOfBirth = new DateTime(1990, 1, 1),
};
var user2 = new UserAccount
{
UserAccountID = Guid.NewGuid(),
Username = "user2",
FirstName = "User",
LastName = "Two",
Email = "user2@example.com",
CreatedAt = DateTime.UtcNow,
DateOfBirth = new DateTime(1992, 2, 2),
};
_repository.Add(user1);
_repository.Add(user2);
// Act
var allUsers = _repository.GetAll();
// Assert
Assert.NotNull(allUsers);
Assert.True(allUsers.Count() >= 2);
}
}
}