41 lines
1.5 KiB
C#
Raw Normal View History

2025-02-12 22:16:56 +04:00
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<OrderItemDataModel>(), false);
Assert.Throws<ValidationException>(orderDataModel.Validate);
}
[Test]
public void Order_ShouldThrowException_WhenNoItemsInOrder()
{
var orderDataModel = new OrderDataModel(Guid.NewGuid().ToString(),
Guid.NewGuid().ToString(), DateTime.UtcNow, 100, 5, new List<OrderItemDataModel>(), false);
Assert.Throws<ValidationException>(orderDataModel.Validate);
}
[Test]
public void Order_ShouldCreateSuccessfully_WithValidData()
{
var order = new OrderDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.UtcNow, 200,
10, new List<OrderItemDataModel>
{
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));
}
}
}