using System; using System.Collections.Generic; using NUnit.Framework; using CandyHouseBase.DataModels; using CandyHouseBase.Exceptions; namespace CandyHouseTests.DataModelsTests { [TestFixture] public class OrderDataModelTests { [Test] public void Order_ShouldThrowException_WhenIdIsInvalid() { var orderDataModel = new OrderDataModel("", Guid.NewGuid().ToString(), DateTime.UtcNow, 100, 5, new List(), false); Assert.Throws(orderDataModel.Validate); } [Test] public void Order_ShouldThrowException_WhenNoItemsInOrder() { var orderDataModel = new OrderDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.UtcNow, 100, 5, new List(), false); Assert.Throws(orderDataModel.Validate); } [Test] public void Order_ShouldCreateSuccessfully_WithValidData() { var order = new OrderDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.UtcNow, 200, 10, new List { new OrderItemDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 2, 50) }, false); Assert.That(order.TotalAmount, Is.EqualTo(200)); Assert.That(order.DiscountAmount, Is.EqualTo(10)); } } }