2025-03-09 14:28:06 +04:00

75 lines
2.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using PuferFishContracts.DataModels;
using PuferFishContracts.Exceptions;
namespace PuferFishTests.DataModelsTests;
internal class SupplyProductDataModelTests
{
[Test]
public void SuppliesIdIsNullOrEmptyTest()
{
var productSupplies = CreateDataModel(null, Guid.NewGuid().ToString(), 1);
Assert.That(() => productSupplies.Validate(), Throws.TypeOf<ValidationException>());
productSupplies = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), 1);
Assert.That(() => productSupplies.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void SuppliesIdIsNotGuidTest()
{
var productSupplies = CreateDataModel("suppliesId", Guid.NewGuid().ToString(), 1);
Assert.That(() => productSupplies.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void ProductIdIsNullOrEmptyTest()
{
var productSupplies = CreateDataModel(Guid.NewGuid().ToString(), null, 1);
Assert.That(() => productSupplies.Validate(), Throws.TypeOf<ValidationException>());
productSupplies = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, 1);
Assert.That(() => productSupplies.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void ProductIdIsNotGuidTest()
{
var productSupplies = CreateDataModel(Guid.NewGuid().ToString(), "productId", 1);
Assert.That(() => productSupplies.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void CountIsLessOrZeroTest()
{
var productSupplies = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0);
Assert.That(() => productSupplies.Validate(), Throws.TypeOf<ValidationException>());
productSupplies = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), -1);
Assert.That(() => productSupplies.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void AllFieldsIsCorrectTest()
{
var supplyId = Guid.NewGuid().ToString();
var productId = Guid.NewGuid().ToString();
var count = 1;
var productSupplies = CreateDataModel(supplyId, productId, count);
Assert.That(() => productSupplies.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
Assert.That(productSupplies.SupplyId, Is.EqualTo(supplyId));
Assert.That(productSupplies.ProductId, Is.EqualTo(productId));
Assert.That(productSupplies.Count, Is.EqualTo(count));
});
}
private static SupplyProductDataModel CreateDataModel(string? suppliesId, string? productId, int count)
=> new(suppliesId, productId, count);
}