Unit test improvements.
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
using FinancialApi.Domain.Entities;
|
||||
using FinancialApi.Domain.Exceptions;
|
||||
using FluentAssertions;
|
||||
|
||||
namespace FinancialApi.Domain.Tests;
|
||||
|
||||
public class AccountTests
|
||||
{
|
||||
[Theory]
|
||||
[InlineData(AccountType.Credit)]
|
||||
public void CreateCreditAccountType_ShouldAllowNegativeBalance(AccountType accountType)
|
||||
{
|
||||
var act = () => new Account(1, -100, accountType);
|
||||
|
||||
act()
|
||||
.Balance.Should()
|
||||
.BeNegative();
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(AccountType.Debit)]
|
||||
[InlineData(AccountType.Revenue)]
|
||||
[InlineData(AccountType.Liability)]
|
||||
public void CreateDebitAccountType_ShouldNotAllowNegativeBalance(AccountType accountType)
|
||||
{
|
||||
var act = () => new Account(1, -100, accountType);
|
||||
|
||||
act.Should()
|
||||
.Throw<InvalidStartingBalanceException>();
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(AccountType.Credit)]
|
||||
public void GivenCreditAccountType_ShouldAllowNegativeBalance(AccountType accountType)
|
||||
{
|
||||
var account = new Account(1, 0, accountType);
|
||||
|
||||
var updatedAccount = account.ApplyPosting(100, EntryType.Debit);
|
||||
|
||||
updatedAccount.Balance.Should()
|
||||
.BeNegative();
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(AccountType.Debit)]
|
||||
[InlineData(AccountType.Revenue)]
|
||||
[InlineData(AccountType.Liability)]
|
||||
public void GivenDebitAccountType_ShouldNotAllowNegativeBalance(AccountType accountType)
|
||||
{
|
||||
var account = new Account(1, 0, accountType);
|
||||
|
||||
var act = () => account.ApplyPosting(100, EntryType.Debit);
|
||||
|
||||
act.Should()
|
||||
.Throw<InsufficientFundsException>();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user