diff --git a/CandyHouseSolution/CandyHouseTests/CandyHouseTests.csproj b/CandyHouseSolution/CandyHouseTests/CandyHouseTests.csproj
index c47af43..12447e8 100644
--- a/CandyHouseSolution/CandyHouseTests/CandyHouseTests.csproj
+++ b/CandyHouseSolution/CandyHouseTests/CandyHouseTests.csproj
@@ -102,8 +102,10 @@
+
+
diff --git a/CandyHouseSolution/CandyHouseTests/DataModelsTests/IngredientStockDataModelTests.cs b/CandyHouseSolution/CandyHouseTests/DataModelsTests/IngredientStockDataModelTests.cs
new file mode 100644
index 0000000..2012b3b
--- /dev/null
+++ b/CandyHouseSolution/CandyHouseTests/DataModelsTests/IngredientStockDataModelTests.cs
@@ -0,0 +1,40 @@
+using System;
+using NUnit.Framework;
+using CandyHouseBase.DataModels;
+using CandyHouseBase.Exceptions;
+
+namespace CandyHouseTests.DataModelsTests
+{
+ [TestFixture]
+ public class IngredientStockDataModelTests
+ {
+ [Test]
+ public void IngredientStock_ShouldThrowException_WhenIdIsInvalid()
+ {
+ var stock = new IngredientStockDataModel("", 10);
+ Assert.Throws(stock.Validate);
+ }
+
+ [Test]
+ public void IngredientStock_ShouldThrowException_WhenQuantityIsNegative()
+ {
+ var stock = new IngredientStockDataModel(Guid.NewGuid().ToString(), -5);
+ Assert.Throws(stock.Validate);
+ }
+
+ [Test]
+ public void IngredientStock_ShouldAddStockCorrectly()
+ {
+ var stock = new IngredientStockDataModel(Guid.NewGuid().ToString(), 10);
+ stock.AddStock(5);
+ Assert.That(stock.Quantity, Is.EqualTo(15));
+ }
+
+ [Test]
+ public void IngredientStock_ShouldThrowException_WhenRemovingTooMuchStock()
+ {
+ var stock = new IngredientStockDataModel(Guid.NewGuid().ToString(), 10);
+ Assert.Throws(() => stock.RemoveStock(15));
+ }
+ }
+}
\ No newline at end of file
diff --git a/CandyHouseSolution/CandyHouseTests/DataModelsTests/SupplyItemDataModelTests.cs b/CandyHouseSolution/CandyHouseTests/DataModelsTests/SupplyItemDataModelTests.cs
new file mode 100644
index 0000000..53a843c
--- /dev/null
+++ b/CandyHouseSolution/CandyHouseTests/DataModelsTests/SupplyItemDataModelTests.cs
@@ -0,0 +1,43 @@
+using System;
+using NUnit.Framework;
+using CandyHouseBase.DataModels;
+using CandyHouseBase.Enums;
+using CandyHouseBase.Exceptions;
+
+namespace CandyHouseTests.DataModelsTests
+{
+ [TestFixture]
+ public class SupplyItemDataModelTests
+ {
+ [Test]
+ public void SupplyItem_ShouldThrowException_WhenSupplyIdIsInvalid()
+ {
+ var supplyItem = new SupplyItemDataModel("", Guid.NewGuid().ToString(), 10, ItemType.Ingredient);
+ Assert.Throws(supplyItem.Validate);
+ }
+
+ [Test]
+ public void SupplyItem_ShouldThrowException_WhenItemIdIsInvalid()
+ {
+ var supplyItem = new SupplyItemDataModel(Guid.NewGuid().ToString(), "", 10, ItemType.Product);
+ Assert.Throws(supplyItem.Validate);
+ }
+
+ [Test]
+ public void SupplyItem_ShouldThrowException_WhenQuantityIsZeroOrNegative()
+ {
+ var supplyItem = new SupplyItemDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0,
+ ItemType.Product);
+ Assert.Throws(supplyItem.Validate);
+ }
+
+ [Test]
+ public void SupplyItem_ShouldCreateSuccessfully_WithValidData()
+ {
+ var supplyItem = new SupplyItemDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10,
+ ItemType.Ingredient);
+ Assert.That(supplyItem.Quantity, Is.EqualTo(10));
+ Assert.That(supplyItem.ItemType, Is.EqualTo(ItemType.Ingredient));
+ }
+ }
+}
\ No newline at end of file