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()); } [Test] public void MasterIdIsNotGuidTest() { var salary = CreateDataModel("invalid-guid", DateTime.Now, 50000, 1000); Assert.That(() => salary.Validate(), Throws.TypeOf()); } [Test] public void SalaryIsLessOrEqualToZeroTest() { var salary = CreateDataModel(Guid.NewGuid().ToString(), DateTime.Now, 0, 1000); Assert.That(() => salary.Validate(), Throws.TypeOf()); salary = CreateDataModel(Guid.NewGuid().ToString(), DateTime.Now, -1000, 1000); Assert.That(() => salary.Validate(), Throws.TypeOf()); } [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); } }