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()); productSupplies = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), 1); Assert.That(() => productSupplies.Validate(), Throws.TypeOf()); } [Test] public void SuppliesIdIsNotGuidTest() { var productSupplies = CreateDataModel("suppliesId", Guid.NewGuid().ToString(), 1); Assert.That(() => productSupplies.Validate(), Throws.TypeOf()); } [Test] public void ProductIdIsNullOrEmptyTest() { var productSupplies = CreateDataModel(Guid.NewGuid().ToString(), null, 1); Assert.That(() => productSupplies.Validate(), Throws.TypeOf()); productSupplies = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, 1); Assert.That(() => productSupplies.Validate(), Throws.TypeOf()); } [Test] public void ProductIdIsNotGuidTest() { var productSupplies = CreateDataModel(Guid.NewGuid().ToString(), "productId", 1); Assert.That(() => productSupplies.Validate(), Throws.TypeOf()); } [Test] public void CountIsLessOrZeroTest() { var productSupplies = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0); Assert.That(() => productSupplies.Validate(), Throws.TypeOf()); productSupplies = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), -1); Assert.That(() => productSupplies.Validate(), Throws.TypeOf()); } [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); }