Первый пласт тестов готов
This commit is contained in:
parent
f16055973e
commit
e24689ed30
@ -1,37 +1,71 @@
|
||||
using PapaCarloContracts.BusinessLogicContracts;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using PapaCarloContracts.BusinessLogicContracts;
|
||||
using PapaCarloContracts.DataModels;
|
||||
using PapaCarloContracts.Exceptions;
|
||||
using PapaCarloContracts.Extensions;
|
||||
using PapaCarloContracts.StoragesContracts;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace PapaCarloBusinessLogic.Implementations
|
||||
{
|
||||
internal class BlankBusinessLogicContract(IBlankStorageContract storageContract) : IBlankBusinessLogicContract
|
||||
internal class BlankBusinessLogicContract(IBlankStorageContract blankStorageContract, ILogger logger) : IBlankBusinessLogicContract
|
||||
{
|
||||
private IBlankStorageContract _storageContract = storageContract;
|
||||
private readonly ILogger _logger = logger;
|
||||
private IBlankStorageContract _blankStorageContract = blankStorageContract;
|
||||
|
||||
public void DeleteBlank(string id)
|
||||
{
|
||||
_logger.LogInformation("Delete by id: {id}", id);
|
||||
if (id.IsEmpty())
|
||||
{
|
||||
throw new ArgumentNullException(nameof(id));
|
||||
}
|
||||
if (!id.IsGuid())
|
||||
{
|
||||
throw new ValidationException("Id is not a unique identifier");
|
||||
}
|
||||
_blankStorageContract.DelElement(id);
|
||||
}
|
||||
|
||||
public List<BlankDataModel> GetAllBlanks()
|
||||
{
|
||||
return [];
|
||||
_logger.LogInformation("GetAllBlanks");
|
||||
return _blankStorageContract.GetList() ?? throw new NullListException();
|
||||
}
|
||||
|
||||
public BlankDataModel GetBlankByData(string data)
|
||||
{
|
||||
return new("", "", "", "");
|
||||
_logger.LogInformation("Get element by data {data}", data);
|
||||
if (data.IsEmpty())
|
||||
{
|
||||
throw new ArgumentNullException(nameof(data));
|
||||
}
|
||||
if (data.IsGuid())
|
||||
{
|
||||
return _blankStorageContract.GetElementById(data) ?? throw new ElementNotFoundException(data);
|
||||
}
|
||||
return _blankStorageContract.GetElementByName(data) ?? throw new ElementNotFoundException(data);
|
||||
}
|
||||
|
||||
public void InsertBlank(BlankDataModel blankDataModel)
|
||||
{
|
||||
_logger.LogInformation("New data:{json}", JsonSerializer.Serialize(blankDataModel));
|
||||
ArgumentNullException.ThrowIfNull(blankDataModel);
|
||||
blankDataModel.Validate();
|
||||
_blankStorageContract.AddElement(blankDataModel);
|
||||
}
|
||||
|
||||
public void UpdateBlank(BlankDataModel blankDataModel)
|
||||
{
|
||||
_logger.LogInformation("Update data: {json}", JsonSerializer.Serialize(blankDataModel));
|
||||
ArgumentNullException.ThrowIfNull(blankDataModel);
|
||||
blankDataModel.Validate();
|
||||
_blankStorageContract.UpdElement(blankDataModel);
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -11,6 +11,10 @@
|
||||
<InternalsVisibleTo Include="DynamicProxyGenAssembly2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\PapaCarloContracts\PapaCarloContracts.csproj" />
|
||||
</ItemGroup>
|
||||
|
@ -1,4 +1,6 @@
|
||||
using Moq;
|
||||
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using PapaCarloBusinessLogic.Implementations;
|
||||
using PapaCarloContracts.BusinessLogicContracts;
|
||||
@ -16,14 +18,15 @@ namespace PapaCarloTests.BusinessLogicsContracts;
|
||||
[TestFixture]
|
||||
internal class BlankBusinessLogicContractTests
|
||||
{
|
||||
private IBlankBusinessLogicContract _blankBusinessLogicContract;
|
||||
private BlankBusinessLogicContract _blankBusinessLogicContract;
|
||||
private Mock<IBlankStorageContract> _blankStorageContract;
|
||||
|
||||
[OneTimeSetUp]
|
||||
public void OneTimeSetUp()
|
||||
{
|
||||
_blankStorageContract = new Mock<IBlankStorageContract>();
|
||||
_blankBusinessLogicContract = new BlankBusinessLogicContract(_blankStorageContract.Object);
|
||||
_blankBusinessLogicContract = new BlankBusinessLogicContract(_blankStorageContract.Object, new Mock<ILogger>().Object);
|
||||
|
||||
}
|
||||
|
||||
[SetUp]
|
||||
@ -221,7 +224,7 @@ internal class BlankBusinessLogicContractTests
|
||||
{
|
||||
_blankStorageContract.Setup(x => x.UpdElement(It.IsAny<BlankDataModel>())).Throws(new ElementExistsException("Data","Data"));
|
||||
|
||||
Assert.That(() => _blankBusinessLogicContract.UpdateBlank(new(Guid.NewGuid().ToString(), "Spruce", "", "")), Throws.TypeOf<ElementNotFoundException>());
|
||||
Assert.That(() => _blankBusinessLogicContract.UpdateBlank(new(Guid.NewGuid().ToString(), "Spruce", "", "")), Throws.TypeOf<ElementExistsException>());
|
||||
_blankStorageContract.Verify(x => x.UpdElement(It.IsAny<BlankDataModel>()), Times.Once);
|
||||
}
|
||||
[Test]
|
||||
|
Loading…
x
Reference in New Issue
Block a user