using TheBlacksmithVakulaContract.DataModels; using TheBlacksmithVakulaContract.Exceptions; namespace TheBlacksmithVakulaTests.DataModelsTests { [TestFixture] public class BlacksmithDataModelTests { [Test] public void IdIsNullOrEmptyTest() { var blacksmith = CreateDataModel(null, "fio", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now, false); Assert.That(() => blacksmith.Validate(), Throws.TypeOf()); blacksmith = CreateDataModel(string.Empty, "fio", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now, false); Assert.That(() => blacksmith.Validate(), Throws.TypeOf()); } [Test] public void IdIsNotGuidTest() { var blacksmith = CreateDataModel("id", "fio", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now, false); Assert.That(() => blacksmith.Validate(), Throws.TypeOf()); } [Test] public void FIOIsNullOrEmptyTest() { var blacksmith = CreateDataModel(Guid.NewGuid().ToString(), null, Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now, false); Assert.That(() => blacksmith.Validate(), Throws.TypeOf()); blacksmith = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now, false); Assert.That(() => blacksmith.Validate(), Throws.TypeOf()); } [Test] public void RankIdIsNullOrEmptyTest() { var blacksmith = CreateDataModel(Guid.NewGuid().ToString(), "fio", null, DateTime.Now.AddYears(-18), DateTime.Now, false); Assert.That(() => blacksmith.Validate(), Throws.TypeOf()); blacksmith = CreateDataModel(Guid.NewGuid().ToString(), "fio", string.Empty, DateTime.Now.AddYears(-18), DateTime.Now, false); Assert.That(() => blacksmith.Validate(), Throws.TypeOf()); } [Test] public void RankIdIsNotGuidTest() { var blacksmith = CreateDataModel(Guid.NewGuid().ToString(), "fio", "rankId", DateTime.Now.AddYears(-18), DateTime.Now, false); Assert.That(() => blacksmith.Validate(), Throws.TypeOf()); } [Test] public void BirthDateIsNotCorrectTest() { var blacksmith = CreateDataModel(Guid.NewGuid().ToString(), "fio", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-16).AddDays(1), DateTime.Now, false); Assert.That(() => blacksmith.Validate(), Throws.TypeOf()); } [Test] public void BirthDateAndEmploymentDateIsNotCorrectTest() { var blacksmith = CreateDataModel(Guid.NewGuid().ToString(), "fio", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now.AddYears(- 18).AddDays(-1), false); Assert.That(() => blacksmith.Validate(), Throws.TypeOf()); blacksmith = CreateDataModel(Guid.NewGuid().ToString(), "fio", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now.AddYears(- 16), false); Assert.That(() => blacksmith.Validate(), Throws.TypeOf()); } [Test] public void AllFieldsIsCorrectTest() { var id = Guid.NewGuid().ToString(); var fio = "fio"; var rankId = Guid.NewGuid().ToString(); var birthDate = DateTime.Now.AddYears(-16).AddDays(-1); var employmentDate = DateTime.Now; var isDelete = false; var blacksmith = CreateDataModel(id, fio, rankId, birthDate, employmentDate, isDelete); Assert.That(() => blacksmith.Validate(), Throws.Nothing); Assert.Multiple(() => { Assert.That(blacksmith.Id, Is.EqualTo(id)); Assert.That(blacksmith.FIO, Is.EqualTo(fio)); Assert.That(blacksmith.RankId, Is.EqualTo(rankId)); Assert.That(blacksmith.BirthDate, Is.EqualTo(birthDate)); Assert.That(blacksmith.EmploymentDate, Is.EqualTo(employmentDate)); Assert.That(blacksmith.IsDeleted, Is.EqualTo(isDelete)); }); } private static BlacksmithDataModel CreateDataModel(string? id, string? fio, string? rankId, DateTime birthDate, DateTime employmentDate, bool isDeleted) => new(id, fio, rankId, birthDate, employmentDate, isDeleted); } }