2025-02-17 00:29:50 +04:00

64 lines
2.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TwoFromTheCasketContratcs.DataModels;
using TwoFromTheCasketContratcs.Exceptions;
namespace TwoFromTheCasketTest.DataModelsTest;
[TestFixture]
public class SalaryDataModellTests
{
[Test]
public void MasterIdIsNullOrEmptyTest()
{
var salary = CreateDataModel(string.Empty, DateTime.Now, 50000, 1000);
Assert.That(() => salary.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void MasterIdIsNotGuidTest()
{
var salary = CreateDataModel("invalid-guid", DateTime.Now, 50000, 1000);
Assert.That(() => salary.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void SalaryIsLessOrEqualToZeroTest()
{
var salary = CreateDataModel(Guid.NewGuid().ToString(), DateTime.Now, 0, 1000);
Assert.That(() => salary.Validate(), Throws.TypeOf<ValidationException>());
salary = CreateDataModel(Guid.NewGuid().ToString(), DateTime.Now, -1000, 1000);
Assert.That(() => salary.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void AllFieldsAreCorrectTest()
{
var masterId = Guid.NewGuid().ToString();
var salaryDate = DateTime.Now;
var masterSalary = 50000.0;
var prize = 1000.0;
var salary = CreateDataModel(masterId, salaryDate, masterSalary, prize);
Assert.That(() => salary.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
Assert.That(salary.MasterId, Is.EqualTo(masterId));
Assert.That(salary.SalaryDate, Is.EqualTo(salaryDate));
Assert.That(salary.Salary, Is.EqualTo(masterSalary));
Assert.That(salary.Prize, Is.EqualTo(prize));
});
}
private static SalaryDataModel CreateDataModel(string masterId, DateTime salaryDate, double masterSalary, double prize)
{
return new SalaryDataModel(masterId, salaryDate, masterSalary, prize);
}
}