done(корректировка кода)

This commit is contained in:
Baryshev Dmitry 2025-02-14 14:31:57 +04:00
parent 2adcba7625
commit 3e31339857
4 changed files with 28 additions and 29 deletions

View File

@ -38,7 +38,7 @@ public class SupplierDataModel(string id, string fio, string email, double disco
throw new ValidationException("Field Email is empty");
if (!Regex.IsMatch(Email, @"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"))
throw new ValidationException("Field Email is not a phone number");
throw new ValidationException("Field Email is not a email");
if (DiscountSize < 0)
throw new ValidationException("Field DiscountSize is less than zero");

View File

@ -44,6 +44,6 @@ public class SupplyDataModel(string id, string supplierId, int sum, DateTime sup
throw new ValidationException("Field Sum is less than or equal to 0");
if ((Crops?.Count ?? 0) == 0)
throw new ValidationException("The sale must include products");
throw new ValidationException("The sale must include crops");
}
}

View File

@ -16,11 +16,11 @@ internal class CropDataModelsTests
public void IdIsNullOrEmptyTest()
{
var crop = CreateDataModel(null, Guid.NewGuid().ToString(), "name",
10, 9, 8, CropType.Berry, true, DateTime.UtcNow, false);
10, CropType.Berry, true, DateTime.UtcNow, false);
Assert.That(() => crop.Validate(), Throws.TypeOf<ValidationException>());
crop = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), "name",
10, 9, 8, CropType.Berry, true, DateTime.UtcNow, false);
10, CropType.Berry, true, DateTime.UtcNow, false);
Assert.That(() => crop.Validate(), Throws.TypeOf<ValidationException>());
}
@ -28,18 +28,18 @@ internal class CropDataModelsTests
public void IdIsNotGuid()
{
var crop = CreateDataModel("Id", Guid.NewGuid().ToString(), "name",
10, 9, 8, CropType.Berry, true, DateTime.UtcNow, false);
10, CropType.Berry, true, DateTime.UtcNow, false);
Assert.That(() => crop.Validate(), Throws.TypeOf<ValidationException>());
}
public void HarvestIdIsNullOrEmptyTest()
{
var crop = CreateDataModel(Guid.NewGuid().ToString(), null, "name",
10, 9, 8, CropType.Berry, true, DateTime.UtcNow, false);
10, CropType.Berry, true, DateTime.UtcNow, false);
Assert.That(() => crop.Validate(), Throws.TypeOf<ValidationException>());
crop = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, "name",
10, 9, 8, CropType.Berry, true, DateTime.UtcNow, false);
10, CropType.Berry, true, DateTime.UtcNow, false);
Assert.That(() => crop.Validate(), Throws.TypeOf<ValidationException>());
}
@ -47,7 +47,7 @@ internal class CropDataModelsTests
public void HarvestIdIsNotGuid()
{
var crop = CreateDataModel(Guid.NewGuid().ToString(), "Id", "name",
10, 9, 8, CropType.Berry, true, DateTime.UtcNow, false);
10, CropType.Berry, true, DateTime.UtcNow, false);
Assert.That(() => crop.Validate(), Throws.TypeOf<ValidationException>());
}
@ -55,7 +55,7 @@ internal class CropDataModelsTests
public void CropNameIsEmptyTest()
{
var crop = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), null,
10, 9, 8, CropType.Berry, true, DateTime.UtcNow, false);
10, CropType.Berry, true, DateTime.UtcNow, false);
Assert.That(() => crop.Validate(), Throws.TypeOf<ValidationException>());
}
@ -63,11 +63,11 @@ internal class CropDataModelsTests
public void PriceIsLessOrZeroTest()
{
var crop = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "name",
0, 9, 8, CropType.Berry, true, DateTime.UtcNow, false);
0, CropType.Berry, true, DateTime.UtcNow, false);
Assert.That(() => crop.Validate(), Throws.TypeOf<ValidationException>());
crop = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "name",
-10, 9, 8, CropType.Berry, true, DateTime.UtcNow, false);
-10, CropType.Berry, true, DateTime.UtcNow, false);
Assert.That(() => crop.Validate(), Throws.TypeOf<ValidationException>());
}
@ -75,7 +75,7 @@ internal class CropDataModelsTests
public void CropTypeIsNoneTest()
{
var crop = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "name",
10, 9, 8, CropType.None, true, DateTime.UtcNow, false);
10, CropType.None, true, DateTime.UtcNow, false);
Assert.That(() => crop.Validate(), Throws.TypeOf<ValidationException>());
}
@ -92,8 +92,8 @@ internal class CropDataModelsTests
var isActual = true;
var replenishmentDate = DateTime.UtcNow.AddDays(-1);
var isDeleted = false;
var crop = CreateDataModel(cropId, harvestId, cropName, price, prevPrice,
prevPrevPrice, cropType, isActual, replenishmentDate, isDeleted);
var crop = CreateDataModel(cropId, harvestId, cropName, price, cropType, isActual,
replenishmentDate, isDeleted, prevPrice, prevPrevPrice);
Assert.That(() => crop.Validate(), Throws.Nothing);
Assert.Multiple(() =>
@ -111,9 +111,8 @@ internal class CropDataModelsTests
});
}
private static CropDataModel CreateDataModel(string? id, string? harvestId,
string? cropName, double price, double? prevPrice, double? prevPrevPrice,
CropType cropType, bool isActual, DateTime replenishmentDate, bool isDeleted)
=> new (id, harvestId, cropName, price, prevPrice, prevPrevPrice, cropType,
isActual, replenishmentDate, isDeleted);
private static CropDataModel CreateDataModel(string? id, string? harvestId, string? cropName,
double price, CropType cropType, bool isActual, DateTime replenishmentDate, bool isDeleted,
double? prevPrice = null, double? prevPrevPrice = null) => new (id, harvestId, cropName,
price, prevPrice, prevPrevPrice, cropType, isActual, replenishmentDate, isDeleted);
}

View File

@ -14,51 +14,51 @@ internal class SupplierDataModelsTests
[Test]
public void IdIsNullOrEmptyTest()
{
var supplier = CreateDataModel(null, "fio", "email", 10);
var supplier = CreateDataModel(null, "Барышев Дмитрий Алексеевич", "email", 10);
Assert.That(() => supplier.Validate(), Throws.TypeOf<ValidationException>());
supplier = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), "number", 10);
supplier = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), "a@yandex.ru", 10);
Assert.That(() => supplier.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void IdIsNotGuid()
{
var supplier = CreateDataModel("Id", "fio", "email", 10);
var supplier = CreateDataModel("Id", "Барышев Дмитрий Алексеевич", "a@yandex.ru", 10);
Assert.That(() => supplier.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void FIOIsNullOrEmptyTest()
{
var supplier = CreateDataModel(Guid.NewGuid().ToString(), null, "email", 10);
var supplier = CreateDataModel(Guid.NewGuid().ToString(), null, "a@yandex.ru", 10);
Assert.That(() => supplier.Validate(), Throws.TypeOf<ValidationException>());
supplier = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, "email", 10);
supplier = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, "a@yandex.ru", 10);
Assert.That(() => supplier.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void EmailIsNullOrEmptyTest()
{
var supplier = CreateDataModel(Guid.NewGuid().ToString(), "fio", null, 10);
var supplier = CreateDataModel(Guid.NewGuid().ToString(), "Барышев Дмитрий Алексеевич", null, 10);
Assert.That(() => supplier.Validate(), Throws.TypeOf<ValidationException>());
supplier = CreateDataModel(Guid.NewGuid().ToString(), "fio", string.Empty, 10);
supplier = CreateDataModel(Guid.NewGuid().ToString(), "Барышев Дмитрий Алексеевич", string.Empty, 10);
Assert.That(() => supplier.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void EmailIsIncorrectTest()
{
var supplier = CreateDataModel(Guid.NewGuid().ToString(), "fio", "i.ru", 10);
var supplier = CreateDataModel(Guid.NewGuid().ToString(), "Барышев Дмитрий Алексеевич", "i.ru", 10);
Assert.That(() => supplier.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void DiscountIsLessZero()
{
var supplier = CreateDataModel(Guid.NewGuid().ToString(), "fio", "email", -10);
var supplier = CreateDataModel(Guid.NewGuid().ToString(), "Барышев Дмитрий Алексеевич", "a@yandex.ru", -10);
Assert.That(() => supplier.Validate(), Throws.TypeOf<ValidationException>());
}
@ -66,7 +66,7 @@ internal class SupplierDataModelsTests
public void AllFieldsAreCorrect()
{
var id = Guid.NewGuid().ToString();
var fio = "fio";
var fio = "Барышев Дмитрий Алексеевич";
var email = "senior_pomidor@yandex.ru";
var discountSize = 10;
var supplier = CreateDataModel(id, fio, email, discountSize);