tests(tests.common): add class library for sharing code amongst test projects

This commit is contained in:
Stevan Freeborn
2026-03-10 07:41:23 -05:00
parent 091fa6f01c
commit c713a5448d
9 changed files with 392 additions and 0 deletions
@@ -0,0 +1,73 @@
namespace FiscalOS.Tests.Common.Data;
public sealed class UserBuilder
{
private string _username = "username";
private string _password = "hashedPassword";
private EncryptedDataKey _dataKey = EncryptedDataKey.From(
"keyUsed",
"encryptedKey"
);
private readonly List<Institution> _instituions = [];
private UserBuilder()
{
}
public static UserBuilder Create()
{
return new();
}
public UserBuilder WithUsername(string username)
{
_username = username;
return this;
}
public UserBuilder WithPassword(string password)
{
_password = password;
return this;
}
public UserBuilder WithDataKey(EncryptedDataKey key)
{
_dataKey = key;
return this;
}
public UserBuilder WithInstitution(Action<InstitutionBuilder>? action = null)
{
var ib = InstitutionBuilder.Create();
action?.Invoke(ib);
_instituions.Add(ib.Build());
return this;
}
public User Build()
{
var user = User.From(
_username,
_password,
_dataKey
);
foreach (var institution in _instituions)
{
user.AddInstitution(institution);
foreach (var account in institution.Accounts)
{
user.AddAccount(account);
foreach (var transaction in account.Transactions)
{
user.AddTransaction(transaction);
}
}
}
return user;
}
}