2025-02-13 16:13:21 +04:00
|
|
|
using System;
|
|
|
|
using CandyHouseBase.DataModels;
|
|
|
|
using CandyHouseBase.Exceptions;
|
|
|
|
using NUnit.Framework;
|
|
|
|
|
|
|
|
namespace CandyHouseTests.DataModelsTests
|
|
|
|
{
|
|
|
|
public class SalaryDataModelTests
|
|
|
|
{
|
|
|
|
[Test]
|
|
|
|
public void CreateSalaryDataModel_ValidData_ShouldCreateSuccessfully()
|
|
|
|
{
|
|
|
|
var id = Guid.NewGuid().ToString();
|
|
|
|
var pekarId = Guid.NewGuid().ToString();
|
|
|
|
var period = new DateTime(2023, 10, 1);
|
|
|
|
var baseRate = 1000m;
|
|
|
|
var bonusRate = 200m;
|
|
|
|
var totalSalary = 1200m;
|
|
|
|
|
2025-02-25 15:42:57 +04:00
|
|
|
var salaryData = new SalaryDataModel(id, pekarId, period, baseRate, bonusRate, totalSalary);
|
2025-02-13 16:13:21 +04:00
|
|
|
|
|
|
|
Assert.AreEqual(id, salaryData.Id);
|
|
|
|
Assert.AreEqual(pekarId, salaryData.PekarId);
|
|
|
|
Assert.AreEqual(period, salaryData.Period);
|
|
|
|
Assert.AreEqual(baseRate, salaryData.BaseRate);
|
|
|
|
Assert.AreEqual(bonusRate, salaryData.BonusRate);
|
|
|
|
Assert.AreEqual(totalSalary, salaryData.TotalSalary);
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
public void CreateSalaryDataModel_InvalidId_ShouldThrowValidationException()
|
|
|
|
{
|
|
|
|
var invalidId = "";
|
|
|
|
var pekarId = Guid.NewGuid().ToString();
|
|
|
|
var period = new DateTime(2023, 10, 1);
|
|
|
|
var baseRate = 1000m;
|
|
|
|
var bonusRate = 200m;
|
|
|
|
var totalSalary = 1200m;
|
2025-02-25 15:42:57 +04:00
|
|
|
var salary = new SalaryDataModel(invalidId, pekarId, period, baseRate, bonusRate,
|
2025-02-13 16:13:21 +04:00
|
|
|
totalSalary);
|
|
|
|
Assert.Throws<ValidationException>(() => salary.Validate());}
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
public void CreateSalaryDataModel_InvalidBaseRate_ShouldThrowValidationException()
|
|
|
|
{
|
|
|
|
var id = Guid.NewGuid().ToString();
|
|
|
|
var pekarId = Guid.NewGuid().ToString();
|
|
|
|
var period = new DateTime(2023, 10, 1);
|
|
|
|
var invalidBaseRate = -1000m;
|
|
|
|
var bonusRate = 200m;
|
|
|
|
var totalSalary = 1200m;
|
2025-02-25 15:42:57 +04:00
|
|
|
var salary = new SalaryDataModel(id, pekarId, period, invalidBaseRate, bonusRate,
|
2025-02-13 16:13:21 +04:00
|
|
|
totalSalary);
|
|
|
|
Assert.Throws<ValidationException>(() => salary.Validate());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|