2025-02-12 20:53:11 +04:00

76 lines
2.6 KiB
C#

using Squirrel.DataModels;
using Squirrel.Exceptions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SquirrelTests.DataModelsTests;
[TestFixture]
internal class GuestDataModelTests
{
[Test]
public void IdIsNullOrEmptyTest()
{
var guest = CreateDataModel(null, "fio", "number", 10);
Assert.That(() => guest.Validate(), Throws.TypeOf<ValidationException>());
guest = CreateDataModel(string.Empty, "fio", "number", 10);
Assert.That(() => guest.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void IdIsNotGuidTest()
{
var guest = CreateDataModel("id", "fio", "number", 10);
Assert.That(() => guest.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void FIOIsNullOrEmptyTest()
{
var guest = CreateDataModel(Guid.NewGuid().ToString(), null, "number", 10);
Assert.That(() => guest.Validate(), Throws.TypeOf<ValidationException>());
guest = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, "number", 10);
Assert.That(() => guest.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void PhoneNumberIsNullOrEmptyTest()
{
var guest = CreateDataModel(Guid.NewGuid().ToString(), "fio", null, 10);
Assert.That(() => guest.Validate(), Throws.TypeOf<ValidationException>());
guest = CreateDataModel(Guid.NewGuid().ToString(), "fio", string.Empty, 10);
Assert.That(() => guest.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void PhoneNumberIsIncorrectTest()
{
var guest = CreateDataModel(Guid.NewGuid().ToString(), "fio", "777", 10);
Assert.That(() => guest.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void AllFieldsIsCorrectTest()
{
var guestId = Guid.NewGuid().ToString();
var fio = "Fio";
var phoneNumber = "+7-777-777-77-77";
var discountSize = 11;
var guest = CreateDataModel(guestId, fio, phoneNumber, discountSize);
Assert.That(() => guest.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
Assert.That(guest.Id, Is.EqualTo(guestId));
Assert.That(guest.FIO, Is.EqualTo(fio));
Assert.That(guest.PhoneNumber, Is.EqualTo(phoneNumber));
Assert.That(guest.DiscountSize, Is.EqualTo(discountSize));
});
}
private static GuestDataModel CreateDataModel(string? id, string? fio, string? phoneNumber, double discountSize) =>
new(id, fio, phoneNumber, discountSize);
}