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 totalQuantity = 50; var totalSalary = 1200m; var salaryData = new SalaryDataModel(id, pekarId, period, baseRate, bonusRate, totalQuantity, totalSalary); 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(totalQuantity, salaryData.TotalQuantity); 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 totalQuantity = 50; var totalSalary = 1200m; var salary = new SalaryDataModel(invalidId, pekarId, period, baseRate, bonusRate, totalQuantity, totalSalary); Assert.Throws(() => 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 totalQuantity = 50; var totalSalary = 1200m; var salary = new SalaryDataModel(id, pekarId, period, invalidBaseRate, bonusRate, totalQuantity, totalSalary); Assert.Throws(() => salary.Validate()); } } }