79 lines
3.3 KiB
C#
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);
|
|
}
|
|
}
|