104 lines
3.2 KiB
C#
104 lines
3.2 KiB
C#
using System;
|
|
using NUnit.Framework;
|
|
using CandyHouseBase.DataModels;
|
|
using CandyHouseBase.Enums;
|
|
using CandyHouseBase.Exceptions;
|
|
|
|
namespace CandyHouseTests.DataModelsTests
|
|
{
|
|
[TestFixture]
|
|
public class OrderDataModelTests
|
|
{
|
|
[Test]
|
|
public void CreateOrderDataModel_ValidData_ShouldCreateSuccessfully()
|
|
{
|
|
var id = Guid.NewGuid().ToString();
|
|
var customerName = "Alice";
|
|
var orderDate = DateTime.Now;
|
|
var totalAmount = 100.0m;
|
|
var discountAmount = 10.0m;
|
|
var orderId = Guid.NewGuid().ToString();
|
|
var pekarId = Guid.NewGuid().ToString();
|
|
var statusType = StatusType.Pending;
|
|
|
|
var order = new OrderDataModel(id, customerName, orderDate, totalAmount, discountAmount, orderId, pekarId, statusType);
|
|
|
|
Assert.AreEqual(id, order.Id);
|
|
Assert.AreEqual(customerName, order.CustomerName);
|
|
Assert.AreEqual(orderDate, order.OrderDate);
|
|
Assert.AreEqual(totalAmount, order.TotalAmount);
|
|
Assert.AreEqual(discountAmount, order.DiscountAmount);
|
|
Assert.AreEqual(orderId, order.OrderId);
|
|
Assert.AreEqual(pekarId, order.PekarId);
|
|
Assert.AreEqual(statusType, order.StatusType);
|
|
}
|
|
|
|
[Test]
|
|
public void Validate_ValidData_ShouldNotThrowException()
|
|
{
|
|
var order = new OrderDataModel(
|
|
Guid.NewGuid().ToString(),
|
|
"Alice",
|
|
DateTime.Now,
|
|
100.0m,
|
|
10.0m,
|
|
Guid.NewGuid().ToString(),
|
|
Guid.NewGuid().ToString(),
|
|
StatusType.Pending
|
|
);
|
|
|
|
Assert.DoesNotThrow(() => order.Validate());
|
|
}
|
|
|
|
[Test]
|
|
public void Validate_InvalidId_ShouldThrowValidationException()
|
|
{
|
|
var order = new OrderDataModel(
|
|
"",
|
|
"Alice",
|
|
DateTime.Now,
|
|
100.0m,
|
|
10.0m,
|
|
Guid.NewGuid().ToString(),
|
|
Guid.NewGuid().ToString(),
|
|
StatusType.Pending
|
|
);
|
|
|
|
Assert.Throws<ValidationException>(() => order.Validate());
|
|
}
|
|
|
|
[Test]
|
|
public void Validate_InvalidCustomerName_ShouldThrowValidationException()
|
|
{
|
|
var order = new OrderDataModel(
|
|
Guid.NewGuid().ToString(),
|
|
"",
|
|
DateTime.Now,
|
|
100.0m,
|
|
10.0m,
|
|
Guid.NewGuid().ToString(),
|
|
Guid.NewGuid().ToString(),
|
|
StatusType.Pending
|
|
);
|
|
|
|
Assert.Throws<ValidationException>(() => order.Validate());
|
|
}
|
|
|
|
[Test]
|
|
public void Validate_NegativeTotalAmount_ShouldThrowValidationException()
|
|
{
|
|
var order = new OrderDataModel(
|
|
Guid.NewGuid().ToString(),
|
|
"Alice",
|
|
DateTime.Now,
|
|
-50.0m,
|
|
10.0m,
|
|
Guid.NewGuid().ToString(),
|
|
Guid.NewGuid().ToString(),
|
|
StatusType.Pending
|
|
);
|
|
|
|
Assert.Throws<ValidationException>(() => order.Validate());
|
|
}
|
|
}
|
|
} |