using ElectricalRepairServiceContract.DataModels; using ElectricalRepairServiceContract.Enums; using ElectricalRepairServiceContract.Exceptions; namespace ElectricalRepairServiceTests.DataModelsTests { [TestFixture] internal class SalaryDataModelTest { [Test] public void IdIsNullOrEmptyTest() { var salary = CreateDataModel(null, SalaryType.Salary, 1000, Guid.NewGuid().ToString(), DateTime.Now); Assert.That(() => salary.Validate(), Throws.TypeOf()); salary = CreateDataModel(string.Empty, SalaryType.Salary, 1000, Guid.NewGuid().ToString(), DateTime.Now); Assert.That(() => salary.Validate(), Throws.TypeOf()); } [Test] public void IdIsNotGuidTest() { var salary = CreateDataModel("invalid-id", SalaryType.Salary, 1000, Guid.NewGuid().ToString(), DateTime.Now); Assert.That(() => salary.Validate(), Throws.TypeOf()); } [Test] public void EmploeeIdIsNullOrEmptyTest() { var salary = CreateDataModel(Guid.NewGuid().ToString(), SalaryType.Salary, 1000, null, DateTime.Now); Assert.That(() => salary.Validate(), Throws.TypeOf()); salary = CreateDataModel(Guid.NewGuid().ToString(), SalaryType.Salary, 1000, string.Empty, DateTime.Now); Assert.That(() => salary.Validate(), Throws.TypeOf()); } [Test] public void EmploeeIdIsNotGuidTest() { var salary = CreateDataModel(Guid.NewGuid().ToString(), SalaryType.Salary, 1000, "invalid-id", DateTime.Now); Assert.That(() => salary.Validate(), Throws.TypeOf()); } [Test] public void AmountIsNegativeTest() { var salary = CreateDataModel(Guid.NewGuid().ToString(), SalaryType.Salary, -1000, Guid.NewGuid().ToString(), DateTime.Now); Assert.That(() => salary.Validate(), Throws.TypeOf()); } [Test] public void AllFieldsCorrectTest() { var id = Guid.NewGuid().ToString(); var salaryType = SalaryType.Salary; var amount = 1500; var emploeeId = Guid.NewGuid().ToString(); var date = DateTime.Now; var salary = CreateDataModel(id, salaryType, amount, emploeeId, date); Assert.That(salary.Id, Is.EqualTo(id)); Assert.That(salary.SalaryType, Is.EqualTo(salaryType)); Assert.That(salary.Amount, Is.EqualTo(amount)); Assert.That(salary.EmploeeId, Is.EqualTo(emploeeId)); Assert.That(salary.Date, Is.EqualTo(date)); } private SalaryDataModel CreateDataModel(string id, SalaryType salaryType, int amount, string emploeeId, DateTime date) => new SalaryDataModel(id, emploeeId, salaryType, amount, date); } }