лаб11 усложненка
This commit is contained in:
parent
1ebb95b7b1
commit
723e8f3c72
@ -0,0 +1,37 @@
|
||||
using ElectricalRepairServiceContract.Exceptions;
|
||||
using ElectricalRepairServiceContract.Extensions;
|
||||
using ElectricalRepairServiceContract.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ElectricalRepairServiceContract.DataModels
|
||||
{
|
||||
public class DetailDeliveryDataModel : IValidation
|
||||
{
|
||||
public string Id { get; private set; }
|
||||
public string DetailId { get; private set; }
|
||||
public int Amount { get; private set; }
|
||||
public DateTime Date { get; private set; }
|
||||
|
||||
public DetailDeliveryDataModel(string id, string detailId, int amount, DateTime date)
|
||||
{
|
||||
Id = id;
|
||||
DetailId = detailId;
|
||||
Amount = amount;
|
||||
Date = date;
|
||||
}
|
||||
|
||||
public void Validate()
|
||||
{
|
||||
if (Id.IsEmpty())
|
||||
throw new ValidationException("Field Id is empty");
|
||||
if (!Id.IsGuid())
|
||||
throw new ValidationException("The value in the field Id is not a unique identifier");
|
||||
if (Amount <= 0)
|
||||
throw new ValidationException("The Amount must be more then 0");
|
||||
}
|
||||
}
|
||||
}
|
@ -16,16 +16,20 @@ namespace ElectricalRepairServiceContract.DataModels
|
||||
public string Name { get; private set; }
|
||||
public int Count { get; private set; }
|
||||
public int OldCount { get; private set; }
|
||||
|
||||
public DateTime UpdateDate { get; private set; }
|
||||
public List<DetailDeliveryDataModel>? DetailsDelivery { get; private set; }
|
||||
public List<DetailsUseDataModel>? DetailsUses { get; private set; }
|
||||
|
||||
public DetailsDataModel(string id, string name, int count, int oldCount, DateTime updateDate)
|
||||
public DetailsDataModel(string id, string name, int count, int oldCount,
|
||||
DateTime updateDate, List<DetailDeliveryDataModel>? detailsDelivery, List<DetailsUseDataModel>? detailsUses)
|
||||
{
|
||||
Id = id;
|
||||
Name = name;
|
||||
Count = count;
|
||||
OldCount = oldCount;
|
||||
UpdateDate = updateDate;
|
||||
DetailsDelivery = detailsDelivery;
|
||||
DetailsUses = detailsUses;
|
||||
}
|
||||
|
||||
public void Validate()
|
||||
@ -37,9 +41,9 @@ namespace ElectricalRepairServiceContract.DataModels
|
||||
if (Name.IsEmpty())
|
||||
throw new ValidationException("Field Description is empty");
|
||||
if (Count < 0)
|
||||
throw new ValidationException("The count must be more then 0");
|
||||
throw new ValidationException("The count must be positive");
|
||||
if (OldCount < 0)
|
||||
throw new ValidationException("The count must be more then 0");
|
||||
throw new ValidationException("The count must be positive");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,41 +10,41 @@ namespace ElectricalRepairServiceTests.DataModelsTests
|
||||
[Test]
|
||||
public void IdIsNullOrEmptyTest()
|
||||
{
|
||||
var details = CreateDataModel(null, "name", 1, 1, DateTime.Now);
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
var details = CreateDataModel(Guid.NewGuid().ToString(), "name", 10, -1, DateTime.Now, null, null);
|
||||
Assert.That(() => details.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
@ -56,17 +56,23 @@ namespace ElectricalRepairServiceTests.DataModelsTests
|
||||
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);
|
||||
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)
|
||||
=> new DetailsDataModel(id, name, count, oldCount, dateTime);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user