Исправил все ошибки в 3 сложной
This commit is contained in:
@@ -190,9 +190,8 @@ internal class ComplitedWorkBusinessLogicContract(IComplitedWorkStorageContract
|
||||
throw new ValidationException("Completed work must have at least one assigned worker.");
|
||||
}
|
||||
|
||||
if (!warehouseStorageContract.CheckWorks(complitedWorkDataModel))
|
||||
if (!warehouseStorageContract.ReserveWorksForComplitedWork(complitedWorkDataModel))
|
||||
{
|
||||
logger.LogError("Not enough works for ComplitedWorks.");
|
||||
throw new ValidationException("Not enough works for ComplitedWorks.");
|
||||
}
|
||||
|
||||
|
||||
@@ -4,13 +4,23 @@ using TwoFromTheCasketContracts.Infastructure;
|
||||
|
||||
namespace TwoFromTheCasketContracts.DataModels;
|
||||
|
||||
public class WarehouseDataModel(string id, string name, string location,
|
||||
List<WorkWarehouseDataModel> workWarehouseDataModels) : IValidation
|
||||
public class WarehouseDataModel : IValidation
|
||||
{
|
||||
public string Id { get; private set; } = id;
|
||||
public string Name { get; private set; } = name;
|
||||
public string Location { get; private set; } = location;
|
||||
public List<WorkWarehouseDataModel> WorkWarehouseDataModels { get; private set; } = workWarehouseDataModels;
|
||||
public string Id { get; private set; }
|
||||
public string Name { get; private set; }
|
||||
public string Location { get; private set; }
|
||||
public List<WorkWarehouseDataModel> WorkWarehouseDataModels { get; private set; }
|
||||
|
||||
public WarehouseDataModel(string id, string name, string location,
|
||||
List<WorkWarehouseDataModel> workWarehouseDataModels)
|
||||
{
|
||||
Id = id;
|
||||
Name = name;
|
||||
Location = location;
|
||||
WorkWarehouseDataModels = workWarehouseDataModels;
|
||||
}
|
||||
|
||||
public WarehouseDataModel() { }
|
||||
|
||||
public void Validate()
|
||||
{
|
||||
|
||||
@@ -15,6 +15,5 @@ public interface IWarehouseStorageContract
|
||||
void AddElement(WarehouseDataModel warehouseDataModel);
|
||||
void UpdElement(WarehouseDataModel warehouseDataModel);
|
||||
void DelElement(string id);
|
||||
bool CheckWorks(ComplitedWorkDataModel workDataModel);
|
||||
void ReserveWorksForComplitedWork(ComplitedWorkDataModel workDataModel);
|
||||
bool ReserveWorksForComplitedWork(ComplitedWorkDataModel workDataModel);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
using TwoFromTheCasketContracts.DataModels;
|
||||
namespace TwoFromTheCasketContracts.StorageContracts;
|
||||
public interface IWorkerComplitedWorkStorageContract
|
||||
{
|
||||
List<WorkerComplitedWorkDataModel> GetList(string? workerId = null, string? complitedWorkId = null);
|
||||
WorkerComplitedWorkDataModel? GetElementById(string id);
|
||||
void AddElement(WorkerComplitedWorkDataModel workerComplitedWorkDataModel);
|
||||
void UpdElement(WorkerComplitedWorkDataModel workerComplitedWorkDataModel);
|
||||
void DelElement(string id);
|
||||
}
|
||||
@@ -84,16 +84,32 @@ public class ComplitedWorkStorageContract : IComplitedWorkStorageContract
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!_warehouseStorage.CheckWorks(complitedWorkDataModel))
|
||||
if (complitedWorkDataModel.Workers == null || complitedWorkDataModel.Workers.Count == 0)
|
||||
{
|
||||
throw new ElementNotFoundException("Not enough work available in warehouses.");
|
||||
throw new ValidationException("The value in the Workers must include workers");
|
||||
}
|
||||
|
||||
_warehouseStorage.ReserveWorksForComplitedWork(complitedWorkDataModel);
|
||||
if (!_dbContext.Rooms.Any(x => x.Id == complitedWorkDataModel.RoomId))
|
||||
{
|
||||
throw new ElementNotFoundException($"Room with ID {complitedWorkDataModel.RoomId} not found.");
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
_warehouseStorage.ReserveWorksForComplitedWork(complitedWorkDataModel);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StorageException(ex);
|
||||
}
|
||||
|
||||
_dbContext.ComplitedWorks.Add(_mapper.Map<ComplitedWork>(complitedWorkDataModel));
|
||||
_dbContext.SaveChanges();
|
||||
}
|
||||
catch (ValidationException)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
catch (ElementNotFoundException)
|
||||
{
|
||||
_dbContext.ChangeTracker.Clear();
|
||||
|
||||
@@ -19,9 +19,14 @@ public class SupplyStorageContract : ISupplyStorageContract
|
||||
|
||||
var config = new MapperConfiguration(cfg =>
|
||||
{
|
||||
cfg.CreateMap<SupplyDataModel, Supply>();
|
||||
cfg.CreateMap<Supply, SupplyDataModel>();
|
||||
cfg.CreateMap<SupplyDataModel, Supply>()
|
||||
.ForMember(dest => dest.Works, opt => opt.Ignore());
|
||||
|
||||
cfg.CreateMap<Supply, SupplyDataModel>()
|
||||
.ForMember(dest => dest.Works, opt => opt.Ignore());
|
||||
|
||||
cfg.CreateMap<WorkSupplyDataModel, Work_Supply>();
|
||||
cfg.CreateMap<Work_Supply, WorkSupplyDataModel>();
|
||||
});
|
||||
|
||||
_mapper = new Mapper(config);
|
||||
@@ -70,8 +75,11 @@ public class SupplyStorageContract : ISupplyStorageContract
|
||||
{
|
||||
try
|
||||
{
|
||||
var entity = _mapper.Map<Supply>(supplyDataModel);
|
||||
_dbContext.Supplies.Add(entity);
|
||||
var supplyEntity = _mapper.Map<Supply>(supplyDataModel);
|
||||
_dbContext.Supplies.Add(supplyEntity);
|
||||
_dbContext.SaveChanges();
|
||||
_dbContext.ChangeTracker.Clear();
|
||||
|
||||
|
||||
foreach (var ws in supplyDataModel.Works)
|
||||
{
|
||||
@@ -116,6 +124,7 @@ public class SupplyStorageContract : ISupplyStorageContract
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void DelElement(string id)
|
||||
{
|
||||
try
|
||||
|
||||
@@ -20,6 +20,7 @@ namespace TwoFromTheCasketDatabase.Implementations
|
||||
{
|
||||
cfg.CreateMap<WarehouseDataModel, Warehouse>();
|
||||
cfg.CreateMap<Warehouse, WarehouseDataModel>();
|
||||
|
||||
});
|
||||
_mapper = new Mapper(conf);
|
||||
}
|
||||
@@ -137,48 +138,20 @@ namespace TwoFromTheCasketDatabase.Implementations
|
||||
}
|
||||
}
|
||||
|
||||
public bool CheckWorks(ComplitedWorkDataModel workDataModel)
|
||||
public bool ReserveWorksForComplitedWork(ComplitedWorkDataModel workDataModel)
|
||||
{
|
||||
using var transaction = _dbContext.Database.BeginTransaction();
|
||||
|
||||
try
|
||||
{
|
||||
var requiredWork = _dbContext.Works
|
||||
.FirstOrDefault(w => w.Id == workDataModel.WorkId)
|
||||
?? throw new ElementNotFoundException(workDataModel.WorkId);
|
||||
|
||||
var availableWorkQuantities = _dbContext.WorkWarehouses
|
||||
.Where(ww => ww.WorkId == requiredWork.Id)
|
||||
.ToList();
|
||||
|
||||
var totalAvailable = availableWorkQuantities.Sum(ww => ww.Quantity);
|
||||
|
||||
return totalAvailable > 0;
|
||||
}
|
||||
catch (ElementNotFoundException)
|
||||
{
|
||||
_dbContext.ChangeTracker.Clear();
|
||||
throw;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_dbContext.ChangeTracker.Clear();
|
||||
throw new StorageException(ex);
|
||||
}
|
||||
}
|
||||
|
||||
public void ReserveWorksForComplitedWork(ComplitedWorkDataModel workDataModel)
|
||||
{
|
||||
try
|
||||
{
|
||||
var requiredWork = _dbContext.Works
|
||||
.FirstOrDefault(w => w.Id == workDataModel.WorkId)
|
||||
?? throw new ElementNotFoundException(workDataModel.WorkId);
|
||||
|
||||
int requiredQuantity = 2;
|
||||
var workStocks = _dbContext.WorkWarehouses
|
||||
.Where(ww => ww.WorkId == requiredWork.Id)
|
||||
.OrderByDescending(ww => ww.Quantity)
|
||||
.ToList();
|
||||
|
||||
int requiredQuantity = 1;
|
||||
.ToList();
|
||||
|
||||
foreach (var stock in workStocks)
|
||||
{
|
||||
@@ -190,24 +163,27 @@ namespace TwoFromTheCasketDatabase.Implementations
|
||||
}
|
||||
|
||||
if (requiredQuantity > 0)
|
||||
{
|
||||
throw new ElementNotFoundException("Not enough work");
|
||||
}
|
||||
|
||||
_dbContext.SaveChanges();
|
||||
transaction.Commit();
|
||||
return true;
|
||||
}
|
||||
catch (ElementNotFoundException)
|
||||
{
|
||||
transaction.Rollback();
|
||||
_dbContext.ChangeTracker.Clear();
|
||||
throw;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
transaction.Rollback();
|
||||
_dbContext.ChangeTracker.Clear();
|
||||
throw new StorageException(ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -447,7 +447,7 @@ namespace TwoFromTheCasketTests.BusinessLogicsContractsTests
|
||||
{
|
||||
var flag = false;
|
||||
var record = new ComplitedWorkDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), new List<WorkerComplitedWorkDataModel>());
|
||||
_warehouseStorageMock.Setup(x => x.CheckWorks(It.IsAny<ComplitedWorkDataModel>())).Returns(true);
|
||||
_warehouseStorageMock.Setup(x => x.ReserveWorksForComplitedWork(It.IsAny<ComplitedWorkDataModel>())).Returns(true);
|
||||
|
||||
_complitedWorkStorageMock.Setup(x => x.AddElement(It.IsAny<ComplitedWorkDataModel>()))
|
||||
.Callback((ComplitedWorkDataModel x) =>
|
||||
@@ -466,7 +466,7 @@ namespace TwoFromTheCasketTests.BusinessLogicsContractsTests
|
||||
{
|
||||
_complitedWorkStorageMock.Setup(x => x.AddElement(It.IsAny<ComplitedWorkDataModel>()))
|
||||
.Throws(new ElementExistsException("Data", "Data"));
|
||||
_warehouseStorageMock.Setup(x => x.CheckWorks(It.IsAny<ComplitedWorkDataModel>())).Returns(true);
|
||||
_warehouseStorageMock.Setup(x => x.ReserveWorksForComplitedWork(It.IsAny<ComplitedWorkDataModel>())).Returns(true);
|
||||
|
||||
Assert.That(() => _complitedWorkBusinessLogicContract.InsertComplitedWork(new(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), new List<WorkerComplitedWorkDataModel>())),
|
||||
Throws.TypeOf<ElementExistsException>());
|
||||
@@ -489,7 +489,7 @@ namespace TwoFromTheCasketTests.BusinessLogicsContractsTests
|
||||
{
|
||||
_complitedWorkStorageMock.Setup(x => x.AddElement(It.IsAny<ComplitedWorkDataModel>()))
|
||||
.Throws(new StorageException(new InvalidOperationException()));
|
||||
_warehouseStorageMock.Setup(x => x.CheckWorks(It.IsAny<ComplitedWorkDataModel>())).Returns(true);
|
||||
_warehouseStorageMock.Setup(x => x.ReserveWorksForComplitedWork(It.IsAny<ComplitedWorkDataModel>())).Returns(true);
|
||||
|
||||
Assert.That(() => _complitedWorkBusinessLogicContract.InsertComplitedWork(
|
||||
new(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), new List<WorkerComplitedWorkDataModel>())),
|
||||
@@ -501,13 +501,13 @@ namespace TwoFromTheCasketTests.BusinessLogicsContractsTests
|
||||
[Test]
|
||||
public void InsertComplitedWork_NotEnoughWorks_ThrowException_Test()
|
||||
{
|
||||
_warehouseStorageMock.Setup(x => x.CheckWorks(It.IsAny<ComplitedWorkDataModel>())).Returns(false);
|
||||
_warehouseStorageMock.Setup(x => x.ReserveWorksForComplitedWork(It.IsAny<ComplitedWorkDataModel>())).Returns(false);
|
||||
|
||||
Assert.That(() => _complitedWorkBusinessLogicContract.InsertComplitedWork(
|
||||
new(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), new List<WorkerComplitedWorkDataModel>())),
|
||||
Throws.TypeOf<ValidationException>());
|
||||
|
||||
_warehouseStorageMock.Verify(x => x.CheckWorks(It.IsAny<ComplitedWorkDataModel>()), Times.Once);
|
||||
_warehouseStorageMock.Verify(x => x.ReserveWorksForComplitedWork(It.IsAny<ComplitedWorkDataModel>()), Times.Once);
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
||||
@@ -9,5 +9,5 @@ namespace TwoFromTheCasketTests.Infrastructure;
|
||||
|
||||
public class ConfigurationDatabaseTest : IConfigurationDatabase
|
||||
{
|
||||
public string ConnectionString => "Host=localhost;Port=5432;Database=TwoFromTheCasketDb;Username=postgres;Password=1234";
|
||||
public string ConnectionString => "Host=localhost;Port=5432;Database=TwoFromTheCasketDbHard2;Username=postgres;Password=1234";
|
||||
}
|
||||
@@ -15,16 +15,18 @@ namespace TwoFromTheCasketTests.StorageContracts;
|
||||
public class ComplitedWorkStorageContractTests : BaseStorageContractTest
|
||||
{
|
||||
private ComplitedWorkStorageContract _complitedWorkStorageContract;
|
||||
private Mock<IWarehouseStorageContract> _warehouseStorageMock;
|
||||
private WarehouseStorageContract _warehouseStorage;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
_warehouseStorageMock = new Mock<IWarehouseStorageContract>();
|
||||
_warehouseStorage = new WarehouseStorageContract(
|
||||
TwoFromTheCasketDb
|
||||
);
|
||||
|
||||
_complitedWorkStorageContract = new ComplitedWorkStorageContract(
|
||||
TwoFromTheCasketDb,
|
||||
_warehouseStorageMock.Object
|
||||
_warehouseStorage
|
||||
);
|
||||
}
|
||||
|
||||
@@ -70,6 +72,12 @@ public class ComplitedWorkStorageContractTests : BaseStorageContractTest
|
||||
var roomId = InsertRoomToDatabase(Guid.NewGuid().ToString()).Id;
|
||||
var workId = InsertWorkToDatabase(Guid.NewGuid().ToString()).Id;
|
||||
|
||||
var warehouse1 = InsertWarehouseToDatabase();
|
||||
var warehouse2 = InsertWarehouseToDatabase();
|
||||
|
||||
InsertSupplyToDatabase(workId, warehouse1.Id, 3);
|
||||
InsertSupplyToDatabase(workId, warehouse2.Id, 2);
|
||||
|
||||
var complitedWorkDataModel = new ComplitedWorkDataModel(
|
||||
Guid.NewGuid().ToString(),
|
||||
workId,
|
||||
@@ -90,8 +98,8 @@ public class ComplitedWorkStorageContractTests : BaseStorageContractTest
|
||||
var warehouse1 = InsertWarehouseToDatabase();
|
||||
var warehouse2 = InsertWarehouseToDatabase();
|
||||
|
||||
InsertWorkToWarehouse(warehouse1.Id, workId, 2);
|
||||
InsertWorkToWarehouse(warehouse2.Id, workId, 3);
|
||||
InsertSupplyToDatabase(workId, warehouse1.Id, 2);
|
||||
InsertSupplyToDatabase(workId, warehouse2.Id, 3);
|
||||
|
||||
var complitedWorkDataModel = CreateComplitedWorkDataModel(Guid.NewGuid().ToString(), workId);
|
||||
|
||||
@@ -102,7 +110,7 @@ public class ComplitedWorkStorageContractTests : BaseStorageContractTest
|
||||
|
||||
var remainingWork1 = GetWorkQuantityFromWarehouse(warehouse1.Id, workId);
|
||||
var remainingWork2 = GetWorkQuantityFromWarehouse(warehouse2.Id, workId);
|
||||
Assert.That(remainingWork1 + remainingWork2, Is.EqualTo(4));
|
||||
Assert.That(remainingWork1 + remainingWork2, Is.EqualTo(3));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -112,12 +120,28 @@ public class ComplitedWorkStorageContractTests : BaseStorageContractTest
|
||||
InsertWorkToDatabase(workId);
|
||||
|
||||
var warehouse = InsertWarehouseToDatabase();
|
||||
InsertWorkToWarehouse(warehouse.Id, workId, 0);
|
||||
InsertSupplyToDatabase(workId, warehouse.Id, 0);
|
||||
|
||||
var complitedWorkDataModel = CreateComplitedWorkDataModel(Guid.NewGuid().ToString(), workId);
|
||||
|
||||
Assert.That(() => _complitedWorkStorageContract.AddElement(complitedWorkDataModel),
|
||||
Throws.TypeOf<StorageException>().With.Message.Contains("Not enough work available"));
|
||||
Throws.TypeOf<StorageException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Try_AddElement_WhenOneELementNotEnoughWorkAvailable_Test()
|
||||
{
|
||||
var workId = Guid.NewGuid().ToString();
|
||||
InsertWorkToDatabase(workId);
|
||||
|
||||
var warehouse = InsertWarehouseToDatabase();
|
||||
InsertSupplyToDatabase(workId, warehouse.Id, 0);
|
||||
InsertSupplyToDatabase(workId, warehouse.Id, 1);
|
||||
|
||||
var complitedWorkDataModel = CreateComplitedWorkDataModel(Guid.NewGuid().ToString(), workId);
|
||||
|
||||
Assert.That(() => _complitedWorkStorageContract.AddElement(complitedWorkDataModel),
|
||||
Throws.TypeOf<StorageException>());
|
||||
}
|
||||
|
||||
|
||||
@@ -212,7 +236,7 @@ public class ComplitedWorkStorageContractTests : BaseStorageContractTest
|
||||
|
||||
private static void AssertElement(ComplitedWork? actual, ComplitedWorkDataModel expected)
|
||||
{
|
||||
Assert.That(actual, Is.Not.Null, "ComplitedWork не найден в базе после добавления"); // ✅ Проверка перед сравнением
|
||||
Assert.That(actual, Is.Not.Null, "ComplitedWork не найден в базе после добавления");
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
@@ -261,7 +285,7 @@ public class ComplitedWorkStorageContractTests : BaseStorageContractTest
|
||||
|
||||
private Worker InsertWorkerToDatabase(string id, string fio = "Иванов И.И.")
|
||||
{
|
||||
var phonenumber = $"+791012345{new Random().Next(10, 99)}";
|
||||
var phonenumber = $"+79101234{new Random().Next(100, 999)}";
|
||||
var worker = new Worker
|
||||
{
|
||||
Id = id,
|
||||
@@ -312,6 +336,23 @@ public class ComplitedWorkStorageContractTests : BaseStorageContractTest
|
||||
.FirstOrDefault();
|
||||
}
|
||||
|
||||
private void InsertSupplyToDatabase(string workId, string warehouseId, double quantity)
|
||||
{
|
||||
var supplyId = Guid.NewGuid().ToString();
|
||||
|
||||
var supply = new SupplyDataModel(
|
||||
supplyId,
|
||||
warehouseId,
|
||||
DateTime.UtcNow,
|
||||
new List<WorkSupplyDataModel>
|
||||
{
|
||||
new WorkSupplyDataModel(workId, supplyId, quantity)
|
||||
});
|
||||
|
||||
new SupplyStorageContract(TwoFromTheCasketDb).AddElement(supply);
|
||||
}
|
||||
|
||||
|
||||
private TwoFromTheCasketDatabase.Models.Specialization InsertSpecializationToDatabase(string id, string name = null, double salary = 50000)
|
||||
{
|
||||
name ??= $"Повар , {new Random().Next(1, 1000)}";
|
||||
|
||||
@@ -23,7 +23,7 @@ public class SupplyStorageContractTests : BaseStorageContractTest
|
||||
{
|
||||
TwoFromTheCasketDb.Database.ExecuteSqlRaw("TRUNCATE \"WorkSupplyies\" CASCADE;");
|
||||
TwoFromTheCasketDb.Database.ExecuteSqlRaw("TRUNCATE \"Supplies\" CASCADE;");
|
||||
TwoFromTheCasketDb.Database.ExecuteSqlRaw("TRUNCATE \"Work_Warehouses\" CASCADE;");
|
||||
TwoFromTheCasketDb.Database.ExecuteSqlRaw("TRUNCATE \"WorkWarehouses\" CASCADE;");
|
||||
TwoFromTheCasketDb.Database.ExecuteSqlRaw("TRUNCATE \"Warehouses\" CASCADE;");
|
||||
TwoFromTheCasketDb.Database.ExecuteSqlRaw("TRUNCATE \"Works\" CASCADE;");
|
||||
}
|
||||
@@ -210,6 +210,7 @@ public class SupplyStorageContractTests : BaseStorageContractTest
|
||||
private SupplyDataModel CreateSupplyDataModel(string warehouseId)
|
||||
{
|
||||
var workId = InsertWork().Id;
|
||||
|
||||
return new SupplyDataModel(
|
||||
Guid.NewGuid().ToString(),
|
||||
warehouseId,
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using NUnit.Framework;
|
||||
using TwoFromTheCasketContracts.DataModels;
|
||||
using TwoFromTheCasketContracts.Exceptions;
|
||||
using TwoFromTheCasketContracts.StorageContracts;
|
||||
using TwoFromTheCasketDatabase.Implementations;
|
||||
using TwoFromTheCasketDatabase.Models;
|
||||
|
||||
@@ -21,7 +22,7 @@ public class WarehouseStorageContractTests : BaseStorageContractTest
|
||||
[TearDown]
|
||||
public void TearDown()
|
||||
{
|
||||
TwoFromTheCasketDb.Database.ExecuteSqlRaw("TRUNCATE \"Work_Warehouses\" CASCADE;");
|
||||
TwoFromTheCasketDb.Database.ExecuteSqlRaw("TRUNCATE \"WorkWarehouses\" CASCADE;");
|
||||
TwoFromTheCasketDb.Database.ExecuteSqlRaw("TRUNCATE \"Warehouses\" CASCADE;");
|
||||
TwoFromTheCasketDb.Database.ExecuteSqlRaw("TRUNCATE \"Works\" CASCADE;");
|
||||
TwoFromTheCasketDb.Database.ExecuteSqlRaw("TRUNCATE \"ComplitedWorks\" CASCADE;");
|
||||
@@ -143,7 +144,7 @@ public class WarehouseStorageContractTests : BaseStorageContractTest
|
||||
|
||||
var complitedWork = CreateComplitedWork(workId);
|
||||
|
||||
var checkResult = _warehouseStorageContract.CheckWorks(complitedWork);
|
||||
var checkResult = _warehouseStorageContract.ReserveWorksForComplitedWork(complitedWork);
|
||||
Assert.That(checkResult, Is.True);
|
||||
}
|
||||
|
||||
@@ -157,9 +158,9 @@ public class WarehouseStorageContractTests : BaseStorageContractTest
|
||||
InsertWorkToWarehouse(warehouse.Id, workId, 0);
|
||||
|
||||
var complitedWork = CreateComplitedWork(workId);
|
||||
var checkResult = _warehouseStorageContract.CheckWorks(complitedWork);
|
||||
|
||||
Assert.That(checkResult, Is.False);
|
||||
Assert.That(() => _warehouseStorageContract.ReserveWorksForComplitedWork(complitedWork),
|
||||
Throws.TypeOf<ElementNotFoundException>());
|
||||
}
|
||||
|
||||
|
||||
@@ -182,7 +183,7 @@ public class WarehouseStorageContractTests : BaseStorageContractTest
|
||||
.Where(x => x.WorkId == workId)
|
||||
.Sum(x => x.Quantity);
|
||||
|
||||
Assert.That(total, Is.EqualTo(4));
|
||||
Assert.That(total, Is.EqualTo(3));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -196,7 +197,7 @@ public class WarehouseStorageContractTests : BaseStorageContractTest
|
||||
|
||||
var complitedWork = CreateComplitedWork(workId);
|
||||
Assert.That(() => _warehouseStorageContract.ReserveWorksForComplitedWork(complitedWork),
|
||||
Throws.TypeOf<StorageException>().With.Message.Contains("Not enough work available"));
|
||||
Throws.TypeOf<ElementNotFoundException>());
|
||||
}
|
||||
private Warehouse InsertWarehouseToDatabase(string name, string location)
|
||||
{
|
||||
|
||||
@@ -173,9 +173,9 @@ public class WorkerStorageContractTests : BaseStorageContractTest
|
||||
|
||||
private Worker InsertWorkerToDatabase(string id, string specializationId = null, string fio = "Иванов И.И.", string phoneNumber = "+79101234567", DateTime? dateBirthday = null)
|
||||
{
|
||||
specializationId = InsertSpecializationToDatabase(Guid.NewGuid().ToString()).Id; // ✅ Создаем специализацию перед работником
|
||||
specializationId = InsertSpecializationToDatabase(Guid.NewGuid().ToString()).Id;
|
||||
|
||||
var phonenumber = $"+791012345{new Random().Next(10, 99)}";
|
||||
var phonenumber = $"+791012345{new Random().Next(100, 999)}";
|
||||
|
||||
var worker = new Worker
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user