69 lines
3.5 KiB
C#
69 lines
3.5 KiB
C#
using NorthBridgeContracts.DataModels;
|
|
using NorthBridgeContracts.Enums;
|
|
using NorthBridgeContracts.Exceptions;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace NorthBridgeTests.DataModelsTests;
|
|
|
|
[TestFixture]
|
|
public class SaleDataModelTests
|
|
{
|
|
[Test]
|
|
public void IdIsEmptyOrNullTest()
|
|
{
|
|
Assert.Throws<ValidationException>(() => new SaleDataModel(null, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, DiscountType.None, 0, false, new List<SaleProductDataModel>()).Validate());
|
|
Assert.Throws<ValidationException>(() => new SaleDataModel(string.Empty, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, DiscountType.None, 0, false, new List<SaleProductDataModel>()).Validate());
|
|
}
|
|
|
|
[Test]
|
|
public void IdIsNotGuidTest()
|
|
{
|
|
Assert.Throws<ValidationException>(() => new SaleDataModel("invalidGuid", Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, DiscountType.None, 0, false, new List<SaleProductDataModel>()).Validate());
|
|
}
|
|
|
|
[Test]
|
|
public void WorkerIdIsEmptyOrNullTest()
|
|
{
|
|
Assert.Throws<ValidationException>(() => new SaleDataModel(Guid.NewGuid().ToString(), null, Guid.NewGuid().ToString(), 10, DiscountType.None, 0, false, new List<SaleProductDataModel>()).Validate());
|
|
Assert.Throws<ValidationException>(() => new SaleDataModel(Guid.NewGuid().ToString(), string.Empty, Guid.NewGuid().ToString(), 10, DiscountType.None, 0, false, new List<SaleProductDataModel>()).Validate());
|
|
}
|
|
|
|
[Test]
|
|
public void WorkerIdIsNotGuidTest()
|
|
{
|
|
Assert.Throws<ValidationException>(() => new SaleDataModel(Guid.NewGuid().ToString(), "invalidGuid", Guid.NewGuid().ToString(), 10, DiscountType.None, 0, false, new List<SaleProductDataModel>()).Validate());
|
|
}
|
|
|
|
[Test]
|
|
public void CustomerIdIsNotGuidTest()
|
|
{
|
|
Assert.Throws<ValidationException>(() => new SaleDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "invalidGuid", 10, DiscountType.None, 0, false, new List<SaleProductDataModel>()).Validate());
|
|
}
|
|
|
|
[Test]
|
|
public void SumIsLessOrZeroTest()
|
|
{
|
|
Assert.Throws<ValidationException>(() => new SaleDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0, DiscountType.None, 0, false, new List<SaleProductDataModel>()).Validate());
|
|
Assert.Throws<ValidationException>(() => new SaleDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), -10, DiscountType.None, 0, false, new List<SaleProductDataModel>()).Validate());
|
|
}
|
|
|
|
[Test]
|
|
public void ProductsIsNullOrEmptyTest()
|
|
{
|
|
Assert.Throws<ValidationException>(() => new SaleDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, DiscountType.None, 0, false, null).Validate());
|
|
Assert.Throws<ValidationException>(() => new SaleDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, DiscountType.None, 0, false, new List<SaleProductDataModel>()).Validate());
|
|
}
|
|
|
|
[Test]
|
|
public void AllFieldsAreValidTest()
|
|
{
|
|
var sale = new SaleDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, DiscountType.None, 0, false,
|
|
new List<SaleProductDataModel> { new SaleProductDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 1) });
|
|
Assert.DoesNotThrow(() => sale.Validate());
|
|
}
|
|
}
|