41 lines
1.5 KiB
C#
41 lines
1.5 KiB
C#
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));
|
|
}
|
|
}
|
|
} |