2025-02-13 18:55:25 +04:00

79 lines
3.3 KiB
C#

using ElectricalRepairServiceContract.DataModels;
using ElectricalRepairServiceContract.Exceptions;
namespace ElectricalRepairServiceTests.DataModelsTests
{
[TestFixture]
internal class DetailsDataModelTest
{
[Test]
public void IdIsNullOrEmptyTest()
{
var details = CreateDataModel(null, "name", 1, 1, DateTime.Now, null, null);
Assert.That(() => details.Validate(), Throws.TypeOf<ValidationException>());
details = CreateDataModel(string.Empty, "name", 1, 1, DateTime.Now, null, null);
Assert.That(() => details.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void IdIsNotGuidTest()
{
var details = CreateDataModel("invalid-id", "name", 1, 1, DateTime.Now, null, null);
Assert.That(() => details.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void NameIsNullOrEmptyTest()
{
var details = CreateDataModel(Guid.NewGuid().ToString(), null, 1, 1, DateTime.Now, null, null);
Assert.That(() => details.Validate(), Throws.TypeOf<ValidationException>());
details = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, 1, 1, DateTime.Now, null, null);
Assert.That(() => details.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void CountIsNegativeTest()
{
var details = CreateDataModel(Guid.NewGuid().ToString(), "name", -1, 10, DateTime.Now, null, null);
Assert.That(() => details.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void OldCountIsNegativeTest()
{
var details = CreateDataModel(Guid.NewGuid().ToString(), "name", 10, -1, DateTime.Now, null, null);
Assert.That(() => details.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void AllFieldsCorrectTest()
{
var id = Guid.NewGuid().ToString();
var name = "ValidName";
var count = 10;
var oldCount = 10;
var dateTime = DateTime.Now;
List<DetailDeliveryDataModel> detailsDelivery = [new DetailDeliveryDataModel(null, null, 0, DateTime.Now)];
List<DetailsUseDataModel> detailsUses = [new DetailsUseDataModel(null, null, 0)];
var details = CreateDataModel(id, name, count, oldCount, dateTime, detailsDelivery, detailsUses);
Assert.That(details.Id, Is.EqualTo(id));
Assert.That(details.Name, Is.EqualTo(name));
Assert.That(details.Count, Is.EqualTo(count));
Assert.That(details.OldCount, Is.EqualTo(oldCount));
Assert.That(details.UpdateDate, Is.EqualTo(dateTime));
Assert.That(details.DetailsDelivery, Is.EqualTo(detailsDelivery));
Assert.That(details.DetailsUses, Is.EqualTo(detailsUses));
}
private DetailsDataModel CreateDataModel(string id, string name, int count, int oldCount,
DateTime dateTime, List<DetailDeliveryDataModel>? detailsDelivery, List<DetailsUseDataModel>? detailsUses)
=> new DetailsDataModel(id, name, count, oldCount,
dateTime, detailsDelivery, detailsUses);
}
}