69 lines
2.5 KiB
C#

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