using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; using HamContract.DataModels; namespace HamTests.DataModelsTest; [TestFixture] internal class SalaryDataModelTests { [Test] public void WorkerIdIsEmptyTest() { var salary = CreateDataModel(null, DateTime.Now, 10); Assert.That(() => salary.Validate(), Throws.TypeOf()); salary = CreateDataModel(string.Empty, DateTime.Now, 10); Assert.That(() => salary.Validate(), Throws.TypeOf()); } [Test] public void EmployeeIdIsNotGuidTest() { var salary = CreateDataModel("employeeId", DateTime.Now, 10); Assert.That(() => salary.Validate(), Throws.TypeOf()); } [Test] public void PriceIsLessOrZeroTest() { var salary = CreateDataModel(Guid.NewGuid().ToString(), DateTime.Now, 0); Assert.That(() => salary.Validate(), Throws.TypeOf()); salary = CreateDataModel(Guid.NewGuid().ToString(), DateTime.Now, -10); Assert.That(() => salary.Validate(), Throws.TypeOf()); } [Test] public void AllFieldsIsCorrectTest() { var employeeId = Guid.NewGuid().ToString(); var date = DateTime.Now.AddDays(-3).AddMinutes(-5); var Salary = 10; var salary = CreateDataModel(employeeId,date, Salary); Assert.That(() => salary.Validate(), Throws.Nothing); Assert.Multiple(() => { Assert.That(salary.EmployeeId, Is.EqualTo(employeeId)); Assert.That(salary.Date, Is.EqualTo(date)); Assert.That(salary.Salary, Is.EqualTo(Salary)); }); } private static SalaryDataModel CreateDataModel(string? employeeId, DateTime date, double Salary) => new(employeeId, date, Salary); }