using NorthBridgeContracts.DataModels; using NorthBridgeContracts.Enums; using NorthBridgeContracts.Exceptions; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace NorthBridgeTests.DataModelsTests; [TestFixture] public class SaleDataModelTests { [Test] public void IdIsEmptyOrNullTest() { Assert.Throws(() => new SaleDataModel(null, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, DiscountType.None, 0, false, new List()).Validate()); Assert.Throws(() => new SaleDataModel(string.Empty, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, DiscountType.None, 0, false, new List()).Validate()); } [Test] public void IdIsNotGuidTest() { Assert.Throws(() => new SaleDataModel("invalidGuid", Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, DiscountType.None, 0, false, new List()).Validate()); } [Test] public void WorkerIdIsEmptyOrNullTest() { Assert.Throws(() => new SaleDataModel(Guid.NewGuid().ToString(), null, Guid.NewGuid().ToString(), 10, DiscountType.None, 0, false, new List()).Validate()); Assert.Throws(() => new SaleDataModel(Guid.NewGuid().ToString(), string.Empty, Guid.NewGuid().ToString(), 10, DiscountType.None, 0, false, new List()).Validate()); } [Test] public void WorkerIdIsNotGuidTest() { Assert.Throws(() => new SaleDataModel(Guid.NewGuid().ToString(), "invalidGuid", Guid.NewGuid().ToString(), 10, DiscountType.None, 0, false, new List()).Validate()); } [Test] public void CustomerIdIsNotGuidTest() { Assert.Throws(() => new SaleDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "invalidGuid", 10, DiscountType.None, 0, false, new List()).Validate()); } [Test] public void SumIsLessOrZeroTest() { Assert.Throws(() => new SaleDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0, DiscountType.None, 0, false, new List()).Validate()); Assert.Throws(() => new SaleDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), -10, DiscountType.None, 0, false, new List()).Validate()); } [Test] public void ProductsIsNullOrEmptyTest() { Assert.Throws(() => new SaleDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, DiscountType.None, 0, false, null).Validate()); Assert.Throws(() => new SaleDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, DiscountType.None, 0, false, new List()).Validate()); } [Test] public void AllFieldsAreValidTest() { var sale = new SaleDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, DiscountType.None, 0, false, new List { new SaleProductDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 1) }); Assert.DoesNotThrow(() => sale.Validate()); } }