лаб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 string Name { get; private set; }
|
||||||
public int Count { get; private set; }
|
public int Count { get; private set; }
|
||||||
public int OldCount { get; private set; }
|
public int OldCount { get; private set; }
|
||||||
|
|
||||||
public DateTime UpdateDate { 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;
|
Id = id;
|
||||||
Name = name;
|
Name = name;
|
||||||
Count = count;
|
Count = count;
|
||||||
OldCount = oldCount;
|
OldCount = oldCount;
|
||||||
UpdateDate = updateDate;
|
UpdateDate = updateDate;
|
||||||
|
DetailsDelivery = detailsDelivery;
|
||||||
|
DetailsUses = detailsUses;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Validate()
|
public void Validate()
|
||||||
@ -37,9 +41,9 @@ namespace ElectricalRepairServiceContract.DataModels
|
|||||||
if (Name.IsEmpty())
|
if (Name.IsEmpty())
|
||||||
throw new ValidationException("Field Description is empty");
|
throw new ValidationException("Field Description is empty");
|
||||||
if (Count < 0)
|
if (Count < 0)
|
||||||
throw new ValidationException("The count must be more then 0");
|
throw new ValidationException("The count must be positive");
|
||||||
if (OldCount < 0)
|
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]
|
[Test]
|
||||||
public void IdIsNullOrEmptyTest()
|
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>());
|
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>());
|
Assert.That(() => details.Validate(), Throws.TypeOf<ValidationException>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void IdIsNotGuidTest()
|
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>());
|
Assert.That(() => details.Validate(), Throws.TypeOf<ValidationException>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void NameIsNullOrEmptyTest()
|
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>());
|
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>());
|
Assert.That(() => details.Validate(), Throws.TypeOf<ValidationException>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void CountIsNegativeTest()
|
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>());
|
Assert.That(() => details.Validate(), Throws.TypeOf<ValidationException>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void OldCountIsNegativeTest()
|
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>());
|
Assert.That(() => details.Validate(), Throws.TypeOf<ValidationException>());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,17 +56,23 @@ namespace ElectricalRepairServiceTests.DataModelsTests
|
|||||||
var count = 10;
|
var count = 10;
|
||||||
var oldCount = 10;
|
var oldCount = 10;
|
||||||
var dateTime = DateTime.Now;
|
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.Id, Is.EqualTo(id));
|
||||||
Assert.That(details.Name, Is.EqualTo(name));
|
Assert.That(details.Name, Is.EqualTo(name));
|
||||||
Assert.That(details.Count, Is.EqualTo(count));
|
Assert.That(details.Count, Is.EqualTo(count));
|
||||||
Assert.That(details.OldCount, Is.EqualTo(oldCount));
|
Assert.That(details.OldCount, Is.EqualTo(oldCount));
|
||||||
Assert.That(details.UpdateDate, Is.EqualTo(dateTime));
|
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)
|
private DetailsDataModel CreateDataModel(string id, string name, int count, int oldCount,
|
||||||
=> new DetailsDataModel(id, name, count, oldCount, dateTime);
|
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