74 lines
2.6 KiB
C#
Raw Normal View History

2025-02-09 15:17:40 +04:00
using MagicCarpetContracts.DataModels;
using MagicCarpetContracts.Exceptions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MagicCarpetTests.DataModelTests;
[TestFixture]
internal class SaleTourDataModelTests
{
[Test]
public void SaleIdIsNullOrEmptyTest()
{
var saleTour = CreateDataModel(null, Guid.NewGuid().ToString(), 10);
Assert.That(() => saleTour.Validate(), Throws.TypeOf<ValidationException>());
saleTour = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), 10);
Assert.That(() => saleTour.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void SaleIdIsNotGuidTest()
{
var saleTour = CreateDataModel("saleId", Guid.NewGuid().ToString(), 10);
Assert.That(() => saleTour.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void CocktailIdIsNullOrEmptyTest()
{
var saleTour = CreateDataModel(Guid.NewGuid().ToString(), null, 10);
Assert.That(() => saleTour.Validate(), Throws.TypeOf<ValidationException>());
saleTour = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), 10);
Assert.That(() => saleTour.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void ProductIdIsNotGuidTest()
{
var saleTour = CreateDataModel(Guid.NewGuid().ToString(), "productId", 10);
Assert.That(() => saleTour.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void CountIsLessOrZeroTest()
{
var saleTour = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0);
Assert.That(() => saleTour.Validate(), Throws.TypeOf<ValidationException>());
saleTour = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), -10);
Assert.That(() => saleTour.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void AllFieldsIsCorrectTest()
{
var saleId = Guid.NewGuid().ToString();
var tourId = Guid.NewGuid().ToString();
var count = 10;
var saleCocktail = CreateDataModel(saleId, tourId, count);
Assert.That(() => saleCocktail.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
Assert.That(saleCocktail.SaleId, Is.EqualTo(saleId));
Assert.That(saleCocktail.TourId, Is.EqualTo(tourId));
Assert.That(saleCocktail.Count, Is.EqualTo(count));
});
}
private static SaleTourDataModel CreateDataModel(string? saleId, string? tourId, int count) =>
new(saleId, tourId, count);
}