using TwoFromTheCaseContracts.DataModels; using TwoFromTheCaseContracts.Exceptions; namespace TwoFromTheCaseTests.DataModelsTests; [TestFixture] class WorkerWorkDataModelTests { [Test] public void WorkerIdIsNullOrEmptyTest() { var workerWork = CreateDataModel(null, Guid.NewGuid().ToString()); Assert.That(() => workerWork.Validate(), Throws.TypeOf()); workerWork = CreateDataModel(string.Empty, Guid.NewGuid().ToString()); Assert.That(() => workerWork.Validate(), Throws.TypeOf()); } [Test] public void WorkerIdIsNotGuidTest() { var workerWork = CreateDataModel("workerId", Guid.NewGuid().ToString()); Assert.That(() => workerWork.Validate(), Throws.TypeOf()); } [Test] public void WorkIdIsNullOrEmptyTest() { var workerWork = CreateDataModel(Guid.NewGuid().ToString(), null); Assert.That(() => workerWork.Validate(), Throws.TypeOf()); workerWork = CreateDataModel(string.Empty, Guid.NewGuid().ToString()); Assert.That(() => workerWork.Validate(), Throws.TypeOf()); } [Test] public void WorkIdIsNotGuidTest() { var workerWork = CreateDataModel(Guid.NewGuid().ToString(), "workId"); Assert.That(() => workerWork.Validate(), Throws.TypeOf()); } [Test] public void AllFieldsIsCorrectTest() { var workerId = Guid.NewGuid().ToString(); var workId = Guid.NewGuid().ToString(); var workerWork = CreateDataModel(workerId, workId); Assert.That(() => workerWork.Validate(), Throws.Nothing); Assert.Multiple(() => { Assert.That(workerWork.WorkerId, Is.EqualTo(workerId)); Assert.That(workerWork.WorkId, Is.EqualTo(workId)); }); } private static WorkerWorkDataModel CreateDataModel(string? workerId, string? workId) => new(workerId, workId); }