using System; using NUnit.Framework; using CandyHouseBase.DataModels; using CandyHouseBase.Exceptions; namespace CandyHouseTests.DataModelsTests { [TestFixture] public class RecipeDataModelTests { [Test] public void CreateRecipeDataModel_ValidData_ShouldCreateSuccessfully() { var productId = Guid.NewGuid().ToString(); var ingredientId = Guid.NewGuid().ToString(); var quantity = 5; var recipe = new RecipeDataModel(productId, ingredientId, quantity); Assert.AreEqual(productId, recipe.ProductId); Assert.AreEqual(ingredientId, recipe.IngredientId); Assert.AreEqual(quantity, recipe.Quantity); } [Test] public void CreateRecipeDataModel_InvalidProductId_ShouldThrowValidationException() { var invalidProductId = ""; var ingredientId = Guid.NewGuid().ToString(); var quantity = 5; var recipe = new RecipeDataModel(invalidProductId, ingredientId, quantity); Assert.Throws(() => recipe.Validate()); } [Test] public void CreateRecipeDataModel_InvalidIngredientId_ShouldThrowValidationException() { var productId = Guid.NewGuid().ToString(); var invalidIngredientId = ""; var quantity = 5; var recipe = new RecipeDataModel(productId, invalidIngredientId, quantity); Assert.Throws(() => recipe.Validate()); } [Test] public void CreateRecipeDataModel_InvalidQuantity_ShouldThrowValidationException() { var productId = Guid.NewGuid().ToString(); var ingredientId = Guid.NewGuid().ToString(); var invalidQuantity = -1; var recipe = new RecipeDataModel(productId, ingredientId, invalidQuantity); Assert.Throws(() => recipe.Validate()); } } }